Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 16 additions & 41 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,33 +11,18 @@ jobs:
tests:
runs-on: ubuntu-latest

name: PHP ${{ matrix.php }} - ${{ matrix.symfony-version }} - ${{ matrix.stability }}
name: PHP ${{ matrix.php }} - ${{ matrix.symfony }} - ${{ matrix.deps }}

strategy:
fail-fast: false
matrix:
php: [8.3]
stability: [ prefer-stable ]
symfony-version: [ '7.0.*' ]
php: [ 8.2, 8.3, 8.4, 8.5 ]
deps: [ locked ]
symfony: [ '6.4.*', '7.4.*', '8.0.*' ]
include:
- php: '8.1'
symfony-version: 6.4.*
stability: prefer-lowest
- php: '8.1'
symfony-version: 6.4.*
stability: prefer-stable
- php: '8.2'
symfony-version: 6.4.*
stability: prefer-stable
- php: '8.2'
symfony-version: 7.0.*
stability: prefer-stable
- php: '8.3'
symfony-version: 7.0.*
stability: prefer-stable
- php: '8.4'
symfony-version: 7.0.*
stability: prefer-stable
- symfony: '6.4.*'
php: '8.1'
deps: lowest

env:
APP_ENV: test
Expand All @@ -51,32 +36,22 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
ini-values: zend.exception_ignore_args=false
extensions: intl
tools: symfony
tools: symfony, flex
coverage: none

-
name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
name: Configure composer
if: "${{ matrix.deps == 'highest' }}"
run: composer config minimum-stability dev

-
name: Cache Composer
uses: actions/cache@v4
name: Composer install
uses: ramsey/composer-install@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json **/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-${{ matrix.php }}-composer-

-
name: Install PHP dependencies
env:
SYMFONY_REQUIRE: ${{ matrix.symfony-version }}
run: |
composer global config --no-plugins allow-plugins.symfony/flex true
composer global require --no-progress --no-scripts --no-plugins symfony/flex
composer update --no-interaction --prefer-dist
dependency-versions: '${{ matrix.deps }}'
composer-options: --no-interaction --prefer-dist

-
name: Run analysis
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# CHANGELOG

### 7.0.0 (xxx)

* Updated to support `ivory/google-map:7.0`, full PSR-17 and PSR-18 compatibility
* Drop support for Symfony 7.0, 7.1, 7.2

### 3.0.4 (2020-06-13)

* updated documentation
Expand Down
2 changes: 1 addition & 1 deletion DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ private function createServiceNode(string $service, bool $http): ArrayNodeDefini
->isRequired()
->cannotBeEmpty()
->end()
->scalarNode('message_factory')
->scalarNode('request_factory')
->isRequired()
->cannotBeEmpty()
->end()
Expand Down
10 changes: 5 additions & 5 deletions DependencyInjection/IvoryGoogleMapExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension;

Expand All @@ -31,7 +31,7 @@ class IvoryGoogleMapExtension extends ConfigurableExtension
*/
protected function loadInternal(array $mergedConfig, ContainerBuilder $container): void
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
$loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));

$resources = [
'form',
Expand All @@ -44,7 +44,7 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container
];

foreach ($resources as $resource) {
$loader->load($resource . '.xml');
$loader->load($resource . '.php');
}

