Exakat Changelog

Version 2.3.0

2021-11-** – Coming up, with community Edition.

Version 2.2.4

2021-10-21 – Coming up

Version 2.2.3

2021-10-06 – Wu

  • Architecture
    • Updated INI files for PHP 8.1
  • Data
    • Extended PHP directives lists
  • Report
    • New report Migration 8.1
  • Analysis
    • New analysis : PHP 8.1 removed directives
    • New analysis : PHP 8.1 removed constants
    • New analysis : Wrong named parameter for PHP native function
    • New analysis : Report duplicate named arguments
    • New analysis : htmlentities (and co) default 2nd argument
    • Updated analysis : Scalars are not arrays. Extemded with type support.
  • Tokenizer
    • Support for callable strlen(…)
    • Test for new syntax for octal 0o123

Version 2.2.2

2021-09-22 – Si

  • Architecture
    • Refactored documentation
  • Report
    • Added support for PHP 8.1 compatiblity
  • Analysis
    • New analysis : Restrict $GLOBALS usage
    • New analysis : No object as array’s index
    • New analysis : Overreaching classes (PHP feature)
    • New analysis : Report Enum usage
    • Updated analysis : Typehints/* got new Unit Tests
    • Updated analysis : Explode optimisation
  • Tokenizer
    • Reduced the number of DEFAULT creation for properties
    • Added support for new PHP 8.1 syntax (Enum )

Version 2.2.1

2020-11-20 – Chen

  • Architecture
    • Export : WIP of exporting PHP code from graph
    • New directives : rules_version_max, rules_version_min, ignore_rules and ignore_namespace
  • Report
    • Sarif : Fixed line number that may be null or less
    • Ambassador : Fixed visibility report
  • Analysis
    • New analysis : check for match as a keyword
    • New analysis : replace static variable by static properties
    • New analysis : warn about usage of get_object_vars()
    • New analysis : report global and static variables that are declared multiple times
    • Updated analysis : extended Used Classes to abstract classes
    • Updated analysis : wrong number of argument now supports $this()
    • Updated analysis : parse_str last argument doesn’t apply anymore in PHP 8
    • Updated analysis : useless argument now omits parameter with default value
    • Checked unit tests : 3797 / 3800 test pass (99% pass)
  • Tokenizer
    • Fixed race condition with phpdocs
    • Refactored static and global variables definitions (avoid double definitions)
    • Fixed detection of [] inside a list()
    • Fixed detection of alternative syntax for switch
    • Added use property to usenamespace too (for grouping)

Version 2.2.0

2020-10-15 – Mao

  • Architecture
    • Extended Export command to produce PHP scripts from the graph database
    • Added more typehints
    • Added new command ‘onefile’
    • Sped up database restart with id reset
    • Updated list of functions for several extensions. Started adding methods, class constants..
  • Report
    • Ambassador : updated popularities
    • Ambassador : added missing PHP 8.0 ruleset
  • Analysis
    • New analysis : report arguments and properties whose name clashes with the typehint
    • New analysis : report long preparation before throw command
    • New analysis : missing __isset() method
    • New analysis : suggest array_keys() for array_search in loops
    • New analysis : array_map() complains with values by reference
    • New analysis : report final private properties
    • New analysis : report misnamed constant/variable
    • New analysis : check for attribute configuration (PHP 8.0)
    • New analysis : suggest dropping variable in catch clause
    • New analysis : report resources that should not be tested with is_resource (PHP 8.0)
    • New analysis : check for named arguments and variadic
    • Updated analysis : wrong number of argument now supports $this()
    • Updated analysis : redefined private property uses OVERWRITE
    • Updated analysis : refactored UndefinedFunctions for speed
    • Updated analysis : array_map() complains with values by reference
    • Updated analysis : removed false positives on properties in strings
    • Updated analysis : unsupported types with operators skips cast values
    • Updated analysis : cancelled parameters are also for array_map/array_walk
    • Updated analysis : variable variable skips variables inside strings
    • Updated analysis : removed functions are not reported when in if/then with function_exists()
    • Updated analysis : wrong optional parameter fixed false positive with …
    • Updated analysis : extended list of removed directives, functions and constants
    • Removed analysis : RealVariables
    • Checked unit tests : 3761 / 3772 test pass (99% pass)
  • Tokenizer
    • Added Void to empty default/case
    • Bitoperation added to isRead
    • Fixed list[] in a Foreach
    • Fixed token T_OPEN_DOLLAR_CURLY_BRACKET

Version 2.1.9

2020-10-01 – Yin

  • Architecture
    • Removed old and unused commands
    • Modernized usage of docker as phpexec
    • New directive php_extensions to managed list of ext
  • Report
    • Ambassador : removed 3 gremlins from typehint stats, added scalar types
    • New Migration80 report, dedicated to PHP 8.0 migrations
    • New Stubs.ini report, dedicated to exakat extensions production
  • Analysis
    • New analysis : report arguments which are not nullable because of constants.
    • New analysis : could use stringable interface
    • New analysis : suggest explode()’s third argument when applicable
    • New analysis : suggest PHP 8.0 promoted properties
    • New analysis : report arrays with negative index, and auto-indexing
    • New analysis : report unsupported types with operators
    • New analysis : report usage of track_errors directive (PHP 8.0)
    • New analysis : report useless types on __get/__set
    • New analysis : count the number of use expressions in a file
    • New analysis : Avoid modifying typed arguments
    • New analysis : Report Assumptions in the code
    • New analysis : array_fill() usage with objects
    • New analysis : mismatch between parameter name and type
    • Updated analysis : magic methods definitions also find usage for __invoke()
    • Updated analysis : noscream operator usage may have exceptions
    • Updated analysis : identical methods and identical closures
    • Updated data : list of exceptions and their emitters
  • Tokenizer
    • Upgraded detection of extensions’ structures, beyond functions

Version 2.1.8

2020-09-18 – Chou

  • Architecture
    • added ‘–‘ options, and kept the ‘-‘ options, for migration purposes. (–format and -format are both available)
    • Added support for PHP 8 attributes in dump.sqlite
    • Added ‘precision’ to rule docs.
    • Moved all but one data collection from Dump -collect to Dump/ analysis.
  • Report
    • New report : SARIF
    • Typehint suggestion report : Tick classes when they are fully covered
    • Weekly report : fix donuts display.
    • Stubsjson : Added support for PHP attributes
    • Stubs : Added support for PHP attributes
  • Analysis
    • New ruleset : CI-Checks
    • New analysis : ‘Multiple declare(strict_types = 1)’
    • New analysis : ‘No more (unset) in PHP 8’
    • New analysis : Cancel methods in parent : when methods should not have been abstracted in parent class.
    • New analysis : ‘$php_errormsg is removed in PHP 8’
    • New analysis : ‘Mismatch Parameter Name’ checks parameter names between inherited methods for consistency
    • Upgraded analysis : ‘Useless Arguments’ is accelerated
    • Upgraded analysis : ‘Don’t use Void’ weeded out false positives
    • Upgraded analysis : ‘Wrong type for native calls’ weeded out false positives
    • Upgraded analysis : ‘Non static methods called statically’ was refactored for PHP 8.0 support
    • Upgraded analysis : ‘PHP Keywords’ includes ‘match’
    • Upgraded analysis : ‘Useless instruction’ reports ‘$a ?? null’ as useless.
    • Upgraded analysis : ‘Uncaught exceptions’ is extended to local variables
    • Upgraded analysis : ‘Foreach favorites’ also covers the keys
    • Upgraded analysis : ‘Should Preprocess’ skips expressions with constants
    • Upgraded analysis : ‘Compare Hashes’ has more functions covered
    • Removed analysis : ‘Normal Properties’ : no need anymore.
  • Tokenizer
    • Moved isPhp attribute to Task/Load plugin
    • Created isExt attribute to Task/Load plugin

Version 2.1.7

2020-09-07 – zi

  • Architecture
    • Refactored loading class, to keep query load at optimal size for Gremlin
    • GC during load to free memory
    • More typehints
    • Move several collections to Dump/ ruleset
  • Report
    • Upgraded Typesuggestion report with report on closures and arrow functions
    • Added Arrowfunctions in inventories
    • Added collection of arguments and details for closures and arrowfunctions
  • Analysis
    • New analysis : Could Be In Parent : suggest methods that should be defined in a parent
    • New analysis : Don’t pollute namespace
    • New analysis : report insufficient return typehints
    • Upgraded analysis : ‘Method signature must be compatible’ now PHP 8.0 compatible
    • Upgraded analysis : ‘Wrong type with native function’ fixes false positives
    • Upgraded analysis : ‘Same condition’ added coverage for || conditions
    • Upgraded analysis : ‘Missing returntype’ extended to class typehints
    • Upgraded analysis : ‘Should Use This’ also covers special functions like get_class_called()
    • Upgraded analysis : ‘No concat in loop’ skips nested loops
    • Upgraded analysis : ‘Always false’ covers typehint usage
    • Upgraded analysis : ‘NoChoice’ doesn’t report large expressions
    • Upgraded analysis : ‘Dont mix PlusPlus’ skip () and =
    • Upgraded analysis : ‘Fallthrough’ don’t report final cases without break
    • Checked unit tests : 3663 / 3630 test pass (99% pass)
  • Tokenizer
    • Removed ‘root’ property
    • Upgraded to new Attributes #[] in detection and normalisation
    • Fixed constant detection within instanceof
    • Created RETURN and RETURNED for Arrowfunctions (there is no return otherwise)
    • Parent method also calls children methods when those are not defined there
    • Support for multiple attributes in one syntax

Version 2.1.6

2020-08-28 – Night Patrol Deity

  • Architecture
    • More typehints coverage
    • Various speed-up
    • Lighter logging with gremlin
    • Fixed installation path
  • Report
    • Upgraded Typesuggestion report
    • Upgraded Stubs and Stubsjson
  • Analysis
    • New analysis : report PHP 8.0 unknown parameters
    • New analysis : overwritten methods with different argument counts
    • New analysis : Warn of iconv and TRANSLIT for portability
    • New analysis : Warn of glob and {} for portability
    • Upgraded analysis : ‘Useless check’ covers new situations.
    • Upgraded analysis : ‘Abstract away’ now covers new calls.
    • Upgraded analysis : ‘Must return Typehint’ skips Void.
    • Upgraded analysis : ‘Missing new’ with less false positives
    • Checked unit tests : 3559 / 3630 test pass (98% pass)
  • Tokenizer
    • Support for Virtualmethod and imports from traits
    • Refactored Usenamespace atom
    • Fixed calculations of fullnspath for static::class
    • Fixed detection of null/true/false in new()
    • Added support for T_BAD_CHARACTER

Version 2.1.5

2020-08-04 – Day Patrol Deity

  • Architecture
    • Fixed comment size estimation by 1 for T_COMMENT
    • Added more typehints to code
  • Report
    • Typehint suggestions : added ticks to fully typed methods
    • Emissary : Extract more information from dump.sqlite, instead of datastore.sqlite
    • Ambassador : Added a list of parameters, defined in the application
    • Ambassador : Added a list of fossilised methods
    • Stubs : Added check around PHP native functions and CIT
    • StubsJson : Added property for PHP native structures
  • Analysis
    • New analysis : Report insufficient initialisation for array_merge() collector variable
    • New analysis : Report useless triple equals
    • New analysis : Don’t compare typed boolean return values
    • New analysis : Report wrong type used with PHP functions
    • New analysis : Suggest abstracting away some PHP native functions
    • New analysis : Report try block that are too large
    • New analysis : Report variables potentially undefined in catch clause
    • New analysis : Report swapped arguments in methods overwriting
    • Upgraded analysis : InvalidPackFormat speed up
    • Upgraded analysis : Added parameter to Security/ShouldUsePreparedStatement to choose the preparing method
    • Upgraded analysis : Added parameter to Security/HardcodedPasswords to choose the name of properties/index
    • Upgraded analysis : PHP 8.0 new scalar typehint, stringable interface
  • Tokenizer
    • Added support for named parameters (PHP 8.0)
    • Trimmed some properties from atoms
    • Removed non-existent atom mentions
    • Added support for Attributes (WIP)
    • Added support for ?->
    • Added support for new T_*_NAME tokens

Version 2.1.4

2020-07-23 – Marshal of Heavenly Blessing

  • Architecture
    • Added time of last commit in audit results
    • Added more typehints
    • Upgraded PHP native method description with typehints (WIP)
  • Report
    • Typehint suggestion report
    • New toplogies : call order,
    • Ambassador : new statistics for typehint usage
  • Analysis
    • New analysis : Report double assignation of objects
    • New analysis : Typehints/CouldBe*, which makes suggestions for typehints
    • New analysis : Checks for argument type when typehint is present in custom methods
    • Upgraded analysis : Too Many Finds may be configured for threshold and prefix/suffix
    • Upgraded analysis : Typehints stats were extended to properties and multiple typehints
    • Upgraded analysis : Global outside Loop is extended to static variable too
    • Upgraded analysis : ErrorMessages also detect local variable contents
    • Upgraded analysis : Speed up for NullBoolean, Interfaces IsNotImplemented, InvalidPackFormat, arrayIndex, noWeakCrypto
    • Checked unit tests : 3532 / 3496 test pass (99% pass)
  • Tokenizer
    • Removed ‘aliased’ property in atoms
    • Fixed spotting of PHP native constants, when in Define() structure
    • Fixed loading of false values
    • Added support for the trailing comma in closure’s use expression
    • more handling of phpdocs
    • Null is now reused when it is a default value, as a typehint.
    • Logical was split in two : Logical and Bitoperation
    • Added support for match() {} expression
    • Fixed boolean calculations during Load
    • Removed auto-referencing in DEFAULT calculations

Version 2.1.3

2020-07-02 – Marshal of the Heavenly Canopy

  • Architecture
    • Removed all usage of datastore in Reports, and only rely on dump.
    • ignore_rules is now case insensitive
    • Moved some of the loading to a separate gremlin call to reduce the size of node load.
    • Fixed the branch option with Git calls.
    • Storing trait’s use expresion’s options.
  • Report
    • Ambassador ; New inventory : PHP protocol used (php, phar, glob://…)
    • Stubs and StubsJson, have been tested extensively
  • Analysis
    • New analysis : report double assignations of the same object ($a = $b = new C)
    • New analysis : report cyclic references
    • Upgraded analysis : Used Constants edge situations
    • Upgraded analysis : No real comparison : extended analysis to constants
    • Upgraded analysis : extended detection of dynamic method calls to call_user_func*
    • Upgraded analysis : paths are detected with new functions
    • Checked unit tests : 3490 / 3520 test pass (99% pass)
  • Tokenizer
    • More phpdoc support (from code to report)
    • Added isPHP to absolute FQN notations

Version 2.1.2

2020-06-25 – Mountain Deity

  • Architecture
    • Removed files task from initproject.
    • Added ignore_rule directive, to ignore specific rules while running a specific report
    • More documentation (in particular, modifications section)
    • Exakat avoids to return twice the same results (file and line)
    • Sped up some analysis, and added a time limit per analysis
    • Removed double linking for static variables
  • Report
    • New reports ; Stubs and StubsJson, which produce the stubs of the audited code (PHP and JSON format) (WIP)
    • New report ; Typehint suggestion (WIP)
    • Ambassador ; offers the configuration for all the rules that spotted issues in the current audit, for reuse in other codes
    • Collect the number of property per class
  • Analysis
    • New analysis : Report methods that are too much indented on average
    • New analysis : Report possible confusion between a class and an alias
    • New analysis : Report variables that are static and global at the same time
    • New analysis : Report statement with long blocks
    • New analysis : Report phpdoc’s deprecated methods and function calls
    • Upgraded analysis : Dereferencing levels now include () and =
    • Upgraded analysis : Unused Methods now skips classes that calls themselves dynamically
    • Upgraded analysis : No Need Get_class() was refactored
    • Upgraded analysis : Avoid Optional Properties was refactored
    • Upgraded analysis : Variable inconsistent Usage was extended with more reach
    • Upgraded analysis : Indirect Injections was upgraded with better reach with variables
    • Upgraded analysis : Direct Injections was upgraded with include
    • Upgraded analysis : PHP 8.0 new scalar typehint, stringable interface
    • Upgraded analysis : Mismatch Type and default now avoids undefined constants
    • Upgraded analysis : Wrong Optional Parameter is upgraded for PHP 8.0
    • Upgraded analysis : Indentation level was refactored
    • Checked unit tests : 3480 / 3510 test pass (99% pass)
  • Tokenizer
    • Upgraded detection of PHP native constants, when they are in absolute notation
    • Dump task stores use expressions’ options, plus minor fixes
    • Added support for Attributes (PHP 8.0)
    • Added support for Union types (PHP 8.0)
    • AtomIs step (WITH_VARIABLE) was extended with local variables
    • DEFAULT doesn’t point anymore on auto-updated values
    • Extended support for phpdoc in the code
    • Added support for promoted properties (PHP 8.0)

Version 2.1.1

2020-06-01 – Earth Deity

  • Architecture
    • Using timeLimit() to prevent Gremlin from running too deep in the rabbit hole
    • Added Neo4j Graphson V3 Graph driver
    • Moved ‘Dump’ rules to a specific Ruleset for easier administration
    • Propagated the upgrade to PHP 8.0 union types to three more rules
    • Fixed access to the list of ignored files
    • Added support for explicit stub files
    • Fixed multiple calls to Dump (better reentrant)
  • Report
    • New report : Meters, which holds measures for the audited code.
    • Ambassador : inventory of OpenSSL ciphers
  • Analysis
    • New analysis : Report unused traits
    • New analysis : Report chmod 777 system calls
    • New analysis : Check for keylength when generated by PHP
    • New analysis : Report methods with prefix/suffix and expected typehint
    • New analysis : Mark classes when they call dynamically their own methods
    • New analysis : Check for constants hidden in variable names ${X} != $X;
    • New analysis : Throw will be an expression in PHP 8.0
    • Upgraded analysis : Dangling operator now checks for loops too
    • Upgraded analysis : ‘Variables used once’ now skips variable definitions
    • Upgraded analysis : ‘Access Private’ takes into account dynamic classes
    • Upgraded analysis : ‘Could Centralize’ now uses a custom threshold. Default is 8 usage of an expression to centralize.
    • Upgraded analysis : ‘Return true/false’ checks that they are alone in the blocks
    • Upgraded analysis : ‘Unreachable code’ checks on constants values before reporting the next expression
    • Upgraded analysis : ‘Magic methods’ are case insensitive
    • Upgraded analysis : ‘No Hardcoded passwords’ has new functions that require a password
    • Upgraded analysis : ‘Unused methods’ are omitted for dynamically called methods and overwritten methods
    • Upgraded analysis : Insufficient Property Typehint also works for untyped properties
    • Upgraded analysis : PHP 8.0 new scalar typehint, stringable interface
    • Checked unit tests : 3383 / 3444 test pass (98% pass)
  • Tokenizer
    • Arguments with null as default values, automatically are nullable
    • Intval is also an integer for logical operations
    • Default Values now omits recursives assignations
    • Fixed fullnspath for PHP short tags
    • Added link between new command and constructor of anonymous classes.

Version 2.1.0

2020-05-13 – City God

  • Architecture
    • results stored in HashResults are now testable
    • Moved all query methods to Query/DSL namespace, from Analyzer class
  • Report
    • New report : ClassReview, with focus on classes structures
    • New report : Typechecks, with focus on type hint usage
    • Ambassador : Added typehint stats section
    • Ambassador : fixed display of classes name in classes tree
    • Ambassador : some missing sections have been rehabilitated
  • Analysis
    • New analysis : Trailing comma in signature (PHP 8.0)
    • New analysis : Hidden nullable types
    • New analysis : Not implemented abstract methods
    • New analysis : Report confusion between variables and arguments with arrow functions
    • Upgraded analysis : No literal for reference was extended
    • Upgraded analysis : Add zero is extended to constants
    • Upgraded analysis : This is for classes is now valid with arrow functions
    • Upgraded analysis : Useless arguments takes also into account constants
    • Upgraded analysis : Wrong Type With Call supports variadic arguments
    • Upgraded analysis : Extension constants now support fully qualified names
    • Upgraded analysis : Bad Typehint relay is compatible with union types
    • Upgraded analysis : Multiple Identical Cases now handles constants too
    • Checked unit tests : 3437 / 3477 test pass (99% pass)
  • Tokenizer
    • Restored ‘List’ atom
    • Interface methods are now ‘abstract’ by default
    • Added ‘array’ typehint for variadic arguments
    • Distinguish between argument and local variable in fn functions
    • Removed nullable property
    • propagate calls now propagates closures and arrow functions
    • Added support for union types (PHP 8.0)
    • Check all error messages from php, not just the first ones

Version 2.0.9

2020-04-30 – Jialan

  • Architecture
    • Added option in TU for analysis that won’t fill the result table.
    • Reduced the number of duplicate links in the graph
    • Upgraded tokens for PHP 8.0.
  • Analysis
    • New analysis : Don’t collect void
    • New analysis : Wrongly inited properties
    • New analysis : Not inited properties
    • Upgraded analysis : PHP 8.0 removed functions
    • Upgraded analysis : Useless instructions also include global/static variables
    • Upgraded analysis : Bad Relay Function now works with return types and property types
    • Upgraded analysis : ‘Scalar or object properties’ are upgraded with static calls
    • Removed analysis : Classes and Arrays IsRead and IsModified. Use properties now.
    • Checked unit tests : 3347 / 3420 test pass (97% pass)
  • Tokenizer
    • Fixed edge case for xor, with intval
    • Refactored multiple calculation for cast values
    • Added support for links between constants and use expressions
    • Linked classes with calls, when using use expression

Version 2.0.8

2020-04-20 – Ao Run

  • Architecture
    • Added new information in dump.sqlite, to make report autonomous
  • Analysis
    • Upgraded analysis : Paths are also recognized with constants, and more functions
    • Upgraded analysis : Should Use single Quotes
    • Checked unit tests : 3328 / 3398 test pass (97% pass)
  • Tokenizer
    • Fixed detection of PHP constants

Version 2.0.7

2020-04-14 – Ao Shun

  • Architecture
    • Adopted strict_types
    • Removed ctype1 attribute
    • Moved linting into separate processes
    • Refactored analysis to export to dump via SQL
    • Added ‘None’ ruleset to Dump task
  • Report
    • Ambassador : Added Constant’s order report
    • None : Added support for No report
  • Analysis
    • Upgraded analysis : Undefined class constants
    • Upgraded analysis : Undefined global constants
    • Upgraded analysis : Undefined property
    • Checked unit tests : 3347 / 3420 test pass (97% pass)
  • Tokenizer
    • Support PHP 8.0’s tokens
    • Added support for multiple typehint in the engine
    • Fixed edge case for boolean type casting

Version 2.0.6

2020-03-04 – Ao Qin

  • Architecture
    • Refactored analysis types for first UT
    • Moving to PHP 7.4 by default
  • Report
    • Rector : added more coverage
    • All : better display of typed properties
  • Analysis
    • New analysis : Semantic names of arguments
    • New analysis : !$a == $b
    • New prototype : possibles interfaces
    • Upgraded analysis : Overwritten literals now skips .=
    • Upgraded analysis : Scalar or object handles return type
    • Checked unit tests : 3322 / 3420 test pass (97% pass)

Version 2.0.5

2019-11-25 – Ao Guang

  • Architecture
    • Fixed access to severity and timetofix from compiled extension
  • Report
    • Ambassador : Fixed links to documentation
  • Analysis
    • Upgraded analysis : Mismatched Type and Default now omit undefined constants
    • Checked unit tests : 3366 / 3402 test pass (99% pass)

Version 2.0.4

2019-11-18 – Army Defeating Star of Heaven’s Gate

  • Architecture
    • Reducing Analyzer’s class method count
    • Moving more collections to Dump/ and Complete/
  • Report
    • Rector : added more coverage
    • Ambassador : Skiped analysis are now reported, not with -1
    • Ambassador : Foreach favorites’s graph is displayed
    • Ambassador : Visibility suggestion has full method names
  • Analysis
    • Upgraded analysis : Don’t Mix ++ now skips $a[$b++]
    • Upgraded analysis : Type hint stats skips some return values
    • Checked unit tests : 3365 / 3401 test pass (99% pass)

Version 2.0.3

2019-11-11 – Military Star of the North Pole

  • Architecture
    • Added check on xdebug presence (nesting limit)
    • Moving more collections to Dump/
  • Analysis
    • New analysis : Nullable typehint requires a test on NULL
    • New analysis : Typehint that requires too much
    • Upgraded analysis : Printf check on arguments works with ‘.’
    • Upgraded analysis : No magic for arrays skips __get()
    • Upgraded analysis : Const recommended, but not when methods are used
    • Upgraded analysis : Written only variables handles compact()
    • Upgraded analysis : Callbacks need returns, but not for spl_autoload_register()
    • Upgraded analysis : Extended analysis to Concatenation an Heredoc for Email
    • Upgraded analysis : Disconnected classes handles case sensitivity
    • Checked unit tests : 3371 / 3397 test pass (99% pass)

Version 2.0.2

2019-11-04 – Danyuan Star of Honesty and Chasity

  • Architecture
    • Adding more typehint
    • Created new class to build Dot files
    • Cleaned double examples
    • Dump handles multiple definitions for constants, class, trait, functions.
  • Report
    • Added new Topology report
    • Added new Type hint topology sort
    • Stubs : added class constant visibility
  • Analysis
    • New analysis : Report argument whose name clashes with typehint
    • New analysis : Report properties that are insufficiently typed
    • Moved ‘Inclusions’ to Dump/
    • Added steps to find original and relayed arguments
  • Tokenizer
    • Fixed paralellisation bug in Load

Version 2.0.1

2019-10-28 – Military Star of the North Pole

  • Architecture
    • Added more return type
    • Centralized reading for ini or json
  • Report
    • Ambassador: fixed Foreach favorites
    • Ambassador: added sort to number of parameter list
    • Checked unit tests : 3345 / 3377 test pass (99% pass)
  • Analysis
    • Upgraded xmlwriter to json

Version 2.0.0

2019-10-21 – Civil Star of Mystery and Darkness

  • Architecture
    • Manual file/line fixes
    • More simplifcations in load step
  • Report
    • Ambassador : fixed performance display
    • Ambassador : report list of shell commands
    • Typehint4all : first report
    • Perfile : fixed sorting
  • Analysis
    • New analysis : Report possible typehint for bool, int, string, array. WIP
    • Upgraded analysis : common alternatives are extended to switch and elsif
    • Upgraded analysis : xmlreader description includes class constants, properties and methods.
    • Upgraded analysis : callback needs return, is extended to php native functions
    • Checked unit tests : 3345 / 3377 test pass (99% pass)

Previous changelog are here.

One thought on “Exakat Changelog

  1. Pingback: Exakat 1.8.3 Review - Exakat

Comments are closed.