2018-07-28 21:42:35 +02:00
|
|
|
ClassFinder
|
|
|
|
===========
|
|
|
|
|
|
|
|
A lightweight utility to identify classes in a given namespace. This package is an improved implementation of an
|
|
|
|
[answer on Stack Overflow](https://stackoverflow.com/a/40229665/3000068) that provides additional features with less
|
|
|
|
configuration required.
|
|
|
|
|
|
|
|
Requirements
|
|
|
|
------------
|
|
|
|
|
|
|
|
* Application is using Composer.
|
|
|
|
* Classes are compliant with PSR-4.
|
|
|
|
* PHP >= 5.3.0
|
|
|
|
|
2018-08-05 02:18:02 +02:00
|
|
|
Known Limitations
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
* ClassFinder cannot find 3rd party classes in the vendor directory.
|
|
|
|
* ClassFinder can only identify classes autoloaded with PSR-4. PSR-0, classmaps, and files are not supported.
|
|
|
|
|
|
|
|
These limitations may eventually be fixed.
|
|
|
|
|
2018-07-28 21:42:35 +02:00
|
|
|
Installing
|
|
|
|
----------
|
|
|
|
|
|
|
|
Installing is done by requiring it with Composer.
|
|
|
|
|
|
|
|
```
|
|
|
|
$ composer require haydenpierce/class-finder
|
|
|
|
```
|
|
|
|
|
|
|
|
No other installation methods are currently supported.
|
|
|
|
|
|
|
|
Example
|
|
|
|
-------
|
|
|
|
|
|
|
|
```
|
|
|
|
<?php
|
|
|
|
|
|
|
|
require_once __DIR__ . '/vendor/autoload.php';
|
|
|
|
|
|
|
|
$classes = ClassFinder::getClassesInNamespace('TestApp1\Foo');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* array(
|
|
|
|
* 'TestApp1\Foo\Bar',
|
|
|
|
* 'TestApp1\Foo\Baz',
|
|
|
|
* 'TestApp1\Foo\Foo'
|
|
|
|
* )
|
|
|
|
*/
|
|
|
|
var_dump($classes);
|
|
|
|
```
|
2018-08-05 02:39:28 +02:00
|
|
|
|
|
|
|
Documentation
|
|
|
|
-------------
|
|
|
|
|
|
|
|
**Exceptions**:
|
|
|
|
|
|
|
|
* [Unknown namespace - (Unregistered)](docs/exceptions/unregisteredRoot.md)
|
2018-08-05 02:52:29 +02:00
|
|
|
* [Unknown namespace - (Registered)](docs/exceptions/unknownSubNamespace.md)
|
2018-08-05 03:06:24 +02:00
|
|
|
* [Missing composer.json](docs/exceptions/missingComposerConfig.md)
|
2018-08-05 03:22:43 +02:00
|
|
|
|
|
|
|
**Internals**
|
|
|
|
|
|
|
|
* [How Testing Works](docs/testing.md)
|