Наилучший способ переопределения классов в стороннем модуле

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Наилучший способ переопределения классов в стороннем модуле

Сообщение ElisDN »

lynicidn писал(а):вы не представляете себе как устроен и как работает мок, что у него внутри, за счет чего он достигает переопределения и прочие такие мелочи
ага, пипец как сложно посмотреть что у него внутри и как он работает :) :

Код: Выделить всё

class Mock_Connection_1b17103d extends yii\db\Connection implements PHPUnit_Framework_MockObject_MockObject
{
    private $__phpunit_invocationMocker;
    private $__phpunit_originalObject;

    public function __clone()
    {
        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
        parent::__clone();
    }

    public function getSchema()
    {
        $arguments = array();
        $count     = func_num_args();

        if ($count > 0) {
            $_arguments = func_get_args();

            for ($i = 0; $i < $count; $i++) {
                $arguments[] = $_arguments[$i];
            }
        }

        $result = $this->__phpunit_getInvocationMocker()->invoke(
          new PHPUnit_Framework_MockObject_Invocation_Object(
            'yii\db\Connection', 'getSchema', $arguments, $this, FALSE
          )
        );

        return $result;
    }

    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
    {
        return $this->__phpunit_getInvocationMocker()->expects($matcher);
    }

    public function method()
    {
        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
        $expects = $this->expects($any);
        return call_user_func_array(array($expects, 'method'), func_get_args());
    }

    public function __phpunit_setOriginalObject($originalObject)
    {
        $this->__phpunit_originalObject = $originalObject;
    }

    public function __phpunit_getInvocationMocker()
    {
        if ($this->__phpunit_invocationMocker === NULL) {
            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
        }

        return $this->__phpunit_invocationMocker;
    }

    public function __phpunit_hasMatchers()
    {
        return $this->__phpunit_getInvocationMocker()->hasMatchers();
    }

    public function __phpunit_verify()
    {
        $this->__phpunit_getInvocationMocker()->verify();
        $this->__phpunit_invocationMocker = NULL;
    }
}
Последний раз редактировалось ElisDN 2016.01.21, 13:14, всего редактировалось 2 раза.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Наилучший способ переопределения классов в стороннем модуле

Сообщение ElisDN »

lynicidn писал(а):я все равно не понял твой тред про теги, теггируют схожие реализации, чтобы потом им можно было чтото скармливать, я не применял их на практике, только не понял откуда выводы про "вершки" - как раз для чего теги нужны я знаю
У меня там нет треда про теги. Это Вы про них внезапно начали.
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Наилучший способ переопределения классов в стороннем модуле

Сообщение lynicidn »

ElisDN писал(а):
lynicidn писал(а):я все равно не понял твой тред про теги, теггируют схожие реализации, чтобы потом им можно было чтото скармливать, я не применял их на практике, только не понял откуда выводы про "вершки" - как раз для чего теги нужны я знаю
У меня там нет треда про теги. Это Вы про них внезапно начали.
так, это ответ был zelenin, перепроверю, может цитаты перепутал
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Наилучший способ переопределения классов в стороннем модуле

Сообщение zelenin »

lynicidn писал(а):
zelenin писал(а):
оттуда же кстати подтред про теги сервисов - к вопросу о вершках)
я все равно не понял твой тред про теги, теггируют схожие реализации, чтобы потом им можно было чтото скармливать, я не применял их на практике, только не понял откуда выводы про "вершки" - как раз для чего теги нужны я знаю
не сходные реализации чего-либо, а некие сущности одного уровня, которые по тегу можно достать. Аналогично тегам в блогах.
Я применяю их на практике и знаю для чего они нужны.
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Наилучший способ переопределения классов в стороннем модуле

Сообщение lynicidn »

zelenin писал(а):
lynicidn писал(а):
zelenin писал(а): оттуда же кстати подтред про теги сервисов - к вопросу о вершках)
я все равно не понял твой тред про теги, теггируют схожие реализации, чтобы потом им можно было чтото скармливать, я не применял их на практике, только не понял откуда выводы про "вершки" - как раз для чего теги нужны я знаю
не сходные реализации чего-либо, а некие сущности одного уровня, которые по тегу можно достать. Аналогично тегам в блогах.
Я применяю их на практике и знаю для чего они нужны.
я бы это сравнил как раз с service bus, о которой в последнее время говорят, у меня есть к примеру некий объект я его теггирую несколькими тегами и они становятся зависимостями для сервиса, который(е) завязан(ы) на этот тег
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Наилучший способ переопределения классов в стороннем модуле

Сообщение zelenin »

lynicidn писал(а):
zelenin писал(а):
lynicidn писал(а): я все равно не понял твой тред про теги, теггируют схожие реализации, чтобы потом им можно было чтото скармливать, я не применял их на практике, только не понял откуда выводы про "вершки" - как раз для чего теги нужны я знаю
не сходные реализации чего-либо, а некие сущности одного уровня, которые по тегу можно достать. Аналогично тегам в блогах.
Я применяю их на практике и знаю для чего они нужны.
я бы это сравнил как раз с service bus, о которой в последнее время говорят, у меня есть к примеру некий объект я его теггирую несколькими тегами и они становятся зависимостями для сервиса, который(е) завязан(ы) на этот тег

Код: Выделить всё

post_created_listener:
  tags:
    - { name: event.listener, event: PostCreatedEvent }

post_slugify_listener:
  tags:
    - { name: event.listener, event: PostCreatedEvent }

comment_created_listener:
  tags:
    - { name: event.listener, event: CommentCreatedEvent } 
тег event.listener позволяет мне достать все обработчики для события, а доп. атрибут event отфильтровать обработчики для конкретного события. Это не о DI.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Наилучший способ переопределения классов в стороннем модуле

Сообщение ElisDN »

lynicidn писал(а):так, это ответ был zelenin, перепроверю, может цитаты перепутал
Да хоть кому. Не было там ни слова про теги.
Ответить