Skip to content

Commit

Permalink
version 2.4.7
Browse files Browse the repository at this point in the history
  • Loading branch information
christopheexakat committed Aug 9, 2022
1 parent ac44a2e commit 9aabfe4
Show file tree
Hide file tree
Showing 9 changed files with 756 additions and 688 deletions.
4 changes: 0 additions & 4 deletions Annex.rst
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ List of external links mentioned in this documentation.
* `ext/hash extension <http://www.php.net/manual/en/book.hash.php>`_
* `ext/hrtime manual <https://www.php.net/manual/en/intro.hrtime.php>`_
* `ext/leveldb on Github <https://github.com/reeze/php-leveldb>`_
* `ext/recode <http://www.php.net/manual/en/book.recode.php>`_
* `ext/SeasLog on Github <https://github.com/SeasX/SeasLog>`_
* `Factory (object-oriented programming) <https://en.wikipedia.org/wiki/Factory_(object-oriented_programming)>`_
* `FAM <http://oss.sgi.com/projects/fam/>`_
Expand Down Expand Up @@ -182,7 +181,6 @@ List of external links mentioned in this documentation.
* `Microsoft SQL Server <http://www.php.net/manual/en/book.mssql.php>`_
* `Microsoft SQL Server Driver <https://www.php.net/sqlsrv>`_
* `Migration80 <https://exakat.readthedocs.io/en/latest/Reports.html#migration80>`_
* `Ming (flash) <http://www.libming.org/>`_
* `MongoDB driver <https://www.php.net/mongo>`_
* `mysqli <https://www.php.net/manual/en/book.mysqli.php>`_
* `Ncurses Terminal Screen Control <https://www.php.net/manual/en/book.ncurses.php>`_
Expand Down Expand Up @@ -233,7 +231,6 @@ List of external links mentioned in this documentation.
* `PSR-6 : Caching <http://www.php-fig.org/psr/psr-6/>`_
* `RabbitMQ AMQP client library <https://github.com/alanxz/rabbitmq-c>`_
* `rar <https://en.wikipedia.org/wiki/RAR_(file_format)>`_
* `Rar archiving <https://www.php.net/manual/en/book.rar.php>`_
* `Refactoring code <https://www.jetbrains.com/help/phpstorm/refactoring-source-code.html>`_
* `Reflection export() methods <https://wiki.php.net/rfc/deprecations_php_7_4#reflection_export_methods>`_
* `RFC 7159 <http://www.faqs.org/rfcs/rfc7159>`_
Expand Down Expand Up @@ -279,7 +276,6 @@ List of external links mentioned in this documentation.
* `workflow_dispatch <https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow>`_
* `www.exakat.io <https://www.exakat.io/versions/>`_
* `YAML Ain't Markup Language <http://www.yaml.org/>`_
* `Zend Monitor - PHP API <http://files.zend.com/help/Zend-Server/content/zendserverapi/zend_monitor-php_api.htm>`_
* `zip <https://en.wikipedia.org/wiki/Zip_(file_format)>`_


Expand Down
34 changes: 32 additions & 2 deletions Changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Release Note

Here is the release note of exakat.

**Version 2.4.8 (???, 2022-08-27)**
**Version 2.5.0 (Wang Gui, 2022-09-07)**


+ Architecture
Expand All @@ -24,6 +24,24 @@ Here is the release note of exakat.
+ Tokenizer
+

**Version 2.4.9 (Xue Rengui, 2022-08-24)**


+ Architecture
+

+ Cobbler
+

+ Report
+

+ Analysis
+ Refactored analysis : strange names now covers types too.

+ Tokenizer
+ Fixed detection of constant in ternary/coalesce

**Version 2.4.7 (Xu Jingzong, 2022-08-03)**


Expand All @@ -34,7 +52,7 @@ Here is the release note of exakat.
+ New cobbler : remove brackets to single-instruction commands

+ Report
+
+ New inventory : IP

