Можете ли вы расширить псевдонимы и - если да - как? - PullRequest
0 голосов
/ 20 мая 2018

У меня не было большого опыта работы с пространствами имен, мои единственные случаи - использование Laravel.

<?php

use use My\Full\Classname as Another; // <-- Alias
// Want to add in import here to extend Faker alias to include more methods

Скажем, есть пакет с несколькими полезными классами.Как бы я сложил их под одним псевдонимом?Можете ли вы расширять псевдонимы, как вы можете в определении класса?

class Foo extends Bar {}

use My\Full\Classname as Another;    // Has bar() method
use My\Different\Foo extends Another // Has foo() method

Я хотел бы иметь возможность расширить другой, чтобы я мог сделать Another-> foo ();Это возможно с псевдонимами?

1 Ответ

0 голосов
/ 20 мая 2018

Это можно сделать, просто создав новый класс

class ExtendedAnother extends Another {
    function foo() {
        $this->bar();
        // Do foo here
    }
}

Теперь вы можете просто сделать следующее

use ExtendedAnother as Another; // Has foo() method
Another->foo();

Псевдонимы или пространства имен не предназначены для расширения классаи, таким образом, не может использоваться так, как вы запрашиваете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...