Fatal error: Class 'Foo1' not found in .../Foo2.php on line 5
次のファイルで致命的なエラーが発生します。
index.php:
<?php
require_once("./Foo1.php");
?>
<h1>Success</h1>
Foo1.php:
<?php
require_once('./IFoo.php');
require_once('./Bar.php');
class Foo1 implements IFoo
{
/** @var Bar */
private $bar;
}
IFoo.php:
<?php
interface IFoo {
}
Bar.php:
<?php
require_once('./Foo2.php');
class Bar {
/** @var Foo2 */
private $foo;
}
Foo2.php:
<?php
require_once("./Foo1.php");
class Foo2 extends Foo1
{
}
質問:
- この状況を解決する方法は?
- ステートメントを抑制する
implements IFoo
と、このコードが機能するのはなぜですか?
更新 提案されたソリューションのほとんどは、オートローディングを含みました。残念ながら、私の問題は、既存のコードが多く、悪い習慣が多い古いプロジェクトにあります。私たちはPSR-0標準からはほど遠いです。
オートローディングを導入すると、パフォーマンスの観点からどのくらいのコストがかかりますか?