+ Analysis
+ Refactored analysis : Could Use Array_sum()
Expand All @@ -47,9 +65,21 @@ Here is the release note of exakat.
+ New analysis : no default for referenced parameter
+ New analysis : No clone constant before PHP 8.1
+ New analysis : Complete enum cases with definition to value and name
+ Refactored analysis : better handling of clone in Variable Typehint
+ Refactored analysis : cleaned some false positives with Undefined Properties
+ Refactored analysis : Unresolved use now uses stubs; upgrade in function/const coverage
+ Removed analysis : ext/recode, ext/runkit, ext/ming
+ Refactored analysis : Better coverage for 1 + []
+ Refactored analysis : Difference preference has gremlin upgraded
+ New analysis : Ext/random (PHP 8.2)
+ New analysis : IP inventory
+ Refactored analysis : JsonSerialize and ReturnTypeWIllChange cover new methods

+ Tokenizer
+ Added support for -> out of Enum cases (with name and value)
+ Added new classes from PHP 8.2
+ Fixed missing fullnspath for attributes with absolute path
+ Added all attributes to properties

**Version 2.4.6 (Li Yuanji, 2022-07-20)**

Expand Down
2 changes: 1 addition & 1 deletion Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Introduction
============

This is the documentation of the Exakat engine, version 2.4.7 (Build 1382), on Fri, 29 Jul 2022 14:48:08 +0000.
This is the documentation of the Exakat engine, version 2.4.7 (Build 1382), on Tue, 02 Aug 2022 16:51:02 +0000.

What is Exakat ?
----------------
Expand Down
1,271 changes: 659 additions & 612 deletions Reference/Rules.rst

Large diffs are not rendered by default.

61 changes: 30 additions & 31 deletions Reference/Rulesets.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Rulesets
Introduction
------------------------

Exakat provides unique 1512 rules to detect BUGS, CODE SMELLS, SECURITY OR QUALITY ISSUES in your PHP code.
Exakat provides unique 1511 rules to detect BUGS, CODE SMELLS, SECURITY OR QUALITY ISSUES in your PHP code.

For more smoothly usage, the ruleset concept allow you to run a set of rules based on a decidated focus. Beawre that a Ruleset run all the associated rules and any needed dependencies.

Expand Down Expand Up @@ -126,7 +126,7 @@ All

All is a dummy ruleset, which includes all the rules. It is mostly used internally.

Total : 1510 analysis
Total : 1509 analysis

* :ref:`adding-zero`
* :ref:`ambiguous-array-index`
Expand Down Expand Up @@ -362,7 +362,6 @@ Total : 1510 analysis
* :ref:`undefined-classes`
* :ref:`is-an-extension-class`
* :ref:`wrong-class-name-case`
* :ref:`ext-ming`
* :ref:`ext-redis`
* :ref:`is-an-extension-function`
* :ref:`is-an-extension-interface`
Expand Down Expand Up @@ -487,9 +486,7 @@ Total : 1510 analysis
* :ref:`defined-properties`
* :ref:`undefined-properties`
* :ref:`has-magic-method`
* :ref:`ext-recode`
* :ref:`ext-parsekit`
* :ref:`runkit7`
* :ref:`ext-gettext`
* :ref:`short-open-tags`
* :ref:`strict-comparison-with-booleans`
Expand Down Expand Up @@ -1268,7 +1265,7 @@ Total : 1510 analysis
* :ref:`make-class-method-definition`
* :ref:`create-default-values`
* :ref:`array\_merge()-and-variadic`
* :ref:`set-class\_alias-definition`
* :ref:`set-class\_alias()-definition`
* :ref:`make-class-constant-definition`
* :ref:`set-class-remote-definition-with-injection`
* :ref:`solve-trait-methods`
Expand Down Expand Up @@ -1508,7 +1505,7 @@ Total : 1510 analysis
* :ref:`no-null-for-native-php-functions`
* :ref:`calling-static-trait-method`
* :ref:`no-referenced-void`
* :ref:`jsonserialize()-mixed-return-type`
* :ref:`php-native-interfaces-and-return-type`
* :ref:`final-constant`
* :ref:`never-typehint-usage`
* :ref:`php-8.1-typehints`
Expand Down Expand Up @@ -1638,6 +1635,8 @@ Total : 1510 analysis
* :ref:`no-default-for-referenced-parameter`
* :ref:`clone-constant`
* :ref:`enum-case-values`
* :ref:`random-extension`
* :ref:`ip`

Specs
_____
Expand Down Expand Up @@ -2078,7 +2077,7 @@ Total : 457 analysis
* :ref:`missing-attribute-attribute`
* :ref:`no-null-for-native-php-functions`
* :ref:`no-referenced-void`
* :ref:`jsonserialize()-mixed-return-type`
* :ref:`php-native-interfaces-and-return-type`
* :ref:`new-functions-in-php-8.1`
* :ref:`never-keyword`
* :ref:`false-to-array-conversion`
Expand Down Expand Up @@ -2135,7 +2134,7 @@ Appinfo

