packagek-kinzal/deriver

Derive PHP values, state and dependencies without executing application code

External dependencies nikic/php-parser ^5.9, symfony/console ^6.4, symfony/yaml ^6.4

Namespaces§

Deriver 2 classes
Deriver\Command 3 classes
Deriver\Configuration 3 classes 1 enum
Deriver\Deriver 9 classes 1 enum
Deriver\Deriver\Candidate 6 classes 1 enum
Deriver\Deriver\Evaluator 9 classes 2 enums
Deriver\Deriver\Evaluator\Builtin 11 classes
Deriver\Deriver\Evaluator\Call 2 interfaces 12 classes 1 enum
Deriver\Deriver\Evaluator\Call\Plan 10 classes 2 enums
Deriver\Deriver\Evaluator\Call\Plan\Location 1 class 1 enum
Deriver\Deriver\Evaluator\Call\Provider 3 interfaces 3 classes
Deriver\Deriver\Evaluator\Call\State 1 class 2 enums
Deriver\Deriver\Evaluator\Declaration 1 interface 5 classes
Deriver\Deriver\Evaluator\Domain 1 interface 4 classes
Deriver\Deriver\Evaluator\Enumeration 3 classes
Deriver\Deriver\Evaluator\Enumeration\Finite 2 classes
Deriver\Deriver\Evaluator\Evidence 5 classes 1 enum
Deriver\Deriver\Evaluator\Execution 10 classes
Deriver\Deriver\Evaluator\Execution\Call 14 classes
Deriver\Deriver\Evaluator\Execution\Call\Closure 2 classes
Deriver\Deriver\Evaluator\Execution\Call\Contract 4 classes
Deriver\Deriver\Evaluator\Execution\Call\Creation 1 class
Deriver\Deriver\Evaluator\Execution\Call\Member 2 classes
Deriver\Deriver\Evaluator\Execution\Call\Native 3 classes
Deriver\Deriver\Evaluator\Execution\Call\Preparation 9 classes
Deriver\Deriver\Evaluator\Execution\Completion 5 classes 2 enums
Deriver\Deriver\Evaluator\Execution\Completion\Quality 5 enums
Deriver\Deriver\Evaluator\Execution\Constant 2 classes
Deriver\Deriver\Evaluator\Execution\Control 12 classes 1 enum
Deriver\Deriver\Evaluator\Execution\Demand 5 classes 2 enums
Deriver\Deriver\Evaluator\Execution\Memory 6 classes
Deriver\Deriver\Evaluator\Execution\Memory\Slots 2 classes
Deriver\Deriver\Evaluator\Execution\Offset 9 classes
Deriver\Deriver\Evaluator\Execution\Operation 6 classes
Deriver\Deriver\Evaluator\Execution\Summary 4 classes
Deriver\Deriver\Evaluator\Execution\Trace 2 classes 1 enum
Deriver\Deriver\Evaluator\Execution\Transfer 15 classes
Deriver\Deriver\Evaluator\Expression 9 classes
Deriver\Deriver\Evaluator\Index 3 classes
Deriver\Deriver\Evaluator\Intrinsic 1 interface 2 classes
Deriver\Deriver\Evaluator\Invocation 6 classes
Deriver\Deriver\Evaluator\Invocation\Path 4 classes
Deriver\Deriver\Evaluator\Language 6 classes
Deriver\Deriver\Evaluator\Memory 11 classes
Deriver\Deriver\Evaluator\Micro 1 interface 6 classes
Deriver\Deriver\Evaluator\Predicate 4 classes
Deriver\Deriver\Evaluator\Recurrence 6 classes
Deriver\Deriver\Evaluator\Request 1 interface 9 classes 1 enum
Deriver\Deriver\Evaluator\Request\Observation 1 class
Deriver\Deriver\Evaluator\Scalar 10 classes
Deriver\Deriver\Evaluator\Scope 3 classes
Deriver\Deriver\Evaluator\Search 3 classes
Deriver\Deriver\Execution 6 classes 1 enum
Deriver\Deriver\Identity 2 classes
Deriver\Deriver\Lowerer 11 classes
Deriver\Deriver\Lowerer\Control 8 classes 1 enum
Deriver\Deriver\Lowerer\Declaration 11 classes
Deriver\Deriver\Lowerer\Declaration\Metadata 3 classes 1 enum
Deriver\Deriver\Lowerer\Declaration\Traits 4 classes
Deriver\Deriver\Lowerer\Graph 1 interface 11 classes 3 enums
Deriver\Deriver\Lowerer\Hierarchy 3 classes
Deriver\Deriver\Parser 3 classes
Deriver\Deriver\Parser\Node 1 class
Deriver\Deriver\Providers 4 interfaces 1 class
Deriver\Deriver\Publication 3 classes
Deriver\Deriver\Resolver 5 classes
Deriver\Deriver\Selection 5 classes
Deriver\Deriver\Sources 7 classes
Deriver\Exception 8 classes
Deriver\Finder 2 classes
Deriver\Reporter 1 interface 3 classes

Documents 10§

DeriverREADME.md
Harbor Operationsbench/target/cli/README.md
Harbor Laravelbench/target/laravel/README.md
Harbor Symfonybench/target/symfony/README.md
Harbor Native Webbench/target/web/README.md
Command Linedocs/cli.md
Configurationdocs/configuration.md
Configurable evaluatorsdocs/evaluators.md
Queriesdocs/queries.md
Reportsdocs/reports.md

README§

Deriver

Packagist Downloads PHP Version License: MIT Docs Ask DeepWiki

Deriver finds candidate values of PHP expressions without executing application code. Results retain unresolved inputs and the evidence behind each candidate.

Candidates describe value alternatives without proving that their control-flow conditions hold. For example, return false ? 1 : 2 yields both 1 and 2. Conditions and loop counts are not evaluated merely to select candidates. Applications can supply evaluators or evaluate and filter the returned candidates themselves. See candidate dependencies.

Requirements

  • PHP 8.1+

Getting Started

$ composer require --dev k-kinzal/deriver
$ vendor/bin/deliver --help
Description:
  Derive candidate values from PHP source without executing it.

Usage:
  deliver [options] [--] <query>

Arguments:
  query                          Selector, for example App\answer#return.

Options:
  -c, --config=CONFIG            Load a YAML configuration file.
      --path=PATH                Search root; repeat for multiple directories. Defaults to the current directory. (multiple values allowed)
      --include=INCLUDE          Root-relative include wildcard; repeat to combine patterns. Defaults to **/*.php. (multiple values allowed)
      --exclude=EXCLUDE          Root-relative exclude wildcard; exclusions win. (multiple values allowed)
      --php-version=PHP-VERSION  Target PHP major.minor version; defaults to the library setting.
      --format=FORMAT            Report format: text or json. Defaults to text.
  -h, --help                     Display help for the given command. When no command is given display help for the deliver command
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi|--no-ansi           Force (or disable --no-ansi) ANSI output
  -n, --no-interaction           Do not ask any interactive question
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

See the command line, configuration, queries, and reports.

License

MIT License. See LICENSE for details.