$this->loadMapConfig($mergedConfig['map'], $container);
Expand Down Expand Up @@ -135,13 +135,13 @@ private function loadServiceConfig(
$http = true
): void
{
$loader->load('service/' . $service . '.xml');
$loader->load('service/' . $service . '.php');
$definition = $container->getDefinition($serviceName = 'ivory.google_map.' . $service);

if ($http) {
$definition
->addArgument(new Reference($config['client']))
->addArgument(new Reference($config['message_factory']));
->addArgument(new Reference($config['request_factory']));
}

if ($http && isset($config['format'])) {
Expand Down
10 changes: 10 additions & 0 deletions Resources/config/form.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

return static function (ContainerConfigurator $container) {
$services = $container->services();

$services->set('ivory.google_map.form.type.place_autocomplete', \Ivory\GoogleMapBundle\Form\Type\PlaceAutocompleteType::class)
->tag('form.type');
};
111 changes: 111 additions & 0 deletions Resources/config/helper/collector.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
<?php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

return static function (ContainerConfigurator $container) {
$services = $container->services();

$services->set('ivory.google_map.helper.collector.base.bound', \Ivory\GoogleMap\Helper\Collector\Base\BoundCollector::class)
->args([
service('ivory.google_map.helper.collector.overlay.ground_overlay'),
service('ivory.google_map.helper.collector.overlay.rectangle'),
]);

$services->set('ivory.google_map.helper.collector.base.coordinate', \Ivory\GoogleMap\Helper\Collector\Base\CoordinateCollector::class)
->args([
service('ivory.google_map.helper.collector.base.bound'),
service('ivory.google_map.helper.collector.overlay.circle'),
service('ivory.google_map.helper.collector.overlay.info_window'),
service('ivory.google_map.helper.collector.overlay.marker'),
service('ivory.google_map.helper.collector.overlay.polygon'),
service('ivory.google_map.helper.collector.overlay.polyline'),
service('ivory.google_map.helper.collector.layer.heatmap'),
]);

$services->set('ivory.google_map.helper.collector.base.point', \Ivory\GoogleMap\Helper\Collector\Base\PointCollector::class)
->args([service('ivory.google_map.helper.collector.overlay.marker')]);

$services->set('ivory.google_map.helper.collector.base.size', \Ivory\GoogleMap\Helper\Collector\Base\SizeCollector::class)
->args([
service('ivory.google_map.helper.collector.overlay.info_window'),
service('ivory.google_map.helper.collector.overlay.icon'),
]);

$services->set('ivory.google_map.helper.collector.control.custom', \Ivory\GoogleMap\Helper\Collector\Control\CustomControlCollector::class);

$services->set('ivory.google_map.helper.collector.event.dom_event', \Ivory\GoogleMap\Helper\Collector\Event\DomEventCollector::class);

$services->set('ivory.google_map.helper.collector.event.dom_event_once', \Ivory\GoogleMap\Helper\Collector\Event\DomEventOnceCollector::class);

$services->set('ivory.google_map.helper.collector.event.event', \Ivory\GoogleMap\Helper\Collector\Event\EventCollector::class);

$services->set('ivory.google_map.helper.collector.event.event_once', \Ivory\GoogleMap\Helper\Collector\Event\EventOnceCollector::class);

$services->set('ivory.google_map.helper.collector.layer.geo_json', \Ivory\GoogleMap\Helper\Collector\Layer\GeoJsonLayerCollector::class);

$services->set('ivory.google_map.helper.collector.layer.heatmap', \Ivory\GoogleMap\Helper\Collector\Layer\HeatmapLayerCollector::class);

$services->set('ivory.google_map.helper.collector.layer.kml', \Ivory\GoogleMap\Helper\Collector\Layer\KmlLayerCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.circle', \Ivory\GoogleMap\Helper\Collector\Overlay\CircleCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.encoded_polyline', \Ivory\GoogleMap\Helper\Collector\Overlay\EncodedPolylineCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.extendable', \Ivory\GoogleMap\Helper\Collector\Overlay\ExtendableCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.ground_overlay', \Ivory\GoogleMap\Helper\Collector\Overlay\GroundOverlayCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.icon', \Ivory\GoogleMap\Helper\Collector\Overlay\IconCollector::class)
->args([service('ivory.google_map.helper.collector.overlay.marker')]);

$services->set('ivory.google_map.helper.collector.overlay.icon_sequence', \Ivory\GoogleMap\Helper\Collector\Overlay\IconSequenceCollector::class)
->args([service('ivory.google_map.helper.collector.overlay.polyline')]);

$services->set('ivory.google_map.helper.collector.overlay.info_box', \Ivory\GoogleMap\Helper\Collector\Overlay\InfoBoxCollector::class)
->args([service('ivory.google_map.helper.collector.overlay.marker')]);

$services->set('ivory.google_map.helper.collector.overlay.info_window', \Ivory\GoogleMap\Helper\Collector\Overlay\InfoWindowCollector::class)
->args([service('ivory.google_map.helper.collector.overlay.marker')]);

$services->set('ivory.google_map.helper.collector.overlay.info_window.default', \Ivory\GoogleMap\Helper\Collector\Overlay\DefaultInfoWindowCollector::class)
->args([service('ivory.google_map.helper.collector.overlay.marker')]);

$services->set('ivory.google_map.helper.collector.overlay.marker', \Ivory\GoogleMap\Helper\Collector\Overlay\MarkerCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.marker_shape', \Ivory\GoogleMap\Helper\Collector\Overlay\MarkerShapeCollector::class)
->args([service('ivory.google_map.helper.collector.overlay.marker')]);

$services->set('ivory.google_map.helper.collector.overlay.polygon', \Ivory\GoogleMap\Helper\Collector\Overlay\PolygonCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.polyline', \Ivory\GoogleMap\Helper\Collector\Overlay\PolylineCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.rectangle', \Ivory\GoogleMap\Helper\Collector\Overlay\RectangleCollector::class);

$services->set('ivory.google_map.helper.collector.overlay.symbol', \Ivory\GoogleMap\Helper\Collector\Overlay\SymbolCollector::class)
->args([
service('ivory.google_map.helper.collector.overlay.marker'),
service('ivory.google_map.helper.collector.overlay.icon_sequence'),
]);

$services->set('ivory.google_map.helper.collector.place.autocomplete.base.bound', \Ivory\GoogleMap\Helper\Collector\Place\Base\AutocompleteBoundCollector::class);

$services->set('ivory.google_map.helper.collector.place.autocomplete.base.coordinate', \Ivory\GoogleMap\Helper\Collector\Place\Base\AutocompleteCoordinateCollector::class)
->args([service('ivory.google_map.helper.collector.place.autocomplete.base.bound')]);

$services->set('ivory.google_map.helper.collector.place.autocomplete.event.dom_event', \Ivory\GoogleMap\Helper\Collector\Place\Event\AutocompleteDomEventCollector::class);

$services->set('ivory.google_map.helper.collector.place.autocomplete.event.dom_event_once', \Ivory\GoogleMap\Helper\Collector\Place\Event\AutocompleteDomEventOnceCollector::class);

$services->set('ivory.google_map.helper.collector.place.autocomplete.event.event', \Ivory\GoogleMap\Helper\Collector\Place\Event\AutocompleteEventCollector::class);

$services->set('ivory.google_map.helper.collector.place.autocomplete.event.event_once', \Ivory\GoogleMap\Helper\Collector\Place\Event\AutocompleteEventOnceCollector::class);

$services->set('ivory.google_map.helper.collector.static.encoded_polyline', \Ivory\GoogleMap\Helper\Collector\Image\EncodedPolylineCollector::class);

$services->set('ivory.google_map.helper.collector.static.extendable', \Ivory\GoogleMap\Helper\Collector\Image\ExtendableCollector::class);

$services->set('ivory.google_map.helper.collector.static.marker', \Ivory\GoogleMap\Helper\Collector\Image\MarkerCollector::class)
->args([service('ivory.google_map.helper.renderer.static.overlay.marker.style')]);

$services->set('ivory.google_map.helper.collector.static.polyline', \Ivory\GoogleMap\Helper\Collector\Image\PolylineCollector::class);
};
27 changes: 27 additions & 0 deletions Resources/config/helper/helper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

return static function (ContainerConfigurator $container) {
$services = $container->services();

$services->set('ivory.google_map.helper.api', \Ivory\GoogleMap\Helper\ApiHelper::class)
->args([service('ivory.google_map.helper.api.event_dispatcher')]);

$services->set('ivory.google_map.helper.api.event_dispatcher', \Symfony\Component\EventDispatcher\EventDispatcher::class);

$services->set('ivory.google_map.helper.map', \Ivory\GoogleMap\Helper\MapHelper::class)
->args([service('ivory.google_map.helper.map.event_dispatcher')]);

$services->set('ivory.google_map.helper.map.event_dispatcher', \Symfony\Component\EventDispatcher\EventDispatcher::class);

$services->set('ivory.google_map.helper.map.static', \Ivory\GoogleMap\Helper\StaticMapHelper::class)
->args([service('ivory.google_map.helper.map.static.event_dispatcher')]);

$services->set('ivory.google_map.helper.map.static.event_dispatcher', \Symfony\Component\EventDispatcher\EventDispatcher::class);

$services->set('ivory.google_map.helper.place_autocomplete', \Ivory\GoogleMap\Helper\PlaceAutocompleteHelper::class)
->args([service('ivory.google_map.helper.place_autocomplete.event_dispatcher')]);

$services->set('ivory.google_map.helper.place_autocomplete.event_dispatcher', \Symfony\Component\EventDispatcher\EventDispatcher::class);
};
Loading