00f100 / fcphp-autoload
Autoload providers and routes into composer vendor package
Installs: 231
Dependents: 4
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 0
Type:package
Requires
- php: 7.2.*
Requires (Dev)
- 00f100/phpdbug: *
- phpunit/phpunit: 6.*
README
Package to autoload providers and routes into another composer packages
How to install
Composer:
$ composer require 00f100/fcphp-autoload
or add in composer.json
{ "require": { "00f100/fcphp-autoload": "*" } }
How to use
Create my providers.php
<?php return [ \path\to\SomeClass::class, \path\to\package\Cool::class ];
Create my routes.php
<?php return [ 'path/to/route' => [ 'post' => 'SiteController@method' ] ];
Find content in directory
<?php use FcPhp\Autoload\Autoload; /** * Method to load path and find match's * * @param string $pathExpression Directory to find file(s) * @param array $fileNameMatch List of filename * @param array $extensionMatch List of enable extensions * @return void */ $autoload = Autoload::getInstance(); $autoload->path(string $pathExpression, array $fileNameMatch, array $extensionMatch); /* Example to find inside composer directory ============================================ Example directory: ============================================ vendor/ 00f100/ fcphp-di/ autoload/ providers.php prividers.txt fcphp-i18n/ fcphp-provider/ autoload/ routes.php doctrine/ doctrine/ instructor/ cake/ bin/ cake/ autoload/ providers.php */ $autoload->path('vendor/*/*/autoload', ['providers', 'routes'], ['php']); /* ============================================ Below example match this files: ============================================ vendor/00f100/fcphp-di/autoload/providers.php vendor/00f100/fcphp-provider/autoload/routes.php vendor/cake/cake/autoload/providers.php */
Get content of files
/* ============================================ Get the content using 'get' method ============================================ [ 'path/to/route' => [ 'post' => 'SiteController@method' ] ] $arrayProviders = $autoload->get('providers'); [ \path\to\SomeClass, \path\to\package\Cool ] $arrayRoutes = $autoload->get('routes'); */ /** * Method to return autoloaded files * * @param string $key Filename * @return array */ $autoload->get(string $fileName);
Triggers
Before Match
This clousure run before match run
$instance->beforeMatch(function(string $pathExpression, array $fileNameMatch, array $extensionMatch) { // your code here });
Before Match Again
This clousure run before match some dir again
$instance->beforeMatchAgain(function(array $paths, array $files, array $extensions, string $path, string $now) { // your code here });
Before Storage
This clousure run before storage file content
$instance->beforeStorage(function(string $file, string $filePath) { // your code here });