Symplify - Making Everyday PHP Development Simple

Overview




Symplify - Making Everyday PHP Development Simple


In this monorepo you'll find PHP packages that help you with:

  • your first coding standard
  • maintenance of monorepo and changelog
  • clean Kernel even with Flex loading methods
  • slim and re-usable Symfony configs

You'll find all packages in /packages directory. Here is a brief overview (tip: click on the package name to see its README with more detailed features):

Coding Standards

For Symfony

For Package Development

For CLI App Developers

For Any Developer

For PHPStan Lovers

For CI Keeping you Safe

For Syntax Transformation

For Upgrades


Contributing & Issues

If you have issue and want to improve some package, put it all into this repository.

Fork and clone your repository:

git clone [email protected]:<your-name>/symplify.git
cd symplify
composer install

3 Steps to Contribute

  • 1 feature per pull-request

  • new feature must have tests

  • tests and static analysis must pass:

    vendor/bin/phpunit
    composer phpstan

We would be happy to merge your feature then 👍

Comments
  • [ECS] JSON Formatter

    [ECS] JSON Formatter

    This is work-in-progress PR. Here is a related issue: https://github.com/Symplify/Symplify/issues/1118.

    I have several questions on how to better proceed further.

    1. ~How to dynamically select which output formatter to choose. I tried to access ArgvInput, but couldn't find passed options. Still need to figure out how to extract OutputFormatterFactory from CheckCommand.~

    2. ~What way of outputting data is better. Still thinking what way is better, since some errors are fixable some not.~

    3. ~I don't know yet how to turn off every other output once --output-format=json is set. This way it will allow other programs to consume output directly since it will be pure json. Probably isVersionPrintedElsewhere() is responsible.~

    4. ~Should I add --pretty flag for json? Why would anyone need a human readable output in json?~

    5. ~$this->errorAndDiffCollector->getFileDiffs() and $this->errorAndDiffCollector->getErrors() as I understood do different things. getFileDiffs outputs --fixable issues and getErrors shows errors that are not ~~--fix~~ able?~

    Any other inputs are welcome, since this is my first larger PR to an bigger project.

    opened by azdanov 33
  • [SymfonyEventDispatcher] deprecation in favor of contributte

    [SymfonyEventDispatcher] deprecation in favor of contributte

    Hey Guys,

    I've got a question for you. Since Symfony 3.3, there have been added new EventDispatcher features, that
    dropped added value of SymplifyEventDispatcher for Symfony.

    Only usable case remains Nette. There is similar package by @f3l1x : https://github.com/contributte/event-dispatcher

    That does pretty much the same thing. Last few months I've realized I can invest to package that add more than just a few % of added value, instead of maintaining a 90% similar product.

    1. So I would be happy to deprecate this package in favor of @f3l1x one. That means, it would be still available for years and current composer supported versions, just not developed.**

    My question is - would you consider that a good way to continue or not? And why?

    2. I asked @enumag on PM, and he would be ok, just missing ::class based event naming instead of string one.

    $this->eventDispatcher(ApplicationRequestEvent::NAME); 
    // alows to open event right away
    

    instead of

    $this->eventDispatcher(ApplicationEvents::ON_STARTUP);
    // contributte, string only
    

    For me, that would a detail, since on my own events I can use ::class regardless the package.

    What do you think? About 1. and 2.

    /cc @f3l1x @enumag @Lexinek @fprochazka

    opened by TomasVotruba 29
  • Class  'MonorepoBuilder20210703\Symfony\Component\Console\Input\ArgvInput' not found in /bin/monorepo-builder.php

    Class 'MonorepoBuilder20210703\Symfony\Component\Console\Input\ArgvInput' not found in /bin/monorepo-builder.php

    We are currently getting this error when trying to execute the vendor/bin/monorepo-builder binary with the latest release 9.4.8:

    Class  'MonorepoBuilder20210703\Symfony\Component\Console\Input\ArgvInput' 
    not found in /vendor/symplify/monorepo-builder/bin/monorepo-builder.php:28
    
    
    opened by jwillp 27
  • [ECS] Call to undefined function ECSPrefix20210928\React\Promise\resolve

    [ECS] Call to undefined function ECSPrefix20210928\React\Promise\resolve

    > ecs check --fix 'src'
    
    Fatal error: Uncaught Error: Call to undefined function ECSPrefix20210928\React\Promise\resolve() in /var/www/html/sw6/vendor-bin/cs-fixer/vendor/symplify/easy-coding-standard/vendor/react/promise/src/Promise.php:203
    Stack trace:
    #0 /var/www/html/sw6/vendor-bin/cs-fixer/vendor/symplify/easy-coding-standard/vendor/react/socket/src/TcpConnector.php(73): ECSPrefix20210928\React\Promise\Promise::ECSPrefix20210928\React\Promise\{closure}(Object(ECSPrefix20210928\React\Socket\Connection))
    #1 /var/www/html/sw6/vendor-bin/cs-fixer/vendor/symplify/easy-coding-standard/vendor/react/event-loop/src/StreamSelectLoop.php(209): ECSPrefix20210928\React\Socket\TcpConnector->ECSPrefix20210928\React\Socket\{closure}(Resource id #813)
    #2 /var/www/html/sw6/vendor-bin/cs-fixer/vendor/symplify/easy-coding-standard/vendor/react/event-loop/src/StreamSelectLoop.php(175): ECSPrefix20210928\React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)
    #3 /var/www/html/sw6/vendor-bin/cs-fixer/vendor/symplify/easy-coding-standard/src/Console/Command/W in /var/www/html/sw6/vendor-bin/cs-fixer/vendor/symplify/easy-coding-standard/vendor/react/promise/src/Promise.php on line 203
    
    
    opened by shyim 26
  • `ecs -h` crashes in the prefixed installation

    `ecs -h` crashes in the prefixed installation

    Install symplify/easy-coding-standard-prefixed and run ecs -h:

    PHP Fatal error:  Uncaught Error: Class "_PhpScoper3d66e802e797\Composer\InstalledVersions" not found in /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/vendor/jean85/pretty-package-versions/src/PrettyVersions.php:17
    #0 /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/vendor/symplify/package-builder/src/Composer/PackageVersionProvider.php(34): _PhpScoper3d66e802e797\Jean85\PrettyVersions::getVersion()
    1010
    #1 /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/vendor/symplify/package-builder/src/Composer/PackageVersionProvider.php(19): Symplify\PackageBuilder\Composer\PackageVersionProvider->getVersion()
    1011
    #2 /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/src/Console/EasyCodingStandardConsoleApplication.php(33): Symplify\PackageBuilder\Composer\PackageVersionProvider->provide()
    1012
    #3 /tmp/easy_coding_standard_kernel/ContainerI5tERxi/getEasyCodingStandardConsoleApplicationService.php(20): Symplify\EasyCodingStandard\Console\EasyCodingStandardConsoleApplication->__construct()
    1013
    #4 /tmp/easy_coding_standard_kernel/ContainerI5tERxi/Symplify_EasyCodingStandard_HttpKernel_EasyCodingStandardKernelProd60146Container.php(204): ContainerI5tERxi\getEasyCodingStandardConsoleApplicationService::do()
    1014
    #5 /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/vendor/symfony/dependency-injection/Container.php(218): ContainerI5tERxi\Symplify_EasyCodingStandard_HttpKernel_EasyCodingStandardKernelProd60146Container->load()
    1015
    #6 /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/vendor/symfony/dependency-injection/Container.php(203): _PhpScoper3d66e802e797\Symfony\Component\DependencyInjection\Container->make()
    1016
    #7 /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/bin/ecs.php(37): _PhpScoper3d66e802e797\Symfony\Component\DependencyInjection\Container->get()
    1017
    #8 /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/bin/ecs(5): require('...')
    1018
    #9 {main}
    1019
      thrown in /home/runner/work/toolbox/toolbox/build/tools/.composer/vendor-bin/tools/vendor/symplify/easy-coding-standard-prefixed/vendor/jean85/pretty-package-versions/src/PrettyVersions.php on line 17
    
    opened by jakzal 25
  • ECS only reports single issue

    ECS only reports single issue

    Trying to upgrade ECS to latest again and I'm getting another really weird problem. When I run vendor/bin/ecs check I always get only a single error even though there are dozens cases of the same problem in other files. Doesn't matter if I add --clear-cache or not.

    opened by enumag 24
  • [EasyCodingStandard] RuntimeException DescriptionAnalyzer / $typeNodeAnalyzer

    [EasyCodingStandard] RuntimeException DescriptionAnalyzer / $typeNodeAnalyzer

    Hi 👋

    As of today, csfix is broken in our project. When running vendor/bin/ecs check src --fix, I get:

    PHP Fatal error:  Uncaught Symfony\Component\DependencyInjection\Exception\RuntimeException: Cannot autowire service "Symplify\TokenRunner\DocBlock\DescriptionAnalyzer": argument "$typeNodeAnalyzer" of method "__construct()" references class "Symplify\BetterPhpDocParser\PhpDocParser\TypeNodeAnalyzer" but no such service exists. in /foo/bar/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php:54
    Stack trace:
    #0 /foo/bar/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php(82): Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue(Object(Symfony\Component\DependencyInjection\Definition), true)
    #1 /foo/bar/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php(32): Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->processValue(Array, true)
    #2 /foo/bar/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php(46): Symfony\Component\DependencyInjec in /foo/bar/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php on line 54
    

    The project is using the latest Symfony 4.2.4, with symplify/easy-coding-standard version 5.4.13.

    Is this a small bug in ECS, or have I messed something up?

    bug 
    opened by bobdenotter 24
  • RemoveEmptyDocBlockFixer must be run after GeneralPhpdocAnnotationRemoveFixer

    RemoveEmptyDocBlockFixer must be run after GeneralPhpdocAnnotationRemoveFixer

    <?php
    
    namespace Ostrolucky\Stdinho;
    
    /**
     * @package Ostrolucky\Stdinho
     */
    class A
    {
    }
    

    config:

    services:
        PhpCsFixer\Fixer\Phpdoc\GeneralPhpdocAnnotationRemoveFixer:
            annotations: [package]
        Symplify\CodingStandard\Fixer\Commenting\RemoveEmptyDocBlockFixer:
    

    output:

        ---------- begin diff ----------
    --- Original
    +++ New
    @@ -3,8 +3,7 @@
     namespace Ostrolucky\Stdinho;
     
     /**
    - * @package Ostrolucky\Stdinho
      */
     class A
     {
     }
    \ No newline at end of file
    
        ----------- end diff -----------
    

    expected output:

        ---------- begin diff ----------
    --- Original
    +++ New
    @@ -3,8 +3,7 @@
     namespace Ostrolucky\Stdinho;
     
    -/**
    - * @package Ostrolucky\Stdinho
    - */
     class A
     {
     }
    \ No newline at end of file
    
        ----------- end diff -----------
    

    There are actually 2 issues here: First is priority problem, second is that RemoveEmptyDocBlockFixer requires presence of method/variable

    opened by ostrolucky 22
  • [MonorepoBuilder] Fix tests for MacOS

    [MonorepoBuilder] Fix tests for MacOS

    ~Using ksort fixed PackageComposerJsonMergerTest.~

    ~But CombineStringsToArrayJsonMergerTest is still failing.~

    As a reminder to myself, here're the failed tests:

    There were 2 failures:
    
    1) Symplify\MonorepoBuilder\Tests\Package\CombineStringsToArrayJsonMergerTest::testSharedNamespaces
    Failed asserting that two arrays are identical.
    --- Expected
    +++ Actual
    @@ @@
         'autoload' => Array &1 (
             'psr-4' => Array &2 (
                 'ACME\Model\Core\' => Array &3 (
    -                0 => 'packages/A'
    -                1 => 'packages/B'
    +                0 => 'packages/B'
    +                1 => 'packages/A'
                 )
                 'ACME\Another\' => 'packages/A'
    -            'ACME\YetAnother\' => Array &4 (
    +            'ACME\YetAnother\' => 'packages/A'
    +            'ACME\YetYetAnother\' => Array &4 (
                     0 => 'packages/A'
                 )
    -            'ACME\YetYetAnother\' => 'packages/A'
             )
         )
     )
    
    Symplify/packages/MonorepoBuilder/tests/Package/CombineStringsToArrayJsonMergerTest.php:55
    
    2) Symplify\MonorepoBuilder\Tests\Package\PackageComposerJsonMergerTest::test
    Failed asserting that two arrays are identical.
    --- Expected
    +++ Actual
    @@ @@
     Array &0 (
         'require' => Array &1 (
    +        'symplify/symplify' => '^2.0'
             'rector/rector' => '^2.0'
             'phpunit/phpunit' => '^2.0'
    -        'symplify/symplify' => '^2.0'
         )
         'autoload' => Array &2 (
             'psr-4' => Array &3 (
    +            'Symplify\MonorepoBuilder\' => 'src'
                 'Symplify\Statie\' => 'src'
    -            'Symplify\MonorepoBuilder\' => 'src'
             )
         )
     )
    
    Symplify/packages/MonorepoBuilder/tests/Package/PackageComposerJsonMergerTest.php:59
    
    opened by azdanov 21
  • [DefaultAutowire] Incompatibility with symfony/monolog-bundle 3.0

    [DefaultAutowire] Incompatibility with symfony/monolog-bundle 3.0

    Steps to reproduce:

    symfony new monolog-test
    cd monolog-test/
    composer require symplify/default-autowire
    php bin/console server:start
    

    Now add DefaultAutowireBundle to AppKernel.php.

    In the browser you should see this error.

    Unable to autowire argument index 1 ($excludedUrls) for the service "monolog.activation_strategy.not_found". If this is an object, give it a type-hint. Otherwise, specify this argument's value explicitly.
    
    opened by enumag 21
  • [EasyCodingStandard] smaller sets over random imports + add BlankLineAfterStrictTypesFixer

    [EasyCodingStandard] smaller sets over random imports + add BlankLineAfterStrictTypesFixer

    Related Changes

    • dropped FinalTestCase, use SlamCsFixer\FinalInternalClassFixer instead
    • added BlankLineAfterStrictTypesFixer

    Todo

    • [x] make php7 set run only php7, dissable nullable and void types on sniff

    • [ ] update https://www.tomasvotruba.cz/blog/2017/08/21/5-useful-rules-from-symplify-coding-standard/

    opened by TomasVotruba 20
  • [monorepo-builder] Merge of freshly initialized monorepo fails with

    [monorepo-builder] Merge of freshly initialized monorepo fails with "ComposerJsonSection not found"

    Following monorepo-builder's README leads to this result:

    $ composer require symplify/monorepo-builder --dev
    
    ./composer.json has been created
    Running composer update symplify/monorepo-builder
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 1 install, 0 updates, 0 removals
      - Locking symplify/monorepo-builder (11.1.24)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 1 install, 0 updates, 0 removals
      - Installing symplify/monorepo-builder (11.1.24): Extracting archive
    Generating autoload files
    1 package you are using is looking for funding.
    Use the `composer fund` command to find out more!
    No security vulnerability advisories found
    Using version ^11.1 for symplify/monorepo-builder
    
    $ vendor/bin/monorepo-builder init
    
     [OK] Congrats! Your first monorepo is here.                                                                            
     ! [NOTE] Try the next step - merge "composer.json" files from packages to the root one:                                
     !         "vendor/bin/monorepo-builder merge"                                                                          
    
    $ vendor/bin/monorepo-builder merge
    
     [ERROR] Class "Symplify\ComposerJsonManipulator\ValueObject\ComposerJsonSection" not found
    

    I don't have the required experience to properly investigate, but my guess would be that this is a regression of #3474 caused by #4510.

    opened by HoldYourWaffle 0
  • Test rules should also support Test path as Prefix (e.g. Laravel)

    Test rules should also support Test path as Prefix (e.g. Laravel)

    Projects like Laravel who wants to use this rule will get immediate complaints as their code is of the following structure:

    - app
    - tests
    - vendors
    

    This PR avoids such errors while maintaining the intent.

    I did not see where to apply tests, please point me in the right direction if necessary.

    opened by ildyria 0
  • Add some test cases for basic comment support

    Add some test cases for basic comment support

    Thought some test cases for the comments would be great. I already tried to tackle some basic comment transfers but the array make it very complex. So not sure about how to process here. If somebody have idea it would be great to take it over.

    opened by alexander-schranz 0
  • [easy-coding-standard] Call to undefined function ECSPrefix202210\trigger_deprecation()

    [easy-coding-standard] Call to undefined function ECSPrefix202210\trigger_deprecation()

    In version 11.1.11 and hight it fails with error Call to undefined function ECSPrefix202210\trigger_deprecation().

    It fails at vendor/symplify/easy-coding-standard/vendor/symfony/dependency-injection/ContainerBuilder.php:896.

    opened by alexndlm 10
  • add example with constant as key

    add example with constant as key

    This is a shorter example. I think the issue is using a constant as the key, or maybe it's using a class constant rather than a PHP constant. Likely this test can be merged with constant.yaml.

    Addresses #4436

    opened by tacman 9
