default services conflit ?

This commit is contained in:
armansansd
2022-04-27 11:30:43 +02:00
parent 28190a5749
commit 8bb1064a3b
8132 changed files with 900138 additions and 426 deletions

View File

@@ -0,0 +1,47 @@
name: tests
on:
push:
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.allow_failure }}
strategy:
fail-fast: false
matrix:
php: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0']
stability: ['prefer-lowest', 'prefer-stable']
allow_failure: [false]
include:
- php: '8.0'
stability: 'dev'
allow_failure: true
name: ${{ matrix.php }}-${{ matrix.stability }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: ~/.composer/cache/files
key: dependencies-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
- name: Install dependencies
run: composer update --${{ matrix.stability }} --prefer-dist --no-interaction --no-progress
- name: Check coding standard
run: composer lint
- name: Execute tests
run: composer test || ${{ matrix.allow_failure }}

View File

@@ -0,0 +1,4 @@
/vendor/
*.cache
composer.lock
phpunit.xml

View File

@@ -0,0 +1,36 @@
<?php
$header = <<<EOF
AJGL Breakpoint Twig Extension Component
Copyright (C) Antonio J. García Lagar <aj@garcialagar.es>
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
EOF;
return \PhpCsFixer\Config::create()
->setRiskyAllowed(true)
->setRules(
[
'@Symfony' => true,
'@Symfony:risky' => true,
'array_syntax' => array('syntax' => 'short'),
'fully_qualified_strict_types' => true,
'header_comment' => array('header' => $header),
'native_function_invocation' => false,
'ordered_imports' => [
'imports_order' => ['class', 'const', 'function'],
],
'phpdoc_order' => true,
'psr4' => true,
'strict_comparison' => true,
'strict_param' => true,
]
)
->setFinder(
\PhpCsFixer\Finder::create()
->in(__DIR__.'/src')
->in(__DIR__.'/tests')
)
;

View File

@@ -0,0 +1,68 @@
# [CHANGELOG](http://keepachangelog.com/)
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased][unreleased]
## [0.3.5] - 2021-02-08
### Added
- Add support for Symfony 5
- Add support for Twig 3.x
## [0.3.4] - 2019-04-10
### Fixed
- Population of `$arguments` variable
## [0.3.3] - 2019-03-18
### Fixed
- Population of `$arguments` variable
- Usage of deprecated classes
## [0.3.2] - 2018-12-10
### Added
- Add support for Symfony 4
## [0.3.1] - 2017-11-20
### Changed
- Require PHP 5.6
### Fixed
- Update requirements to allow twig 2.x
## [0.3.0] - 2016-03-31
### Added
- Add `$environment` and `$context` variables
- Allow to inspect function arguments
## [0.2.0] - 2016-03-10
### Added
- Add Symfony Bundle
## 0.1.0 - 2016-03-09
### Added
- Add `breakpoint` function
[unreleased]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/compare/0.3.5...master
[0.3.4]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/compare/0.3.4...0.3.5
[0.3.4]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/compare/0.3.3...0.3.4
[0.3.3]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/compare/0.3.2...0.3.3
[0.3.2]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/compare/0.3.1...0.3.2
[0.3.1]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/compare/0.3.0...0.3.1
[0.3.0]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/compare/0.2.0...0.3.0
[0.2.0]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/compare/0.1.0...0.2.0

View File

