AOP, использование в PHP

atv

Новичок
через навешивание прокси на класс
Так это уже совсем другой паттерн...

Лучше скажи где это реально могло бы помочь.
Тебе это нигде не поможет, так как ты упёрся и будешь всеми силами доказывать мне что АОП херня. Будет ещё один аналог ОРМ vs неОРМ, ООП vs процедурка.

советую подналечь на правильный ооп
Советую подналечь на качество кода. Код, в котором содержится дублирование - плохой. А без соглашений (как и от некоторой порции дублирования кода) никуда не деться.
 

Alexandre

PHPПенсионер
Мля, отмазки на уровне фишера про ОРМ.
у фишера одни задачи, у тебя другие. Не надо все валить в одну кучу. Где-то ОРМ подходит, где-то нет. В Фишеровских задачах оно не катит.
 

korchasa

LIMB infected
Автор оригинала: atv
Так это уже совсем другой паттерн...
И? Главная проблема решаемая АОП - организация единой точки входа в сквозную функциональность. Ее почти всегда можно получить с помощью COR. А эмуляция аспекта, да, обычно делается через прокси.
Автор оригинала: atv Тебе это нигде не поможет, так как ты упёрся и будешь всеми силами доказывать мне что АОП херня. Будет ещё один аналог ОРМ vs неОРМ, ООП vs процедурка.
Я еще не куда ни упирался. Просто после его использования у меня сформировалась своя точка зрения, что логично. Она сводится к тому, что поддержка должна быть со стороны языка, а не костылями сбоку.
 

atv

Новичок
Поздравляю, ты постиг шестой уровень. Но до дзена тебе еще далеко.
Та вы шо, ну спасибо хоть в жопу не послал, как фишер.

Всё ещё жду логгирования БД на фронт контроллере и филтер чайн. Сморозил?, так признай, и дальше продолжим разговор.

Ее почти всегда можно получить с помощью COR. А эмуляция аспекта, да, обычно делается через прокси.
Так никто и не говорил, что всё то, что можно сделать с АОП, нельзя сделать без АОП. Такой вопрос вообще не возникает. Возникает, обычно, вопрос эффективности. Что ООП, в своей области применения эффективнее процедурного подхода. АОП, в своей области применения, эффективнее паттерна прокси. Ну понятно, что ты с этим не согласен...

Она сводится к тому, что поддержка должна быть со стороны языка, а не костылями сбоку.
Ага, так теперь мы говорим про конкретные реализации? А начинали, вроде, с АОП в PHP вообще. Так же можно и запутаться.

В общем ладно, разговор уже беспредметный, и ни к чему не приведёт. Лично вас переубеждать не собираюсь, но оставить без замечания ваши "замечания" нельзя было.
 

Viktor_Rez

Новичок
А принципиально нового в аспектах программирования будет или это таже самая парадигма ООП только в профиль?
 

korchasa

LIMB infected
Автор оригинала: atv
Всё ещё жду логгирования БД на фронт контроллере и филтер чайн. Сморозил?, так признай, и дальше продолжим разговор.
Если АОП сводится к окружению какого кода другим, то да, сморозил. Просто я по наивности думал, что это нечто большее. Если я допишу в список прокси, ты удовлетворишься?

Автор оригинала: atv
Так никто и не говорил, что всё то, что можно сделать с АОП, нельзя сделать без АОП. Такой вопрос вообще не возникает. Возникает, обычно, вопрос эффективности. Что ООП, в своей области применения эффективнее процедурного подхода. АОП, в своей области применения, эффективнее паттерна прокси. Ну понятно, что ты с этим не согласен...
Ну так я и пытался об эффективности. Даже попросил у тебя примеров. Вот именно введение еще одного класс абстракций только ради того, что уже у всех реализовано и работает, мне и не кажется эффективным.

Автор оригинала: atv Ага, так теперь мы говорим про конкретные реализации? А начинали, вроде, с АОП в PHP вообще. Так же можно и запутаться.
Да, потому что поддержка в языке уменьшит геморой на реализации и поддержке. А пока все так, как я написал в первом сообщении.

Автор оригинала: atv Лично вас переубеждать не собираюсь, но оставить без замечания ваши "замечания" нельзя было.
Да ладно, мне тоже скучно :)
 

whirlwind

TDD infected, paranoid
atv у тебя с этим чтоли сложности?

PHP:
class SqlLogger {
    protected $dbh;

    function __construct($dbh)
    {
        $this->dbh = $dbh;
    }

    function executeQuery($sql)
    {
        error_log($sql);
        return $this->dbh->executeQuery($sql);
    }

    function __call($method, $args)
    {
        ...
    }

}
 
Сверху