Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «аоп»
Контрактное программирование в PHP 2014-03-03 09:56:18
+ развернуть текст сохранённая копия
В реальной жизни мы повсюду сталкиваемся с различными контрактами: при устройстве на работу, при выполнении работ, при подписании взаимных соглашений и многими другими. Юридическая сила контрактов гарантирует нам защиту интересов и не допускает их нарушения без последствий, что дает нам уверенность в том, что те пункты, которые описаны в контракте — будут выполнены. Эта уверенность помогает нам планировать время, планировать расходы, а также планировать необходимые ресурсы. А что если и программный код будет описываться контрактами? Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Тэги: dbc, php, аоп, веб-разработка, контрактное, контракты, программирование, разработка
AspectMock — тестируем любой PHP код 2013-07-24 07:21:54
Как часто вы пишите велосипеды? Можно я тоже тут рядом пристроюсь? Но дело в том, что мой велосипед, ...
+ развернуть текст сохранённая копия
Как часто вы пишите велосипеды? Можно я тоже тут рядом пристроюсь? Но дело в том, что мой велосипед, он особенный. Казалось бы, простенький, трехколесненький, склепанный всего за один день. Но есть одна хитрость — он работает на движке от болида. Что он умеет?
А смотрите:
<?php
$class = MySingleton::getInstance();
var_dump($class instanceof MySingleton); // => (bool)true
var_dump($class instanceof DOMDocument); // => (bool)false
// а теперь немного магии
test::double('MySingleton', ['getInstance' => new DOMDocument]);
var_dump($class instanceof MySingleton); // => (bool)false
var_dump($class instanceof DOMDocument); // => (bool)true
?>
О нет, мы изменили синглтон! Мы переопределили статический метод. Как же теперь жить?
Но вопрос теперь в другом: как мы жили до этого?
Встречайте AspectMock. Самый простой, но самый мощный фреймворк для моков и стабов на PHP.
Ваш новый суперпростой помощник в тестировании. Основан на Go AOP от NightTiger.
Читать дальше →
Тэги: aop, aspectmock, php, аоп, тестирование
[Из песочницы] Избавляемся от дублирования сквозного кода в PHP: рефакторинг кода с АОП 2013-01-10 13:40:14
... лучше с помощью АОП.
Читать ...
+ развернуть текст сохранённая копия
Думаю, каждому программисту знаком принцип единственной ответственности, ведь не зря он существует: соблюдая его, можно написать код лучше, он будет более понятным, его будет легче дорабатывать.
Но чем больше каждый из нас работает с кодом, тем больше приходит понимание того, что на существующем уровне языка — объектно-ориентированном — этого сделать невозможно. А мешает нам в соблюдении принципа единственной ответственности такой факт, как сквозная функциональность.
Эта статья о том, как можно избавиться от дублирования сквозного кода, и как сделать его чуточку лучше с помощью АОП.
Читать дальше
Тэги: aop, aspect, goaop, oriented, php, programming, аоп, веб-разработка, программирование
Использование аннотаций в PHP 5.4 для АОП и не только 2012-08-06 14:02:55
... на помощь приходит АОП.
Для ...
+ развернуть текст сохранённая копия
При разработке крупных проектов довольно часто возникает ситуация, когда сквозной функционал, слабо относящийся к бизнес-логике, сильно раздувается, заполняя код однотипными конструкциями. Это может быть логирование операций, работа с кешем или проверка прав доступа. Тут нам на помощь приходит АОП.
Для PHP существует несколько реализаций этой парадигмы программирования. К сожалению, среди них мне не удалось найти решение, которое бы можно было легко внедрить в уже существующий большой проект и удовлетворяющее эстетическим требованиям к коду.
Технологии реализации AOP в PHP
Волшебные методы
Самое простое решение — использование «волшебных методов» __call и __callStatic. Эти методы вызываются (если они определены в классе) при обращении к несуществующему методу класса. В качестве аргументов они получают имя несуществующего метода и переданные ему параметры.
В данном случае, приложение строится таким образом, что реальные методы имеют имя отличное от имени указанном в вызывающих их конструкциях. Сквозной функционал реализуется в «волшебных методах», которые, при необходимости, передают управление реальным методам классов.
Плюсы:
- Легко начать использовать;
- Реализация не требует дополнительных модулей (нативный PHP).
Минусы:
- Не удобно использовать при большом количестве сквозного функционала;
- Т.к. имена методов в определении и в вызовах различаются, создаются трудности при использовании автодополнения кода в IDE.
Предварительный разбор кода
Этот способ подразумевает наличие посредника, позволяющего использовать «синтаксический сахар». Необходимый функционал описывается вспомогательным синтаксисом (xml/json конфигурация, дополнительные php-классы или аннотации в коде), который разбирается посредником. На основе разбора генерируется результирующий код, который содержит вставки сквозного функционала в необходимые места.
Плюсы:
- Работает быстро, т.к. на выходе это обычный PHP-код, просто сгенерированный за Вас автоматически.
Минусы:
- Сложно внедрить в большой проект;
- Требуется разбор кода после каждого изменения, для внесения корректировок в результирующий код.
Замена кода приложения во время выполнения
Только чёрная магия, только хардкор
Тэги: aop, php, аннотация, аоп, программирование, разработка
PHP / PHP и Аспектно-ориентированное программирование 2011-11-07 13:06:18
... аспектно-ориентированного программирования ( АОП) почему-то слабо ... подход к написанию АОП приложений с ...
+ развернуть текст сохранённая копия
Довольно популярная в мире Java парадигма аспектно-ориентированного программирования (АОП) почему-то слабо освещена в разработке на PHP. В данной статье я хочу представить свой подход к написанию АОП приложений с использованием небольшого фреймворка и модуля. Читать дальше →
Тэги: aop, aspect, intercept, oriented, paf, php, programming, аоп
Главная / Главные темы / Тэг «аоп»
|
Взлеты Топ 5
Падения Топ 5
|