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

  • 11
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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

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

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