A set of rules that describes with PHP features is used in the code.

Total : 389 analysis
Total : 387 analysis

* :ref:`array-index`
* :ref:`multidimensional-arrays`
Expand Down Expand Up @@ -2268,7 +2267,6 @@ Total : 389 analysis
* :ref:`nested-loops`
* :ref:`I?=-usage`
* :ref:`ext-pcntl`
* :ref:`ext-ming`
* :ref:`ext-redis`
* :ref:`ext-cyrus`
* :ref:`ext-sqlsrv`
Expand Down Expand Up @@ -2303,9 +2301,7 @@ Total : 389 analysis
* :ref:`no-direct-access`
* :ref:`ext-opcache`
* :ref:`ext-expect`
* :ref:`ext-recode`
* :ref:`ext-parsekit`
* :ref:`runkit7`
* :ref:`ext-gettext`
* :ref:`super-global-usage`
* :ref:`global-usage`
Expand Down Expand Up @@ -2526,6 +2522,7 @@ Total : 389 analysis
* :ref:`array-addition`
* :ref:`ice-framework`
* :ref:`extensions-exttaint`
* :ref:`ip`

Specs
_____
Expand Down Expand Up @@ -2570,7 +2567,7 @@ CE

This ruleset is the Community Edition list. It holds all the analysis that are in the community edition version of Exakat.

Total : 647 analysis
Total : 643 analysis

* :ref:`adding-zero`
* :ref:`array-index`
Expand Down Expand Up @@ -2729,7 +2726,6 @@ Total : 647 analysis
* :ref:`undefined-constants`
* :ref:`custom-constant-usage`
* :ref:`ext-pcntl`
* :ref:`ext-ming`
* :ref:`ext-redis`
* :ref:`is-an-extension-function`
* :ref:`is-an-extension-interface`
Expand Down Expand Up @@ -2789,9 +2785,7 @@ Total : 647 analysis
* :ref:`defined-properties`
* :ref:`undefined-properties`
* :ref:`has-magic-method`
* :ref:`ext-recode`
* :ref:`ext-parsekit`
* :ref:`runkit7`
* :ref:`ext-gettext`
* :ref:`strict-comparison-with-booleans`
* :ref:`lone-blocks`
Expand Down Expand Up @@ -3218,7 +3212,6 @@ Total : 647 analysis
* :ref:`php-80-named-parameter-variadic`
* :ref:`final-private-methods`
* :ref:`array\_map()-passes-by-value`
* :ref:`new-functions-in-php-8.2`

Specs
_____
Expand Down Expand Up @@ -3435,26 +3428,30 @@ Changed Behavior

Ruleset with all rules that identify changed behavior across PHP versions. This means that some syntax behave differently, depending on PHP version.

Total : 18 analysis
Total : 22 analysis

* :ref:`mime-types`
* :ref:`wrong-optional-parameter`
* :ref:`parent,-static-or-self-outside-class`
* :ref:`undefined-properties`
* :ref:`methodcall-on-new`
* :ref:`list-with-appends`
* :ref:`simple-global-variable`
* :ref:`foreach-don't-change-pointer`
* :ref:`usort-sorting-in-php-7.0`
* :ref:`list-with-keys`
* :ref:`no-string-with-append`
* :ref:`concat-and-addition`
* :ref:`implode()-arguments-order`
* :ref:`throw-was-an-expression`
* :ref:`negative-start-index-in-array`
* :ref:`restrict-global-usage`
* :ref:`inherited-static-variable`
* :ref:`never-keyword`
* :ref:`nested-attributes`
* :ref:`cant-overload-constants`
* :ref:`string-int-comparison`
* :ref:`php-8.1-resources-turned-into-objects`
* :ref:`no-private-abstract-method-in-trait`
* :ref:`clone-constant`

Specs
_____
Expand Down Expand Up @@ -3639,7 +3636,7 @@ CompatibilityPHP53

This ruleset centralizes all analysis for the migration from PHP 5.2 to 5.3.

Total : 88 analysis
Total : 87 analysis

