刹那(せつな)の瞬き

Willkömmen! Ich heiße Setsuna. Haben Sie etwas Zeit für mich?

symfony2.1のautoloaderって

Symfony2の勉強だてら、サンプルを動かしてみることにしました。
サンプルはsymfony2.0で作られています。でも、私の環境はsymfony-2.1.2.zip。

最初は順調だったのですが、クラスのnamespaceを登録するところで困りました。
symfony2.0と2.1でapp/autoload.phpの内容が違いすぎ。
※この時点では未だComposerについての知識はありません。

少しでも新しい方が良いかなと思ってたのですが、甘かったです。
仕方ないので、web/app_dev.phpから呼ばれる順にソースを追う事に。

あちこち廻って、vendor/composer/autoload_real.phpで$loaderの生成を見つけました。
で、vendor/composer/ClassLoader.phpの冒頭コメント。

/**
* ClassLoader implements a PSR-0 class loader
*
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
*
*     $loader = new \Composer\Autoload\ClassLoader();
*
*     // register classes with namespaces
*     $loader->add('Symfony\Component', __DIR__.'/component');
*     $loader->add('Symfony',           __DIR__.'/framework');
*

なるほど。って事は、$loaderが生成された後、どこかでadd()すれば良いのか。
自動生成されたソースを除外すると、やっぱりapp/autoload.phpなのかな。

app/autoload.phpに$loader->add()を追加したら、サンプルは動作するようになりました。
でも、Composer…。PSR-0...?(つづく)