Edited at

どこでもクラスが参照できるふしぎなクラスローダー

More than 3 years have passed since last update.

みなさん、オートローディングしてますか! 名前空間使ってますでしょうか!

便利でいろいろな箇所で使いたいのに長いクラス名をいちいち書いたりするのはめんどくさい… そんなことありますよね?!


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は意外に賢くない…