| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This library provides a PHP API to setup the Leaflet map definitions. The goal of the library is to provide a handy way to handle dynamic map configurations working in a PHP context.
You can install the library using composer:
$ php composer.phar require netzmacht/php-leaflet
This library provides different components:
This library requires PHP 5.6 and the symfony event dispatcher. The event dispatcher is used by the php-javascript-builder which encodes the PHP definition.
/*
* 1. Setup the encoder
*/
// The event dispatcher
$dispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();
// All encoders are event subscribers.
$dispatcher->addSubscriber(new Netzmacht\LeafletPHP\Encoder\ControlEncoder());
$dispatcher->addSubscriber(new Netzmacht\LeafletPHP\Encoder\GroupEncoder());
$dispatcher->addSubscriber(new Netzmacht\LeafletPHP\Encoder\MapEncoder());
$dispatcher->addSubscriber(new Netzmacht\LeafletPHP\Encoder\RasterEncoder());
$dispatcher->addSubscriber(new Netzmacht\LeafletPHP\Encoder\TypeEncoder());
$dispatcher->addSubscriber(new Netzmacht\LeafletPHP\Encoder\UIEncoder());
$dispatcher->addSubscriber(new Netzmacht\LeafletPHP\Encoder\VectorEncoder());
// Create a custom factory for the javascript builder which uses the event dispatcher.
// The order of the registered encoders are important! Only change if you know what you do.
$factory = function(Output $output) use ($dispatcher) {
$encoder = new ChainEncoder();
$encoder
->register(new \Netzmacht\JavascriptBuilder\Encoder\MultipleObjectsEncoder())
->register(new \Netzmacht\JavascriptBuilder\Symfony\EventDispatchingEncoder($dispatcher))
->register(new \Netzmacht\JavascriptBuilder\Encoder\JavascriptEncoder($output));
return $encoder;
};
$builder = new \Netzmacht\JavascriptBuilder\Builder($factory);
$leaflet = new \Netzmacht\LeafletPHP\leaflet($builder, $dispatcher);
/*
* 2. Create the map definitions
*/
$map = new \Netzmacht\LeafletPHP\Definition\Map('html_id', 'map');
$map
->setZoom(12)
->addControl(...)
->addLayer(...);
/*
* 3. Build the javascript
*/
// Will return javascript with following local vars: "map", "layers", "controls", "icons".
echo $leaflet->build($map);| Back | FazBrowse Home | New Git URL |