псевдоним нескольких классов php с одним и тем же именем класса


Я пытаюсь каскадно расширить класс, зарегистрированный через 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);
Author: Uru, 2012-11-09

1 answers

У вас не может быть двух классов с одинаковым именем в одном пространстве имен. Вы пытаетесь дважды назначить имя one в глобальном пространстве имен с помощью вызовов class_alias.

Вы используете пространства имен, а затем пытаетесь обойти их. Зачем это нужно делать?

 1
Author: feeela, 2012-11-09 20:32:26