Skip to content

Latest commit

 

History

97 提交

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

仓库 files navigation

PhpDepend

Build Status Downloads this Month Latest Stable Version License

Extracts list of dependencies (classes, interfaces & traits) from PHP file or code snippet.

Donate

Installation

Download a latest package or use Composer:

composer require czproject/phpdepend

PhpDepend requires PHP 8.0 or later and enabled Tokenizer extension (enabled by default from PHP 4.3.0).

Usage

$phpdepend = new CzProject\PhpDepend\PhpDepend;

// file parsing
$phpdepend->parseFile('MyClass.php');

// code snippet parsing
$source = file_get_contents('MyClass.php');
$phpdepend->parse($source);

// getting result
$phpdepend->getClasses(); // returns list of defined classes, interfaces & traits
$phpdepend->getDependencies(); // returns list of required classes, interfaces & traits

Recognized dependencies in PHP code:

  • inherited classes (extends ParentClass)
  • implemented interfaces (implements InterfaceA, InterfaceB)
  • used traits (class MyClass { use Trait; })
  • classes of created instances (new Object())
  • static classes (StaticClass::staticMethod(), StaticClass::$staticProperty)

Ignored dependencies:

  • self:: - self means "this class" → useless (no dependency, class is defined in same file)
  • parent:: - parent class is specified in extends
  • static:: - static is dynamic-self → means "this class", parent or descendant (if exists)

Recognized defined classes (output of $phpdepend->getClasses()):

  • defined classes (class MyClass)
  • defined interfaces (interface MyInterface)
  • defined traits (trait MyTrait)

Example

<?php
$phpdepend = new CzProject\PhpDepend\PhpDepend;
$phpdepend->parse('
<?php
	class Greeting implements IGreeting
	{
		public function say($name)
		{
			if (!$name) {
				throw new InvalidArgumentException("Invalid name");
			}
			return "Hello $name";
		}
	}

	$greeting = new Greeting;
	$greeting->say("John");
');

var_dump($phpdepend->getClasses());
/* Output:
array (1) {
	'Greeting'
}
*/

var_dump($phpdepend->getDependencies());
/* Output:
array (3) {
	'IGreeting',
	'InvalidArgumentException',
	'Greeting',
}
*/

License: 新建 BSD License
Author: Jan Pecha, https://www.janpecha.cz/

关于

Extracts list of dependencies (classes, interfaces & traits) from PHP file or code snippet.

Topics

Resources

Stars

9 stars

关注者

1 watching

复刻s

发布

Sponsor this project

Used by

贡献者

Languages