みなさん、オートローディングしてますか! 名前空間使ってますでしょうか!
便利でいろいろな箇所で使いたいのに長いクラス名をいちいち書いたりするのはめんどくさい… そんなことありますよね?!
fuga.php
<?php
namespace Hoge\Fuga;
use Deep\Nested\Library\Module\Awesome\Miracle as AwesomeClass;
$obj = new AwesomeClass;
$obj->foo();
解決策
BaguettePHP/AliasLoaderってライブラリ書きました。
インストールはちょうかんたん。
$ composer require zonuexe/aliasloader
実装も超かんたんだょ!
bootstrap.php
<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
\Teto\AliasLoader::add('Deep\Nested\Library\Module\Awesome\Miracle', 'AwesomeClass');
fuga.php
<?php
namespace Hoge\Fuga;
$obj = new AwesomeClass;
$obj->foo();
いぇい!
実用例
こんなふうに、よく利用するクラスを登録しておくとべんり。
alias.php
<?php
\Teto\AliasLoader::add('Respect\Validation', 'v');
\Teto\AliasLoader::add('Teto\Functools', 'f');
で、composer.json
に書いとく。
{
"autoload": {
"files": ["src/alias.php"]
}
}
べんり。
感想
オートローディングたのしい><
そして、PhpStormは意外に賢くない…