Releases(10.1.0)
  • 10.1.0(Feb 21, 2022)

    PHPStanRules

    New Rules 🎉

    • https://github.com/symplify/symplify/pull/3937 - Add NoMixedCallableRule
    • https://github.com/symplify/symplify/pull/3913 - Add NoMixedMethodCallerRule
    • https://github.com/symplify/symplify/pull/3912 - Add NoMixedPropertyFetcherRule
    • https://github.com/symplify/symplify/pull/3865 - Add ForbiddenTraitUseRule
    • https://github.com/symplify/symplify/pull/3861 - Add SwitchToMatchSpotterRule
    • https://github.com/symplify/symplify/pull/3857 - Add NoReadonlyStaticVariableRule

    Fixes 🔨

    • https://github.com/symplify/symplify/pull/3932 - RequireNamedCommandRule - AsCommand attribute support - thanks @raneomik

    Removed Rules 🧹️

    Some rule were very strict and while good as an idea, not very practical to use. To make the list of 140+ rules smaller and more practical, we've removed following rules:

    • https://github.com/symplify/symplify/pull/3943 - Remove CheckReferencedClassInAnnotationRule, now we have attributes that are checked by PHPStan out of the box
    • https://github.com/symplify/symplify/pull/3944 - Remove ForbiddenAttributteArgumentRule, extreemely narrow use case
    • https://github.com/symplify/symplify/pull/3945 - Remove ForbiddenNestedForeachWithEmptyStatementRule, as not very helpful in pratice
    • https://github.com/symplify/symplify/pull/3946 - Remove ForbiddenPrivateMethodByTypeRule as overly strict, complexity rule handles this well
    • https://github.com/symplify/symplify/pull/3948 - Remove NoMaskWithoutSprintfRule, might be useful to use mask sometimes
    • https://github.com/symplify/symplify/pull/3828 - Remove RequireQuoteStringValueSprintfRule, depends way too often on the context
    • https://github.com/symplify/symplify/pull/3827 - Remove ForbiddenMethodCallOnTypeRule, used for single job
    • https://github.com/symplify/symplify/pull/3826 - Remove ForbiddenBinaryMethodCallRule, used for single job
    • https://github.com/symplify/symplify/pull/3824 - Remove RequireStringArgumentInMethodCallRule, used for single job

    ECS

    New Features 🎉

    • https://github.com/symplify/symplify/pull/3898 - Add --memory-limit option to configure memory in parallel

    Changes ⚙️

    • https://github.com/symplify/symplify/pull/3927 - Drop show command, use --debug option instead

    Merged Packages 🧑‍🤝‍🧑

    Some packages were group of 5 claases, fractioned and mostly used with one other package. To ease the learnign curve from 2 packages to 1, we've merge them to single one:

    SimplePhpDocParser is merged to Astral

    • https://github.com/symplify/symplify/pull/3950 - Merge to Astral package, as close related purpose

    How to upgrade?

    composer remove symplify/simple-php-doc-parser
    composer require symplify/astral
    

    Update the namespace references:

    -use Symplify\SimplePhpDocParser\...;
    +use Symplify\Astral\PhpDocParser\...;
    

    And you're done :+1:


    ConsoleColorDiff is merged to PackageBuilder

    • https://github.com/symplify/symplify/pull/3940 - Merge to package builder package, to avoid fractioning

    How to upgrade?

    composer remove symplify/console-color-diff
    composer require symplify/package-builder
    

    Update the namespace references:

    -use Symplify\ConsoleColorDiff\...;
    +use Symplify\PackageBuilder\...;
    

    And you're done :+1:


    SymfonyPhpConfig is merged to Rector

    There was just one class, used in one service in Rector. It only makes sense to merge it directly in Rector:

    • https://github.com/symplify/symplify/pull/3941 Deprecate, as just 1 helper class
    Source code(tar.gz)
    Source code(zip)
  • 9.4.25(Aug 5, 2021)

    ECS

    Bugfixes :bug:

    • https://github.com/symplify/symplify/issues/3424 - Fix running custom sniff/fixer tests - in previous versions, AbstractCheckerTestCase was broken and unable to run due to missing prefixed classes - now tests are back and running - thanks @enumag and @ERuban for help with reproducing this bug
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-RC5(Dec 9, 2017)

    Added

    • #480 [CodingStandard] add RemoveSuperfluousDocBlockWhitespaceFixer, which removes 2 spaces in a row in doc blocks
    • #481 [EasyCodingStandard] add warning as error support, to make useful already existing Sniffs, closes #477

    Changed

    • #484 [Statie] add dry-run optiont to StatieApplication and BeforeRenderEvent to improve extendability, closes #483

    • https://github.com/Symplify/Symplify/commit/9a9c0e61d0b7af073d3819e4c4798a251eca1f14 [Statie] use statie.yml config based on Symfony DI over "fake" statie.neon to prevent confusion, closes #487

      Before

      # statie.neon
      includes:
           - source/data/config.neon
      

      After

      # statie.yml
      imports:
          - { resource: 'source/data/config.yml' }
      

      Before

      services:
          -
              class: App\TranslationProvider
      

      After

      services:
          App\TranslationProvider: ~
      

    Removed

    • #488 [CodingStandard] drop PropertyAndConstantSeparationFixer, use PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer instead

    Full diff: https://github.com/Symplify/Symplify/compare/v3.0.0-RC4...v3.0.0-RC5

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-RC4(Dec 6, 2017)

    Added

    • #475 [Statie] added support for generators
    parameters:
        generators:
            # key name, it's nice to have for more informative error reports
            posts: 
                # name of variable inside single such item
                variable: post
                # name of variable that contains all items
                varbiale_global: posts
                # directory, where to look for them
                path: '_posts' 
                # which layout to use
                layout: '_layouts/@post.latte' 
                # and url prefix, e.g. /blog/some-post.md
                route_prefix: 'blog' 
                # an object that will wrap it's logic, you can add helper methods into it and use it in templates
                object: 'Symplify\Statie\Renderable\File\PostFile' 
    
    • https://github.com/Symplify/Symplify/commit/9b154d9b6e88075e14b6812613bce7c1a2a79daa [Statie] added -vvv CLI option for debug output

    • #473 bump to Symfony 4

    • #466 [CodingStandard] added Symplify\CodingStandard\Sniffs\DeadCode\UnusedPublicMethodSniff

    • #471 [EasyCodingStandard] various performance improvements

    • #473 [EasyCodingStandard] added LineLimitSebastianBergmannDiffer for nicer and compact diff outputs

    • #437 [TokenRunner] improved AbstractSimpleFixerTestCase with clearly named methods

    Changed

    • #475 [Statie] renamed related_posts filter to related_items with general usage (not only posts, but any other own generator element)

      Before

      {var $relatedPosts = ($post|relatedPosts)}
      

      After

      {var $relatedPosts = ($post|relatedItems)}
      
    • #473 [CodingStandard] use ReflectionDocBlock for docblock analysis and modification

    • #474 [EasyCodingStandard] prefer diff report for changes over table report

    • #472 [EasyCodingStandard] improve FileProcessorInterface, improve performance via CachedFileLoader

    Removed

    • #475 [Statie] removed postRoute, only prefix is now available per item in generator

    • #476 [CodingStandard] dropped NoInterfaceOnAbstractClassFixer, not useful in practise

    Full diff: https://github.com/Symplify/Symplify/compare/v3.0.0-RC3...v3.0.0-RC4

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-RC3(Dec 6, 2017)

    Added

    • [CodingStandard] ClassStringToClassConstantFixer now covers classes with double slashes: SomeNamespace\\SomeClass

    Full diff: https://github.com/Symplify/Symplify/compare/v3.0.0-RC2...v3.0.0-RC3

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-RC2(Nov 17, 2017)

    Added

    • 0ab538bd53c971f6a7163485230a44658f613768 [CodingStandard] Added BlankLineAfterStrictTypesFixer

    • #443 [EasyCodingStandard] Added smaller common configs for better --level usage

    • #447 [EasyCodingStandard] Allow -vvv for ProgressBar + 27 % speed improvement

    • #442 [PackageBuilder] Added AutoloadFinder to find nearest /vendor/autoload.php

    • #442 [PackageBuilder] Added provideParameter() and changeParameter() methods to ParameterProvider

    Changed

    • 881577af893ed1e73260f713153004be78aaf101 [EasyCodingStandard] Removed -checkers suffix to make file naming consistent

    Fixed

    • #422 [EasyCodingStandard] Fix skip_codes option for --fix run

    Removed

    • #443 [CodingStandard] Dropped FinalTestCase, use SlamCsFixer\FinalInternalClassFixer instead
    • bc0cb09d5e5166830ba4ad95fd4d0ba8f4bcacf4 [EasyCodingStandard] php54.neon set removed

    ...

    Full diff: https://github.com/Symplify/Symplify/compare/v3.0.0-RC1...v3.0.0-RC2

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-RC1(Nov 17, 2017)

    Added

    • #385 [CodingStandard] Added RequireFollowedByAbsolutePathFixer

    • #421 [CodingStandard] Added ImportNamespacedNameFixer

    • #427 [CodingStandard] Added RemoveUselessDocBlockFixer

    • #388 [EasyCodingStandard] Added support for ignoring particular sniff codes

    • #406 [EasyCodingStandard] Added support for ignoring particular codes and files, Thanks to @ostrolucky

    • #397 [EasyCodingStandard] Added validation to exclude_checkers option, Thanks to @mzstic

    • #431 [PackageBuilder] Added --level shortcut helper builder

    Changed

    • #399 [Statie] Filter similarPosts renamed to relatedPosts, closes #386

    Removed

    • #417 [CodingStandard] Dropped InjectToConstructorInjectionFixer, use @RectorPHP instead

    • #419 [CodingStandard] Dropped ControllerRenderMethodLimitSniff and InvokableControllerSniff, as related to SymbioticController

    • #432 [CodingStandard] Dropped NewClassSniff, use NewWithBracesFixer instead

    • #430 [EasyCodingStandard] Dropped --fixer-set and --checker-set options for show command

    • #412 [PackageBuilder] Removed Nette related-features, make package mostly internall for Symplify

    • #404 [SymbioticController] package deprecated, closes #402

    Full diff: https://github.com/Symplify/Symplify/compare/v2.5.0...v3.0.0-RC1

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-RC3(Jul 4, 2017)

    Changed

    • #155 bump min version to Symfony 3.3

    Fixed

    • #157 [CodingStandard] fix property docblock sniff for multiple annotations
    • #164 [SymbioticController] fixed typo in nette application request event name, Thanks @Lexinek

    Removed

    • #155 [AutoServiceRegistration] package deprecated
      • Use @Symfony 3.3 PSR-4 service autodiscovery: symfony/symfony#21289
    • #155 [ControllerAutowire] package deprecated
      • Use @Symfony 3.3 AbstractController symfony/symfony#22157
      • Use @Symfony 3.3 service PSR-4 autodiscovery: symfony/symfony#21289
    • #155 [ServiceDefinitionDecorator] package deprecated
      • Use _instanceof @Symfony 3.3: https://symfony.com/blog/new-in-symfony-3-3-simpler-service-configuration#interface-based-service-configuration

    For more deprecation details see https://www.tomasvotruba.cz/blog/2017/05/29/symplify-packages-deprecations-brought-by-symfony-33/

    Full diff: https://github.com/Symplify/Symplify/compare/v2.0.0-RC2...v2.0.0-RC3

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-RC2(Jul 4, 2017)

    Added

    • #144 [CodingStandard] added new sniffs

      • Symplify\CodingStandard\Sniffs\Architecture\ForbiddenTraitSniff
      • Symplify\CodingStandard\Sniffs\Commenting\VarConstantCommentSniff
      • Symplify\CodingStandard\Sniffs\Controller\ControllerRenderMethodLimitSniff
      • Symplify\CodingStandard\Sniffs\Controller\InvokableControllerSniff
    • #149 [CodingStandard] added Symplify\CodingStandard\Sniffs\Classes\EqualInterfaceImplementationSniff

    • #149 [CodingStandard] added Symplify\CodingStandard\Sniffs\Debug\CommentedOutCodeSniff

    • #152 [CodingStandard] check for duplicated checker added - https://github.com/Symplify/Symplify/pull/152/files#diff-9c8034d27d44f02880909bfad4a7f853

    • #150 [Statie] decouple Latte related files to FlatWhite sub-package

    Changed

    • #151 [EasyCodingStandard] Nette\DI conControllerRenderMethodLimitSnifffig loading style added, parameters are now in Container and sniffs/fixers are registered as services

    Fixed

    • #142 [ControllerAutowire] prevent duplicated controller registraction

    Removed

    • #144 [CodingStandard] drop sniffs duplicated in 3rd party packages
      • Symplify\CodingStandard\Sniffs\Commenting\MethodCommentSniff, replaced by SlevomatCodingStandard\Sniffs\TypeHints\TypeHintDeclarationSniff
      • Symplify\CodingStandard\Sniffs\Commenting\MethodReturnTypeSniff, replaced by SlevomatCodingStandard\Sniffs\TypeHints\TypeHintDeclarationSniff
    • #152 [CodingStandard] removed unused sniff Symplify\CodingStandard\Sniffs\Commenting\ComponentFactoryCommentSniff
    • #153 [SymfonySecurityVoters] package deprecated, for no practical use

    Full diff: https://github.com/Symplify/Symplify/compare/v2.0.0-RC1...v2.0.0-RC2

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-RC1(Jul 4, 2017)

    Changed

    • badges improvements

    Fixed

    • fixed missing composer dependencies after subsplit

    Full diff: https://github.com/Symplify/Symplify/compare/v1.4.10...v2.0.0-RC1

    Source code(tar.gz)
    Source code(zip)