@@ -0,0 +1,23 @@
Copyright (c) 2013-2016 Antonio J. García Lagar <aj@garcialagar.es>
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the
Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions of
the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1,122 @@
AjglBreakpointTwigExtension
===========================
The AjglBreakpointTwigExtension component allows you set breakpoints in twig templates.
[![Build Status](https://github.com/ajgarlag/AjglBreakpointTwigExtension/workflows/tests/badge.svg?branch=master)](https://github.com/ajgarlag/AjglBreakpointTwigExtension/actions)
[![Latest Stable Version](https://poser.pugx.org/ajgl/breakpoint-twig-extension/v/stable.png)](https://packagist.org/packages/ajgl/breakpoint-twig-extension)
[![Latest Unstable Version](https://poser.pugx.org/ajgl/breakpoint-twig-extension/v/unstable.png)](https://packagist.org/packages/ajgl/breakpoint-twig-extension)
[![Total Downloads](https://poser.pugx.org/ajgl/breakpoint-twig-extension/downloads.png)](https://packagist.org/packages/ajgl/breakpoint-twig-extension)
[![Montly Downloads](https://poser.pugx.org/ajgl/breakpoint-twig-extension/d/monthly.png)](https://packagist.org/packages/ajgl/breakpoint-twig-extension)
[![Daily Downloads](https://poser.pugx.org/ajgl/breakpoint-twig-extension/d/daily.png)](https://packagist.org/packages/ajgl/breakpoint-twig-extension)
[![License](https://poser.pugx.org/ajgl/breakpoint-twig-extension/license.png)](https://packagist.org/packages/ajgl/breakpoint-twig-extension)
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/e0f1276d-6ded-4a20-9b3f-1a7c77a92015/mini.png)](https://insight.sensiolabs.com/projects/e0f1276d-6ded-4a20-9b3f-1a7c77a92015)
This component requires the [Xdebug] PHP extension to be installed.
Installation
------------
To install the latest stable version of this component, open a console and execute the following command:
```
$ composer require ajgl/breakpoint-twig-extension
```
Usage
-----
The first step is to register the extension into the twig environment
```php
/* @var $twig Twig_Environment */
$twig->addExtension(new Ajgl\Twig\Extension\BreakpointExtension());
```
Once registered, you can call the new `breakpoint` function:
```twig
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
{{ breakpoint() }}
</body>
</html>
```
Once stopped, your debugger will allow you to inspect the `$environment` and `$context` variables.
### Function arguments
Any argument passed to the twig function will be added to the `$arguments` array, so you can inspect it easily.
```twig
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
{{ breakpoint(app.user, app.session) }}
</body>
</html>
```
Symfony Bundle
--------------
If you want to use this extension in your Symfony application, you can enable the
Symfony Bundle included in this package.
The bundle will register the twig extension automatically. So, once enabled, you
can insert the `breakpoint` twig function in your templates.
### Symfony 2/3
```php
// app/AppKernel.php
if (in_array($this->getEnvironment(), array('dev', 'test'), true)) {
$bundles[] = new Ajgl\Twig\Extension\SymfonyBundle\AjglBreakpointTwigExtensionBundle();
}
```
### Symfony 4/5
```php
// config/bundles.php
//...
return [
//...
Ajgl\Twig\Extension\SymfonyBundle\AjglBreakpointTwigExtensionBundle::class => ['dev' => true]
];
```
License
-------
This component is under the MIT license. See the complete license in the [LICENSE] file.
Reporting an issue or a feature request
---------------------------------------
Issues and feature requests are tracked in the [Github issue tracker].
Author Information
------------------
Developed with ♥ by [Antonio J. García Lagar].
If you find this component useful, please add a ★ in the [GitHub repository page] and/or the [Packagist package page].
[Xdebug]: https://xdebug.org/
[LICENSE]: LICENSE
[Github issue tracker]: https://github.com/ajgarlag/AjglBreakpointTwigExtension/issues
[Antonio J. García Lagar]: http://aj.garcialagar.es
[GitHub repository page]: https://github.com/ajgarlag/AjglBreakpointTwigExtension
[Packagist package page]: https://packagist.org/packages/ajgl/breakpoint-twig-extension

View File

@@ -0,0 +1,55 @@
{
"name": "ajgl/breakpoint-twig-extension",
"description": "Twig extension to set breakpoints",
"keywords": ["twig", "xdebug", "breakpoint"],
"homepage": "https://github.com/ajgarlag/AjglBreakpointTwigExtension",
"license": "MIT",
"authors": [
{
"name": "Antonio J. García Lagar",
"email": "aj@garcialagar.es",
"homepage": "http://aj.garcialagar.es",
"role": "developer"
}
],
"autoload": {
"psr-4": { "Ajgl\\Twig\\Extension\\": "src/" }
},
"autoload-dev": {
"psr-4": { "Ajgl\\Twig\\Extension\\Tests\\": "tests/" }
},
"require": {
"php": ">=5.6",
"twig/twig": "^1.34|^2.0|^3.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.18",
"symfony/framework-bundle": "^2.7|^3.4|^4.4|^5.2",
"symfony/phpunit-bridge": "^4.4|^5.2",
"symfony/twig-bundle": "^2.7|^3.4|^4.4|^5.2"
},
"suggest": {
"ext-xdebug": "The Xdebug extension is required for the breakpoint to work",
"symfony/framework-bundle": "The framework bundle to integrate the extension into Symfony",
"symfony/twig-bundle": "The twig bundle to integrate the extension into Symfony"
},
"scripts": {
"fix-cs": [
"vendor/bin/php-cs-fixer fix --ansi"
],
"lint": [
"vendor/bin/php-cs-fixer fix --dry-run --ansi"
],
"test": [
"vendor/bin/simple-phpunit --colors=always"
]
},
"config": {
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-master": "0.3.x-dev"
}
}
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.0/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="vendor/autoload.php"
>
<testsuites>
<testsuite name="AjglBreakpointTwigExtension Test Suite">
<directory>./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>./src</directory>
</whitelist>
</filter>
</phpunit>

View File

@@ -0,0 +1,49 @@
<?php
/*
* AJGL Breakpoint Twig Extension Component
*
* Copyright (C) Antonio J. García Lagar <aj@garcialagar.es>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Ajgl\Twig\Extension;
use Twig\Environment;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
/**
* @author Antonio J. García Lagar <aj@garcialagar.es>
*/
class BreakpointExtension extends AbstractExtension
{
public function getName()
{
return 'breakpoint';
}
public function getFunctions()
{
return [
new TwigFunction('breakpoint', [$this, 'setBreakpoint'], ['needs_environment' => true, 'needs_context' => true]),
];
}
/**
* If Xdebug is detected, makes the debugger break.
*
* @param Environment $environment the environment instance
* @param mixed $context variables from the Twig template
*/
public function setBreakpoint(Environment $environment, $context)
{
if (function_exists('xdebug_break')) {
$arguments = func_get_args();
$arguments = array_slice($arguments, 2);
xdebug_break();
}
}
}

View File

@@ -0,0 +1,21 @@
<?php
/*
* AJGL Breakpoint Twig Extension Component
*
* Copyright (C) Antonio J. García Lagar <aj@garcialagar.es>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Ajgl\Twig\Extension\SymfonyBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
* @author Antonio J. García Lagar <aj@garcialagar.es>
*/
class AjglBreakpointTwigExtensionBundle extends Bundle
{
}

View File

@@ -0,0 +1,29 @@
<?php
/*
* AJGL Breakpoint Twig Extension Component
*
* Copyright (C) Antonio J. García Lagar <aj@garcialagar.es>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Ajgl\Twig\Extension\SymfonyBundle\DependencyInjection;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
/**
* @author Antonio J. García Lagar <aj@garcialagar.es>
*/
class AjglBreakpointTwigExtensionExtension extends Extension
{
public function load(array $config, ContainerBuilder $container)
{
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('twig.xml');
}
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="ajgl_twig_extension.breakpoint" class="Ajgl\Twig\Extension\BreakpointExtension" public="false">
<tag name="twig.extension"/>
</service>
</services>
</container>

View File

@@ -0,0 +1,53 @@
<?php
/*
* AJGL Breakpoint Twig Extension Component
*
* Copyright (C) Antonio J. García Lagar <aj@garcialagar.es>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Ajgl\Twig\Extension\Tests;
use Ajgl\Twig\Extension\BreakpointExtension;
use PHPUnit\Framework\TestCase;
use Symfony\Bridge\PhpUnit\SetUpTearDownTrait;
use Twig\TwigFunction;
/**
* @author Antonio J. García Lagar <aj@garcialagar.es>
*/
class BreakpointExtensionTest extends TestCase
{
use SetUpTearDownTrait;
/**
* @var BreakpointExtension
*/
protected $extension;
protected function doSetUp()
{
$this->extension = new BreakpointExtension();
}
public function testGetName()
{
$this->assertSame('breakpoint', $this->extension->getName());
}
public function testGetFunctions()
{
$functions = $this->extension->getFunctions();
$this->assertCount(1, $functions);
$function = reset($functions);
$this->assertInstanceOf(TwigFunction::class, $function);
$callable = $function->getCallable();
$this->assertTrue(is_array($callable));
$this->assertCount(2, $callable);
$this->assertSame($this->extension, $callable[0]);
$this->assertSame('setBreakpoint', $callable[1]);
}
}

View File

@@ -0,0 +1,53 @@
<?php
/*
* AJGL Breakpoint Twig Extension Component
*
* Copyright (C) Antonio J. García Lagar <aj@garcialagar.es>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Ajgl\Twig\Extension\Tests\SymfonyBundle\DependencyInjection;
use Ajgl\Twig\Extension\SymfonyBundle\DependencyInjection\AjglBreakpointTwigExtensionExtension;
use PHPUnit\Framework\TestCase;
use Symfony\Bridge\PhpUnit\SetUpTearDownTrait;
use Symfony\Component\DependencyInjection\ContainerBuilder;
/**
* @author Antonio J. García Lagar <aj@garcialagar.es>
*/
class AjglBreakpointTwigExtensionExtensionTest extends TestCase
{
use SetUpTearDownTrait;
/**
* @var ContainerBuilder
*/
protected $container;
/**
* @var AjglBreakpointTwigExtensionExtension
*/
protected $extension;
protected function doSetUp()
{
$this->container = new ContainerBuilder();
$this->extension = new AjglBreakpointTwigExtensionExtension();
}
public function testTwigExtensionsDefinition()
{
$this->extension->load([], $this->container);
$this->assertTrue($this->container->hasDefinition('ajgl_twig_extension.breakpoint'));
$definition = $this->container->getDefinition('ajgl_twig_extension.breakpoint');
$this->assertSame(
'Ajgl\Twig\Extension\BreakpointExtension',
$definition->getClass()
);
$this->assertNotNull($definition->getTag('twig.extension'));
}
}