動的なクラスのロード

こんなクラスがありまして。

class Foo
{
    public function getVersion()
    {
        return __CLASS__;
    }
}

こんな構成に配備したとして。

./src/.../
├── Ver_1_0
│       └── Foo.php
└── Ver_1_1
         └── Foo.php

動的にロードしてみます。

$version = '1.0';
$version = str_replace('.', '_', $version);

// 動的にクラス名を指定する場合は完全修飾名
$className = sprintf("\...\Ver_%s\Foo", $version);
$obj = new $className;

echo $obj->getVersion() . PHP_EOL;

ほー。