Owner
(Easy) Coding Standards, Static Site Generator, Package Builder utils on PHP 7.1 and Symfony 3.4/4.3/5.0
null
Sunhill Framework is a simple, fast, and powerful PHP App Development Framework

Sunhill Framework is a simple, fast, and powerful PHP App Development Framework that enables you to develop more modern applications by using MVC (Model - View - Controller) pattern.

Mehmet Selcuk Batal 3 Dec 29, 2022
CakePHP: The Rapid Development Framework for PHP - Official Repository

CakePHP is a rapid development framework for PHP which uses commonly known design patterns like Associative Data Mapping, Front Controller, and MVC. O

CakePHP 8.6k Dec 31, 2022
High-Performance Long-Living PHP Framework for modern enterprise application development

Documentation · Discord · Telegram · Twitter Spiral Framework is a High-Performance Long-Living Full-Stack framework and group of over sixty PSR-compa

Spiral Scout 1.4k Jan 1, 2023
QPM, the process management framework in PHP, the efficient toolkit for CLI development. QPM provides basic daemon functions and supervision mechanisms to simplify multi-process app dev.

QPM QPM全名是 Quick(or Q's) Process Management Framework for PHP. PHP 是强大的web开发语言,以至于大家常常忘记PHP 可以用来开发健壮的命令行(CLI)程序以至于daemon程序。 而编写daemon程序免不了与各种进程管理打交道。Q

Comos 75 Dec 21, 2021
:gem: Go! AOP PHP - modern aspect-oriented framework for the new level of software development

Go! Aspect-Oriented Framework for PHP Go! AOP is a modern aspect-oriented framework in plain PHP with rich features for the new level of software deve

Go! Aspect-Oriented Framework 1.6k Dec 29, 2022
PHPLucidFrame (a.k.a LucidFrame) is an application development framework for PHP developers

PHPLucidFrame (a.k.a LucidFrame) is an application development framework for PHP developers. It provides logical structure and several helper utilities for web application development. It uses a functional architecture to simplify complex application development. It is especially designed for PHP, MySQL and Apache. It is simple, fast, lightweight and easy to install.

PHPLucidFrame 19 Apr 25, 2022
li₃ is the fast, flexible and most RAD development framework for PHP

li₃ You asked for a better framework. Here it is. li₃ is the fast, flexible and the most RAD development framework for PHP. A framework of firsts li₃

Union of RAD 1.2k Dec 23, 2022
☄️ PHP CLI mode development framework, supports Swoole, WorkerMan, FPM, CLI-Serve

☄️ PHP CLI mode development framework, supports Swoole, WorkerMan, FPM, CLI-Server / PHP 命令行模式开发框架,支持 Swoole、WorkerMan、FPM、CLI-Server

Mix PHP 1.8k Dec 29, 2022
Hamtaro - the new web framework for front-end / back-end development using Php and Javascript.

Hamtaro framework About Technologies Controllers Components Commands Front-end development Getting Started About Hamtaro is the new web framework for

Phil'dy Jocelyn Belcou 3 May 14, 2022
Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress.

Pods Framework Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress. Description Che

Pods Foundation, Inc 982 Jan 4, 2023
Platform for Citizen Engagement, Smart Communities, Smart Cities in the context of the Sustainable Development Goals 🏙️👩‍💻👨‍💼🙋‍♀️🙋‍♂️🦾🤖

Civikmind Plataforma Libre y de código abierto para la Participación Ciudadana, Veeduría Ciudadana, Gestión de Comunidades Inteligentes, Ciudades Inte

Smart Cities Community 29 Dec 8, 2022
FreeSWITCH's Event Socket Layer is a TCP control interface enabling the development of complex dynamic dialplans/workflows

Asynchronous Event Socket Layer library for PHP Quickstart FreeSWITCH's Event Socket Layer is a TCP control interface enabling the development of comp

rtckit 3 Oct 11, 2022
Elgg is an open source rapid development framework for socially aware web applications.

Elgg Elgg is an open source rapid development framework for socially aware web applications. Features Well-documented core API that allows developers

Elgg 1.6k Dec 27, 2022
Motan - a cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services

Motan-PHP Overview Motan is a cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services.

Weibo R&D Open Source Projects 81 Nov 19, 2022
Simple PHP framework that helps you quickly understand and write simple APIs.

Lightweight-PHP-Framework-For-APIs. Simple PHP framework that helps you quickly understand and write simple APIs. Installation Use the package manager

Youssef Hajjari 24 Jul 22, 2022
Simple PHP framework that helps you quickly understand and write simple APIs.

Lightweight PHP Framework For Web and APIs PHP framework that helps you write quickly simple but powerful web apps and APIs Installation Use the packa

Youssef Hajjari 24 Jul 22, 2022
FuelPHP v1.x is a simple, flexible, community driven PHP 5.3+ framework, based on the best ideas of other frameworks, with a fresh start! FuelPHP is fully PHP 7 compatible.

FuelPHP Version: 1.8.2 Website Release Documentation Release API browser Development branch Documentation Development branch API browser Support Forum

Fuel 1.5k Dec 28, 2022
Hello, this is simple attribute validation for PHP Models, based on the new features, presented in PHP 8

Hello, this is simple attribute validation for PHP Models, based on the new features, presented in PHP 8 It works as a standalone and can be use in custom projects or in libraries like Symfony and Laravel.

Ivan Grigorov 88 Dec 30, 2022
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.

Slim Framework Slim is a PHP micro-framework that helps you quickly write simple yet powerful web applications and APIs. Installation It's recommended

Slim Framework 11.5k Jan 4, 2023