localheinz/classy

This package is abandoned and no longer maintained. The author suggests using the ergebnis/classy package instead.

Provides a way to collect classy constructs from source or a directory.

0.5.0 2019-12-05 22:45 UTC

README

Continuous Integration codecov Latest Stable Version Total Downloads

Provides a finder for classy elements.

Installation

Run

$ composer require ergebnis/classy

Usage

Collect classy constructs from source code

Use Constructs::fromSource() to collect classy constructs in source code:

<?php

use Ergebnis\Classy\Construct;
use Ergebnis\Classy\Constructs;

$source = <<<'PHP'
<?php

namespace Example;

class Foo {}

interface Bar {}

trait Baz {}
PHP;

/** @var Construct[] $constructs */
$constructs = Constructs::fromSource($source);

$names = array_map(static function (Construct $construct): string {
    return $construct->name();
}, $constructs);

var_dump($names); // ['Example\Bar', 'Example\Baz', 'Example\Foo']

Collect classy constructs from a directory

Use Constructs::fromDirectory() to collect classy constructs in a directory:

<?php

use Ergebnis\Classy\Construct;
use Ergebnis\Classy\Constructs;

/** @var Construct[] $constructs */
$constructs = Constructs::fromDirectory(__DIR__ . '/example');

$names = array_map(static function (Construct $construct): string {
    return $construct->name();
}, $constructs);

var_dump($names); // ['Example\Bar', 'Example\Bar\Baz', 'Example\Foo\Bar\Baz']

Changelog

Please have a look at CHANGELOG.md.

Contributing

Please have a look at CONTRIBUTING.md.

Code of Conduct

Please have a look at CODE_OF_CONDUCT.md.

License

This package is licensed using the MIT License.

Credits

The algorithm for finding classes in PHP files in Constructs has been adopted from Zend\File\ClassFileLocator (originally licensed under BSD-3-Clause).