PHP_Depend is an adaptation of the established Java development tool JDepend. This tool shows you the quality of your design in terms of extensibility, reusability and maintainability.

Overview

PHP Depend

Build Status Packagist codecov.io Scrutinizer Code Quality Chat to us on Gitter

Documentation

PHP Depend for enterprise

Available as part of the Tidelift Subscription.

The maintainers of PHP Depend and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.

Comments
  • Ternary operator should not be more complex (npath) than a if/else condition.

    Ternary operator should not be more complex (npath) than a if/else condition.

        function test($a) {
              return $a > 10 ? 5:20;
        }
    

    has only 2 possible paths, but pdepend gives it a npath complexity of 5.

    See the discussion at: http://stackoverflow.com/questions/24197973/why-is-the-ternary-operator-more-complex-than-if-else

    opened by h0gar 104
  • Support PHP 8.1

    Support PHP 8.1

    Description

    PHP 8.1 comes with new keyword, structures and many things that needs adjustments in PDepend https://wiki.php.net/rfc#php_81

    • [x] #563
    • [x] #565
    • [x] #608
    • [x] #614
    • [x] #598
    • [x] #612
    • [x] #610
    • [x] #568
    • [x] Explicit octal integer literal notation #600
    php8.x php8.1 
    opened by kylekatarnls 24
  • International names support

    International names support

    Do not merge this as is, we need to figure out how to best handle things in a consistent way to how PHP works

    Type: feature
    Breaking change: no

    Filenames, namespaces and class names where being handled with functions that aren't safe on non anscii string, but PHP non-anscii names.

    mb_* is already used in other parts of the application so this doesn't add new dependencies.

    Compatiblity 
    opened by AJenbo 17
  • Handle PHP 7.1 level

    Handle PHP 7.1 level

    This PR join #379 and #366

    It aims to check PHP syntax features proper compatibility from 5.3 to 7.1 in a more global way.

    Fixes https://github.com/phpmd/phpmd/issues/589

    php7.0 php7.1 php5.6 Compatiblity php5.x php5.4 php5.5 php7.x Support Request 
    opened by kylekatarnls 15
  • ASTNode expected, ASTAnonymousClass given

    ASTNode expected, ASTAnonymousClass given

    Hi there,

    I just ran phpmd on my project with this command:

    vendor/bin/phpmd ./ text cleancode,codesize,controversial,design,naming,unusedcode --exclude=vendor/*,Tests/app/cache/*,Tests/app/logs/*,Tests/app/AppKernel.php
    

    Error below:

    PHP Catchable fatal error: Argument 1 passed to PDepend\Source\AST\AbstractASTNode::addChild() must implement interface PDepend\Source\AST\ASTNode, instance of PDepend\Source\AST\ASTAnonymousClass given, called in /squawka/squawka-database/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/PHPParserVersion70.php on line 214 and defined in /squawka/squawka-database/vendor/pdepend/pdepend/src/main/php/PDepend/Source/AST/AbstractASTNode.php on line 367

    Versions used:

    • "phpmd/phpmd": "2.4.2"
    • "pdepend/pdepend": "2.2.4"

    There's anything I could do to find out how to solve this?

    opened by fracasula 15
  • Project abandoned?

    Project abandoned?

    Latest commit to master is from 19th of January. Lots of issues regarding PHP 7.1 support and 7.2 is already coming out next month.

    Is the project abandoned?

    opened by emirb 13
  • Warning: DOMNode::cloneNode(): ID <id> already defined in phar:

    Warning: DOMNode::cloneNode(): ID already defined in phar:

    I get a couple of these warnings:

    Warning: DOMNode::cloneNode(): ID jdepend.good already defined in phar:///Users/.../pdepend.phar/src/main/php/PDepend/Report/Jdepend/Chart.php on line 199
    Warning: DOMNode::cloneNode(): ID jdepend.legend already defined in phar:///Users/.../pdepend.phar/src/main/php/PDepend/Report/Jdepend/Chart.php on line 224
    Warning: DOMNode::cloneNode(): ID jdepend.bad already defined in phar:///Users/.../pdepend.phar/src/main/php/PDepend/Report/Jdepend/Chart.php on line 201
    

    Running the phar version (2.0.6)

    Bug 
    opened by localgod 13
  • Trailing comma in unset parse fails

    Trailing comma in unset parse fails

    • PHP Depend version: 2.x-dev
    • PHP Version: 8.0.3
    • Installation type: composer
    • Operating System / Distribution & Version: (Windows 10 / CentOS 7.6 / ...)

    Current Behavior

    The following fails to parse.

            unset(
                $model['id'],
                $model['imageSrc'],
                $model['interiorImageURL'],
                $model['interiorImage360URL'],
                $model['vehicleVariants'],
            );
    

    Unexpected token: ), line: 321, col: 9, file: /app/src/Core/Configurator/Domain/Service/ProductApi/ProductApiImportSource.php.

    Expected Behavior

    Do not fail.

    Steps To Reproduce:

    Above

    Checks before submitting

    • [x] Be sure that there isn't already an issue about this. See: Issues list
    • [x] Be sure that there isn't already a pull request about this. See: Pull requests
    • [x] I have added every step to reproduce the bug.
    • [x] If possible I added relevant code examples.
    • [x] This issue is about 1 bug and nothing more.
    • [x] The issue has a descriptive title. For example: "Default value is not available in AST when it's an array".
    Bug 
    opened by archfz 12
  • Windows+Composer install fails due to

    Windows+Composer install fails due to "path too long"

    A handfull of the test files with long class names will cause the ZipArchive::extractTo() method to fail, due to the Windows zip file reader saying "Path too long".

    This seems to be due to the combination of the long filenames and pathing, on top of the long zip filename being set by either Composer or Github on the download step (I cannot tell which it is), e.g. "6fcfb7666c95f341b42f02c94a47b3a51ed484e0.zip".

    The resulting total paths look like this example:
    C:\Users\cburgess\AppData\Local\Composer\files\pdepend\pdepend\6fcfb7666c95f341b42f02c94a47b3a51ed484e0\pdepend-pdepend-6fcfb76\src\test\resources\files\Code\ASTMemberPrimaryPrefix\testGraphDereferencedArrayFromStaticMethodCallAndMultipleMethodInvocations.php

    It is simply pdepend-1.1.1 that my composer install step is trying to download and install, but the unzip step just can't succeed because of the some of the paths that Windows cannot unzip successfully ("path too long").

    I realize it's probably not feasible for you to shorten your class names and path structure. However, no amount of searches I've done leads to anything close to mentioning this issue, so I wanted to make a record of it that people will be able to find.

    Bug 
    opened by ashnazg 11
  • I can't download

    I can't download "pdepend.phar" - unknown host static.pdepend.org

    • PHP Depend version: 2.9.0
    • PHP Version: any
    • Installation type: phar file
    • Operating System / Distribution & Version: Ubuntu, Mac OS

    Current Behavior

    According to docs I can't download phar file.

    Expected Behavior

    Phar file is downloaded via curl/wget.

    Steps To Reproduce:

    I tried to download the file via wget http://static.pdepend.org/php/latest/pdepend.phar on different hosts.

    $ wget  http://static.pdepend.org/php/latest/pdepend.phar
    --2021-03-29 18:12:48--  http://static.pdepend.org/php/latest/pdepend.phar
    Resolving static.pdepend.org (static.pdepend.org)... failed: Name or service not known.
    wget: unable to resolve host address ‘static.pdepend.org’
    

    Ping also doesn't see the host

    $ ping static.pdepend.org
    ping: static.pdepend.org: Name or service not known
    

    Checks before submitting

    • [x] Be sure that there isn't already an issue about this. See: Issues list
    • [x] Be sure that there isn't already a pull request about this. See: Pull requests
    • [x] I have added every step to reproduce the bug.
    • [x] If possible I added relevant code examples.
    • [x] This issue is about 1 bug and nothing more.
    • [x] The issue has a descriptive title. For example: "Default value is not available in AST when it's an array".
    Website Build scripts Documentation 
    opened by SmetDenis 10
  • ASTConstantDeclarator crash on array concat with named keys

    ASTConstantDeclarator crash on array concat with named keys

    This will crash pdepend

    class Test
    {
        const A = [];
        const B = self::A + ['a' => 1];
    }
    

    Log: `PDepend @package_version@

    Parsing source files: ....... Creating: \PDepend\Source\AST\ASTNamespace(Kontent_Auth\Adapter)...................... Creating: \PDepend\Source\AST\ASTNamespace(Site_Controller\Kontent_Controller)....... Creating: \PDepend\Source\AST\ASTNamespace(Kontent_Field).... Processing file /home/ajenbo/code/test.php Creating: \PDepend\Source\AST\ASTConstantDefinition(const) Creating: \PDepend\Source\AST\ASTConstantDeclarator(A) Creating: \PDepend\Source\AST\ASTArray() Creating: \PDepend\Source\AST\ASTConstantDefinition(const) Creating: \PDepend\Source\AST\ASTConstantDeclarator(B)PHP Fatal error: Uncaught TypeError: Argument 1 passed to PDepend\Source\AST\ASTConstantDeclarator::setValue() must be an instance of PDepend\Source\AST\ASTValue, null given, called in /usr/share/php/PDepend/Source/Language/PHP/AbstractPHPParser.php on line 6118 and defined in /usr/share/php/PDepend/Source/AST/ASTConstantDeclarator.php:107 Stack trace: #0 /usr/share/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(6118): PDepend\Source\AST\ASTConstantDeclarator->setValue(NULL) #1 /usr/share/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(6053): PDepend\Source\Language\PHP\AbstractPHPParser->parseConstantDeclarator() #2 /usr/share/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(839): PDepend\Source\Language\PHP\AbstractPHPParser->parseConstantDefinition() #3 /usr/share/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(666): PDepend\Source\Language\PHP\AbstractPHPParser->parseTypeBody(Object(PDepend\Source\AST\ASTClass)) #4 /usr/share/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(5669): PDepend\Sour in /usr/share/php/PDepend/Source/AST/ASTConstantDeclarator.php on line 107`

    Bug php5.6 
    opened by AJenbo 10
  • Crashes with parenthesized argument to isset

    Crashes with parenthesized argument to isset

    • PHP Depend version: 2.12.1
    • PHP Version: 8.1.13
    • Installation type: composer (with PHPMD)
    • Operating System / Distribution & Version: Ubuntu ( inside WSL2 on Windows 10) Original reported in: https://github.com/phpmd/phpmd/issues/992

    Current Behavior

    Crashing PDepend if isset is used with an additional parenthesized argument.

            -       Unexpected token: (, line: 3, col: 11, file: /home/tjvb/projects/phpmd/test.php.
    #0 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(7440): PDepend\Source\Parser\UnexpectedTokenException->__construct()
    #1 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(4536): PDepend\Source\Language\PHP\AbstractPHPParser->getUnexpectedTokenException()
    #2 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(4901): PDepend\Source\Language\PHP\AbstractPHPParser->parseVariableOrConstantOrPrimaryPrefix()
    #3 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(2204): PDepend\Source\Language\PHP\AbstractPHPParser->parseVariableList()
    #4 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(2819): PDepend\Source\Language\PHP\AbstractPHPParser->parseIssetExpression()
    #5 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(2500): PDepend\Source\Language\PHP\AbstractPHPParser->parseOptionalExpression()
    #6 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/PHPParserVersion70.php(278): PDepend\Source\Language\PHP\AbstractPHPParser->parseBraceExpression()
    #7 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(3491): PDepend\Source\Language\PHP\PHPParserVersion70->parseParenthesisExpression()
    #8 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(6101): PDepend\Source\Language\PHP\AbstractPHPParser->parseIfStatement()
    #9 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(397): PDepend\Source\Language\PHP\AbstractPHPParser->parseOptionalStatement()
    #10 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Engine.php(587): PDepend\Source\Language\PHP\AbstractPHPParser->parse()
    #11 /home/tjvb/projects/phpmd/vendor/pdepend/pdepend/src/main/php/PDepend/Engine.php(335): PDepend\Engine->performParseProcess()
    #12 /home/tjvb/projects/phpmd/src/main/php/PHPMD/Parser.php(99): PDepend\Engine->analyze()
    #13 /home/tjvb/projects/phpmd/src/main/php/PHPMD/PHPMD.php(240): PHPMD\Parser->parse()
    #14 /home/tjvb/projects/phpmd/src/main/php/PHPMD/TextUI/Command.php(136): PHPMD\PHPMD->processFiles()
    #15 /home/tjvb/projects/phpmd/src/main/php/PHPMD/TextUI/Command.php(184): PHPMD\TextUI\Command->run()
    #16 /home/tjvb/projects/phpmd/src/bin/phpmd(61): PHPMD\TextUI\Command::main()
    #17 {main}
    

    Expected Behavior

    Explain the result that you expected.

    Steps To Reproduce:

    Run pdepend on

    <?php
    $value = 1;
    if (isset(($value))) {
      print "value = $value\n";
    }
    

    Checks before submitting

    • [x] Be sure that there isn't already an issue about this. See: Issues list
    • [x] Be sure that there isn't already a pull request about this. See: Pull requests
    • [x] I have added every step to reproduce the bug.
    • [x] If possible I added relevant code examples.
    • [x] This issue is about 1 bug and nothing more.
    • [x] The issue has a descriptive title. For example: "Default value is not available in AST when it's an array".
    Bug 
    opened by tvbeek 1
  • Unexpected Token Exception for class name is thrown when using combination

    Unexpected Token Exception for class name is thrown when using combination "readonly" and "final" or "readonly" and "abstract"

    • PHP Depend version: 2.12.1
    • PHP Version: 8.2.0
    • Installation type: composer
    • Operating System / Distribution & Version: Docker image webdevops/php-nginx-dev
    • phpmd/phpmd 2.13.0

    Current Behavior

    Unexpected Token Exception for class name is thrown when using combination "readonly" and "final" or "readonly" and "abstract".

    Expected Behavior

    The same behavior as when you use the words separately.

    Steps To Reproduce:

    1. Use combination of words "readonly" and "final" for declaration of class e.g. "final readonly class SmsStatusChecker" or "readonly final class SmsStatusChecker" or "abstract readonly class AbstractStringValueObject implements Stringable",...
    2. Run PHPMD command

    Error log: Unexpected token: readonly, line: 22, col: 7, file: /app/app/Service/SmsStatusChecker.php. #0 /app/vendor/pdepend/pdepend/src/main/php/PDepend/Source/Language/PHP/AbstractPHPParser.php(7965): PDepend\Source\Parser\UnexpectedTokenException->__construct(Object(PDepend\Source\Tokenizer\Token), Object(PDepend\Source\AST\ASTCompilationUnit))

    Checks before submitting

    • [x] Be sure that there isn't already an issue about this. See: Issues list
    • [x] Be sure that there isn't already a pull request about this. See: Pull requests
    • [x] I have added every step to reproduce the bug.
    • [x] If possible I added relevant code examples.
    • [x] This issue is about 1 bug and nothing more.
    • [x] The issue has a descriptive title. For example: "Default value is not available in AST when it's an array".
    opened by EmilPDev 1
  • Prevent the use of a not set id value in the AbstractASTType and AbstractASTCallable

    Prevent the use of a not set id value in the AbstractASTType and AbstractASTCallable

    Prevent the use of a not set id value in the AbstractASTType and AbstractASTCallable

    This prevent deprecated warning if null is passed to the storage driver.

    Type: bugfix / refactoring
    Issue: #.. the corresponding issue for this PR (if exist) Breaking change: yes/no (if yes explain why)

    I got the error: Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /[project]/vendor/pdepend/pdepend/src/main/php/PDepend/Util/Cache/Driver/File/FileCacheDirectory.php on line 111

    While debugging I found out that it was from a call to the storage with null because the id wasn't set. By using the getId() function the id will be set if not yet done and it prevents errors more downstream the application.

    opened by tvbeek 0
  • Enum with DEFAULT or NEW case result in error.

    Enum with DEFAULT or NEW case result in error.

    • PHP Depend version: 2.12.1
    • PHP Version: 8.1.7
    • Installation type: composer (with PHPMD)
    • Operating System / Distribution & Version: Alpine 3.16 (docker container)

    Current Behavior

    When an enum contains a value named DEFAULT or NEW, pdepend crashes.

    Expected Behavior

    Expected behavior is no error, just a successful analysis.

    Steps To Reproduce:

    Create a class with the enum and run PDepend on it

    Checks before submitting

    • [x] Be sure that there isn't already an issue about this. See: Issues list
    • [x] Be sure that there isn't already a pull request about this. See: Pull requests
    • [x] I have added every step to reproduce the bug.
    • [x] If possible I added relevant code examples.
    • [x] This issue is about 1 bug and nothing more.
    • [x] The issue has a descriptive title. For example: "Default value is not available in AST when it's an array".

    This is first reported in: https://github.com/phpmd/phpmd/issues/985

    Bug Compatiblity PHPMD php8.1 
    opened by tvbeek 3
Releases(2.12.1)
  • 2.12.1(Sep 8, 2022)

  • 2.12.0(Sep 7, 2022)

    Changelog

    (since 2.11.1...2.12.0)

    Added

    • Added #625: Implement PHP 8.2 readonly classes support
    • Added #626: Implement PHP 8.2 Disjunctive Normal Form Types
    • Added #618: Implement PHP 8.2 null/false stand-alone type
    • Added #620: Implement PHP 8.2 true type
    • Added #627: Tests for fetching properties of enums in const expressions

    Fixed

    • Fixed #629: Fix &... $parameter parsing

    We would like to thank all the contributors that helped make this release possible:

    • @asmundstavdahl
    • @kylekatarnls
    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.62 MB)
  • 2.11.1(Sep 1, 2022)

  • 2.11.0(Aug 29, 2022)

    Changelog

    (since 2.10.3...2.11.0)

    Added

    • Added #600: Support integer non-decimal notations
    • Added #598: Support PHP 8.1 in-initializers
    • Added #610: Support PHP 8.1 support pure intersection types
    • Added #613: Support PHP 8.1 first class callable syntax
    • Added #608: Support PHP 8.1 enums

    Fixed

    • Fixed #593: Fix cache for STDIN usage
    • Fixed #603: Allow coma-separated variables in short-tags
    • Fixed #604: Support key variable in list unpacking

    Changed

    • Changed #589, #588, #587, #586, #585, #581, #580

    We would like to thank all the contributors that helped make this release possible:

    • @AJenbo
    • @frankdekker
    • @Jeroeny
    • @kylekatarnls
    • @tvbeek

    New Contributors

    • @frankdekker made their first contribution in https://github.com/pdepend/pdepend/pull/610
    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.60 MB)
  • 2.10.3(Feb 23, 2022)

    Changelog

    (since 2.10.2...2.10.3)

    Added

    • Added #574: Support Symfony 6

    Fixed

    • Fixed #583, #578, #577, #576 : Add declare ReturnTypeWillChange to fix deprecation warnings.
    • Fixed #575: Fix deprecation warning in AbstractPHPParser::parseVarAnnotation.
    • Fixed #579: Fix deprecation messages in AbstractPHPParser::prepareCallable.

    Changed

    • Changed #589, #588, #587, #586, #585, #581, #580 : Internal code cleanup and PHPStan fixes.

    We would like to thank all the contributors that helped make this release possible:

    • @AJenbo
    • @Jeroeny
    • @niconoe-
    • @ravage84
    • @YAhiru

    New Contributors

    • @Jeroeny made their first contribution in https://github.com/pdepend/pdepend/pull/574
    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.57 MB)
  • 2.10.2(Nov 17, 2021)

    Changelog

    (since 2.10.1...2.10.2)

    Added

    • Added #568: Support PHP 8.1 final constants

    Fixed

    • Fixed #567: Allow const, field, method named readonly
    • Fixed #572: Allow "readonly" as part of a class name

    Documentation

    • Added #569: twitter follow link to the footer of the website: https://twitter.com/pdepend

    We would like to thank all the contributors that helped make this release possible:

    • @SpartakusMd
    • @tvbeek
    • @kylekatarnls
    • @melvin-ibuildings
    • @frankdekker
    • @fengelniederhammer
    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.60 MB)
  • 2.10.1(Oct 11, 2021)

    Changelog

    (since 2.10.0...2.10.1)

    Added

    • Added #563: Support PHP 8.1 never return type.
    • Added #565: Support PHP 8.1 readonly properties.
    • Added #561: Support trailing comma in isset() and unset() lists.

    Fixed

    • Fixed #562: Allow any keyword as the name of an argument.
    • Fixed #555: Restore modifier after serialization.

    We would like to thank all the contributors that helped make this release possible:

    • @SpartakusMd
    • @YAhiru
    • @kylekatarnls
    • @tvbeek
    • @ravage84
    • @AJenbo
    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.60 MB)
  • 2.10.0(Jul 20, 2021)

    Changelog

    (since 2.9.1...2.10.0)

    Added

    • Added #534: Support trailing comma in parameters list.
    • Added #535: Support trailing comma in closure list.
    • Added #538: Add named argument value as child to make it discoverable.
    • Added #540: Support throw expression.
    • Added #543: Support multiple expressions as match key.

    Fixed

    • Fixed #530: Automate release generation for the website.
    • Fixed #537: Match expression does not have namespace
    • Fixed #541: Fix support for union types
    • Fixed #544: Math throw entry may end on curly braces
    • Fixed #547: Add the phar to the website. The new URL is: https://pdepend.org/static/latest/pdepend.phar
    • Fixed #550: Allow multiple arguments in invocation
    • Fixed #551: Allow null and false in union type for typed properties
    • Fixed #552: Allow null-safe operator anywhere object operator is allowed

    Potential breaking change

    We have a small BC break on some internal functions, this is made in #538
    This is breaking for classes that extend ASTNamedArgument and use $this->value which will be removed. As a semi-private thing, we assume the risk of change is something the developer is aware when entering the protected scope. Also considering, ASTNamedArgument class is quite new, risk that users already started to extend it is low while keeping the $value property might create pain, storing the value only in $nodes is safest.

    We would like to thank all the contributors that helped make this release possible:

    • @SpartakusMd
    • @lucassabreu
    • @kylekatarnls
    • @tvbeek
    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.59 MB)
  • 2.9.1(Apr 15, 2021)

    Changelog

    (since 2.9.0...2.9.1)

    Added

    • Added #519: Support PHP 7.2 trailing commas in grouped use declarations
    • Added #518: Support PHP 8 static type hint
    • Added #522: Support PHP 8 null and false type hint
    • Added #516: Support PHP 8 catch without variable

    Fixed

    • Fixed #527: Allow nested arrays in PHP 8 attributes

    We would like to thank all the contributors that helped make this release possible:

    • @AJenbo
    • @andrei-vdc
    • @bperel
    • @cborgas
    • @john-f-chamberlain
    • @JKapitein
    • @kylekatarnls
    • @kylerqws
    • @Shyryuu
    • @tvbeek

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.58 MB)
  • 2.9.0(Mar 11, 2021)

    Changelog

    (since 2.8.0...2.9.0)

    Added

    • Added #496: Support PHP 8 Match expression
    • Added #494: Support PHP 8 Constructor property promotion
    • Added #492: Support PHP 8 Named arguments
    • Added #493: Support PHP 8 Attributes
    • Added #495: Support PHP 8 Union types
    • Added #497: Support PHP 8 Nullsafe operator
    • Added #491: Support PHP 8 tokens changes

    Fixed

    • Fixed #490: Preserve short open tags
    • Fixed #480, #486 and #513: PHPDoc blocks

    Changed

    • Changed #500: Switch to GitHub Actions
    • Changed #511: Run PHPStan in GitHub actions
    • Changed #489: Add unit tests for Application class

    Removed

    • Removed #488: changes.xml legacy file

    We would like to thank all the contributors that helped make this release possible:

    • @AJenbo
    • @john-f-chamberlain
    • @kylekatarnls
    • @MarkVaughn
    • @marvincaspar
    • @paulrrogers
    • @tvbeek
    • @ravage84

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.57 MB)
  • 2.8.0(Jun 20, 2020)

    Changelog

    (since 2.7.1...2.8.0)

    Added

    • Added #458: Support trait insteadof overrides
    • Added #466: Allow to configure file cache ttl in configuration file.

    Fixed

    • Fixed #467: Use the HOME env variable also for Windows
    • Fixed #475: Fixed #474 typed property visibility
    • Fixed #476: Fixed #473 handle skipped variable in destructuring array
    • Fixed #483: Fixed bool flip in parseEscapedAstLiteralString()

    We would like to thank all the contributors that helped make this release possible:

    • @AJenbo
    • @kylekatarnls
    • @phated
    • @sveneld
    • @tvbeek

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.49 MB)
  • 2.7.1(Feb 12, 2020)

  • 2.7.0(Jan 24, 2020)

    Changelog

    (since 2.6.1...2.7.0)

    Added

    • Support for php:// stream wrappers
    • PHP 7.4 features support

    We would like to thank all the contributors that helped make this release possible:

    • @kylekatarnls
    • @Sweetchuck
    • @tvbeek

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.40 MB)
  • 2.6.1(Dec 21, 2019)

  • 2.6.0(Dec 16, 2019)

    The new maintainer team of PHP_Depend is pleased to announce its first minor release PHP_Depend version 2.6.0.

    Changelog

    (since 2.5.2...2.6.0)

    Added

    • Documentation for the Halstead metrics and Maintainability index #369
    • Support PHP 7.1 syntax #383

    Fixed

    • PHP 7 and parsing some return types #386
    • Remove not needed files from the export used by composer ( #388 )
    • Fix Unexpected token error with invokable #381
    • Fix unable to call method on newly created and invoked class #365
    • Internal cleanup of code and process and website: #344 #373 #375 #376 #377 #378 #385 #392 #393

    We would like to thank all the contributors that helped make this release possible:

    • @AJenbo
    • @emirb
    • @jakzal
    • Jorge Velasco
    • @KacerCZ
    • @krukru
    • @kylekatarnls
    • @MitchellMacpherson
    • @Nacoma
    • @ravage84
    • @tvbeek

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.39 MB)
  • 2.6.0-beta.1(Dec 4, 2019)

    The new maintainer team of PHP_Depend is pleased to announce its first minor release PHP_Depend version 2.6.0.

    Changelog

    (since 2.5.2...2.6.0-beta.1)

    Added

    • Documentation for the Halstead metrics and Maintainability index #369
    • Support PHP 7.1 syntax #383

    Fixed

    • PHP 7 and parsing some return types #386
    • Remove not needed files from the export used by composer ( #388 )
    • Fix Unexpected token error with invokable #381
    • Fix unable to call method on newly created and invoked class #365
    • Internal cleanup of code and process and website: #344 #373 #375 #376 #377 #378 #385 #392 #393

    We would like to thank all the contributors that helped make this release possible:

    • @AJenbo
    • @emirb
    • @jakzal
    • Jorge Velasco
    • @KacerCZ
    • @krukru
    • @kylekatarnls
    • @MitchellMacpherson
    • @Nacoma
    • @ravage84
    • @tvbeek

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

    Source code(tar.gz)
    Source code(zip)
    pdepend.phar(2.39 MB)
  • 2.5.2(Dec 13, 2017)

  • 2.5.1(Dec 6, 2017)

    Changelog (since 2.5.0...2.5.1)

    This release contains many bugfixes, enables Scrutinizer and adds code coverage integration. HHVM support was dropped. Full support for missing language features for PHP <= 7.1 were added.

    [PR #338]

    Source code(tar.gz)
    Source code(zip)
Shows you the current diocese that you're in, as well as the bishop.

Use config.php to create variables $dbuser and $dbpass for the database connection. Run `php -f ./coa/newcheck.php` to update database information fr

Canon Law Ninjas 2 Dec 2, 2021
This demo app shows you how to run a simple PHP application on AWS Elastic Beanstalk.

Elastic Beanstalk + PHP Demo App - "Share Your Thoughts" This demo app shows you how to run a simple PHP application on AWS Elastic Beanstalk. Run the

AWS Samples 143 Nov 26, 2022
Install an execute script of specify quality tools to your git pre-commit hook, and it executes only for changed files

Quality Hook Installer Install an execute script of specify quality tools to your git pre-commit hook, and it executes only for changed files Install

Kay W. 2 Dec 15, 2022
Dashboard that shows who pings your linux box - PHP and TCPDUMP

server-ping-alert Dashboard that shows who pings your linux box - PHP and TCPDUMP This uses tcpdump and php to see who is pinging your linux box. This

null 4 May 16, 2022
WPForms coding standards are based on the WordPress Coding Standards and the PHPCompatibility Coding Standards and help create strict and high-quality code.

WPForms coding standards are based on the WordPress Coding Standards and the PHPCompatibility Coding Standards and help create strict and high-quality code.

Awesome Motive, Inc. 7 Nov 29, 2022
Enhance product data quality and streamline content creation with the Pimcore and ChatGPT integration.

chatgpt-pimcore Enhance product data quality and streamline content creation with the Pimcore and ChatGPT integration. Overview The integration of Pim

Pravin chaudhary 6 Jun 5, 2023
Ip2region is a offline IP location library with accuracy rate of 99.9% and 0.0x millseconds searching performance. DB file is ONLY a few megabytes with all IP address stored. binding for Java,PHP,C,Python,Nodejs,Golang,C#,lua. Binary,B-tree,Memory searching algorithm

Ip2region是什么? ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法。 Ip2region特性

Lion 12.6k Dec 30, 2022
High performance view templating API for PHP applications using tags & expressions inspired by Java JSTL and C compiler

View Language API Table of contents: About Expressions Tags Configuration Compilation Installation Unit Tests Examples Reference Guide About This API

Lucian Gabriel Popescu 0 Jan 9, 2022
⚗️ Adds code analysis to Laravel improving developer productivity and code quality.

⚗️ About Larastan Larastan was created by Can Vural and Nuno Maduro, got artwork designed by @Caneco, is maintained by Can Vural, Nuno Maduro, and Vik

Nuno Maduro 4.4k Jan 4, 2023
Port of the Java Content Repository (JCR) to PHP.

PHP Content Repository PHPCR This repository contains interfaces for the PHPCR standard. The JSR-283 specification defines an API for a Content Reposi

PHPCR 436 Dec 30, 2022
An open-source Minecraft: Java Edition server implementation, written in PHP.

PHPCraft An open-source Minecraft: Java Edition server implementation, written in PHP. What is PHPCraft? PHPCraft is an open-source Minecraft: Java Ed

Karen/あけみ 17 Dec 31, 2022
A PHP library for all things Minecraft: Java Edition

Phpcraft A PHP library for all things Minecraft: Java Edition. This project has been abandoned! The limited subset of 1.8.x - 1.15.x that has been imp

null 16 Nov 29, 2022
This example shows how to use Anychart library with the PHP programming language, Laravel framework and MySQL database.

PHP basic template This example shows how to use Anychart library with the PHP programming language, Laravel framework and MySQL database. Running To

AnyChart Integrations and Templates 23 Jul 17, 2022
Internal Quality Assurance Cell, IQAC Project Data Capturing System.

IQAC-DCS-2021 Added AQAR Directory with template pages! Old Readme Internal Quality Assurance Cell, IQAC Project Data Capturing System. Fork Repo Clon

Kashif Raza 4 Jan 4, 2022
This package provides a wrapper for Google Lighthouse to audit the quality of web pages with Laravel.

laravel-google-lighthouse This package is based on octoper/lighthouse-php. This package provides a wrapper for Google Lighthouse to audit the quality

Logiek 5 Jun 1, 2022
The Barista explores every Latte (file) for strict quality, helps with Latte 2 to 3 upgrade

The Barista makes Your Perfectly Tasty Latte Do you drink Latte with your templates? Get it from Barista that knows his job: explore Latte via node vi

Tomas Votruba 5 Sep 7, 2022
Comprehensive Plugin for composer to execute PHP Quality assurance Tools

NOT MAINTANED ANYMORE The development of composer-plugin-qa was dropped in favor of phpqa which is actively maintained. The project use docker and can

Webysther Nunes 25 Apr 30, 2021
A Pocketmine-MP (PMMP) leaderboard plugin that shows player statistics on a website.

WebLeaderBoard A Pocketmine-MP (PMMP) leaderboard plugin that shows all sorts of statistics on a website. Setup Guide To start using the plugin, downl

ItsMax123 6 Apr 5, 2022