を介して登録されたクラスをカスケード拡張しようとしていclass_alias
ます。「クラスを再宣言できません」という警告が表示され、自分がやりたいことがPHPでも可能かどうか疑問に思っています。
私の目的は、継承の「チェーン」を作成できるようにすることです。One\one
は基本クラスであり、これを拡張しますが、エイリアスされるクラスとしてTwo\one
も置き換えられます。One\one
このようにして、チェーン内の他のクラス/他のクラスがすでに拡張しているクラスについての知識がなくても、任意の数のクラスが特定の名前空間のメインクラスを拡張できます。
one.php
namespace One;
class_alias('One\one', 'one');
class one {}
two.php
namesapce Two;
class_alias('Two\one', 'one');
class one extends \one{}
index.php
<?php
require('one.php');
require('two.php');
$instance = new \one();
var_dump($instance);