* :ref:`non-static-methods-called-in-a-static`
* :ref:`ext-dba`
Expand All @@ -3655,7 +3652,6 @@ Total : 88 analysis
* :ref:`function-subscripting`
* :ref:`closure-may-use-$this`
* :ref:`switch-with-too-many-default`
* :ref:`ext-ming`
* :ref:`ellipsis-usage`
* :ref:`exponent-usage`
* :ref:`dereferencing-string-and-arrays`
Expand Down Expand Up @@ -4438,7 +4434,7 @@ Total : 20 analysis
* :ref:`no-null-for-native-php-functions`
* :ref:`calling-static-trait-method`
* :ref:`no-referenced-void`
* :ref:`jsonserialize()-mixed-return-type`
* :ref:`php-native-interfaces-and-return-type`
* :ref:`new-functions-in-php-8.1`
* :ref:`php-8.1-removed-functions`
* :ref:`never-keyword`
Expand Down Expand Up @@ -4572,7 +4568,7 @@ Total : 9 analysis
* :ref:`no-null-for-native-php-functions`
* :ref:`calling-static-trait-method`
* :ref:`no-referenced-void`
* :ref:`jsonserialize()-mixed-return-type`
* :ref:`php-native-interfaces-and-return-type`

Specs
_____
Expand Down Expand Up @@ -4714,7 +4710,7 @@ For example :



Total : 34 analysis
Total : 35 analysis

* :ref:`constants-names`
* :ref:`binary-glossary`
Expand Down Expand Up @@ -4750,6 +4746,7 @@ Total : 34 analysis
* :ref:`promoted-properties`
* :ref:`extends-stdclass`
* :ref:`incoming-date-formats`
* :ref:`ip`

Specs
_____
Expand All @@ -4770,7 +4767,7 @@ IsExt

This is automatically filled, based on the documentation's isExt attribute.

Total : 31 analysis
Total : 32 analysis

* :ref:`static-methods-called-from-object`
* :ref:`undefined-constants`
Expand All @@ -4780,6 +4777,7 @@ Total : 31 analysis
* :ref:`undefined-class-constants`
* :ref:`undefined-functions`
* :ref:`wrong-number-of-arguments`
* :ref:`unresolved-use`
* :ref:`access-protected-structures`
* :ref:`unusual-case-for-php-functions`
* :ref:`undefined-interfaces`
Expand Down Expand Up @@ -4821,7 +4819,7 @@ IsPHP

This is automatically filled, based on the documentation's isPHP attribute.

Total : 31 analysis
Total : 32 analysis

* :ref:`static-methods-called-from-object`
* :ref:`undefined-constants`
Expand All @@ -4831,6 +4829,7 @@ Total : 31 analysis
* :ref:`undefined-class-constants`
* :ref:`undefined-functions`
* :ref:`wrong-number-of-arguments`
* :ref:`unresolved-use`
* :ref:`access-protected-structures`
* :ref:`unusual-case-for-php-functions`
* :ref:`undefined-interfaces`
Expand Down Expand Up @@ -4961,7 +4960,7 @@ Total : 47 analysis
* :ref:`only-container-for-reference`
* :ref:`inherited-property-type-must-match`
* :ref:`duplicate-named-parameter`
* :ref:`jsonserialize()-mixed-return-type`
* :ref:`php-native-interfaces-and-return-type`
* :ref:`false-to-array-conversion`
* :ref:`deprecated-callable`
* :ref:`cant-overload-constants`
Expand Down Expand Up @@ -5001,7 +5000,7 @@ Total : 37 analysis
* :ref:`set-parent-definition`
* :ref:`make-class-method-definition`
* :ref:`create-default-values`
* :ref:`set-class\_alias-definition`
* :ref:`set-class\_alias()-definition`
* :ref:`make-class-constant-definition`
* :ref:`set-class-remote-definition-with-injection`
* :ref:`solve-trait-methods`
Expand Down Expand Up @@ -5472,9 +5471,9 @@ Surprising
PHP is full of exceptional situations where something doesn't work as expected, or as we thought would be expected. Then, exakat gets a rule for that, and it is listed here. Watch out, unusual beasts are hidden in this list : the most interesting is possibly the docs.
Total : 0 analysis
Total : 1 analysis
*
* :ref:`sequences-in-for`
Specs
_____
Expand Down

0 comments on commit 9aabfe4

Please sign in to comment.