PHPackages                             czproject/phpdepend - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. czproject/phpdepend

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

czproject/phpdepend
===================

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

v2.1.0(1y ago)964.0k↓28.6%1[3 issues](https://github.com/czproject/phpdepend/issues)BSD-3-ClausePHPPHP 8.0 - 8.4CI passing

Since Mar 9Pushed 1y ago1 watchersCompare

[ Source](https://github.com/czproject/phpdepend)[ Packagist](https://packagist.org/packages/czproject/phpdepend)[ Fund](https://www.janpecha.cz/donate/)[ RSS](/packages/czproject-phpdepend/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (1)Versions (12)Used By (0)

PhpDepend
=========

[](#phpdepend)

[![Build Status](https://github.com/czproject/phpdepend/workflows/Build/badge.svg)](https://github.com/czproject/phpdepend/actions)[![Downloads this Month](https://camo.githubusercontent.com/9bdad3a51fa700cdbdbf718440d29d4f8d78131ce0251e177b7bb7e80f164ebf/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f637a70726f6a6563742f706870646570656e642e737667)](https://packagist.org/packages/czproject/phpdepend)[![Latest Stable Version](https://camo.githubusercontent.com/b470a603684c2d411b5c7a1fcd17c43d02f7d9751af6fd45aded175204bea6c8/68747470733a2f2f706f7365722e707567782e6f72672f637a70726f6a6563742f706870646570656e642f762f737461626c65)](https://github.com/czproject/phpdepend/releases)[![License](https://camo.githubusercontent.com/fa7d5fcf2c84b580327af52da95dd751703af65f079dc3c5a0081beac0789718/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4e65772532304253442d626c75652e737667)](https://github.com/czproject/phpdepend/blob/master/license.md)

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

[![Donate](https://camo.githubusercontent.com/101b981194f1dafbf9c42e19c3034fe2d724e75be972cef0f4477074997834db/68747470733a2f2f6275796d65636f666665652e696e746d2e6f72672f696d672f646f6e6174652d62616e6e65722e76312e737667)](https://www.janpecha.cz/donate/)

Installation
------------

[](#installation)

[Download a latest package](https://github.com/czproject/phpdepend/releases) or use [Composer](http://getcomposer.org/):

```
composer require czproject/phpdepend

```

PhpDepend requires PHP 8.0 or later and enabled [Tokenizer extension](http://www.php.net/manual/en/book.tokenizer.php) (enabled by default from PHP 4.3.0).

Usage
-----

[](#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
-------

[](#example)

```
