- Daemonって守護神って意味だったのか。悪魔(demon)かと思ってた。
- PHP The Right Way, 昨日の続き。
- PSR-4になってるのは知ってたけど、autoloadのこと(WAFとかで使ってるけど)よくわかってない。
- 調べた結果、オレオレautoloadが大量に見つかり、めんどくさくなってcomposer使うことにした。
- Composerが2011/04/03〜。spl_autoload_registerをつかったものが2012あたりに大量に書かれてるけど、何かあったのかな。
- たぶん、こんな感じで読み込める。
- 最初IBMのページでnamespaceをいろいろ試してたから、こうなってる。
- 小規模かつ個人開発ならautoload使わずにrequireしてもいいと思う。
// composer.json
{
"autoload": {
"psr-4": {
"Obrian\\": "src/obrian/",
"Barbarian\\": "src/barbarian/"
}
}
}
// ディレクトリ以下の配置
.
├── composer.json
├── composer.lock
├── composer.phar
├── index.php
├── src
│ ├── barbarian
│ │ └── Conan.php
│ └── obrian
│ └── Conan.php
└── vendor
├── autoload.php
(省略)
// index.php
<?php
require_once "vendor/autoload.php";
use \Barbarian\Conan;
use \Obrian\Conan as ObrianConan;
$conan = new Conan();
echo $conan->bodyBuild . PHP_EOL;
$obConan = new ObrianConan;
echo $obConan->bodyBuild . PHP_EOL;
// src/obrian/Conan.php
<?php
namespace obrian;
class Conan
{
public $bodyBuild = "very skinny";
}
// src/barbarian/Conan.php
<?php
namespace barbarian;
class Conan
{
public $bodyBuild = "extermely muscular";
}