Ходил позавчера — интересный опыт. Анимации довольно прикольно смотреть (там в 30 минутном сеансе 2 мультика и 2 короткометражных фильма), только харит головой постоянно вертеть со стороны в сторону.
Описаный автором метод больше подходит для парсинга сайтов(как в последнем примере), нежели для эмуляции браузера. Эмуляция, в данном случае, только метод достижения цели.
Насколько знаю в таких случаях Селениум не используется(пните если неправ).
Связь задается при помощи аннотаций — определенного формата комментариев.
Таким образом аннотация вида:
/*
* @After(Backet->order)
*/
public function backetOrderMessage($params) {
echo ‘Backed has been ordered’;
}
значит, что совет backetOrderMessage нужно вызвать после выполнения метода order обьектов класса Backet.
Более детально о возможных аннотациях можно почитать в документации на Гитхабе: github.com/kooler/PAF/wiki/PAF-Join-points
Спасибо за замечания касательно eval и финализации конструктора, исправлю.
Насчет параметров совета — планирую в следующей версии модуля сделать аналогично методу __call.
Сначала планировал передавать больше информации в совет, поэтому и сделал в виде массива, чтобы проще было расширить. Но немного поработав с модулем вижу, что кроме обьекта и аргументов ничего не нужно, поэтому решил переделать, пока он еще на ранней стадии и никем не используется.
У меня пальцы часто «автоматически» нажимают Ctrl+S, при этом в большинстве случаев при незаконченом функционале. Поэтому ИМХО тестирование после коммита удобней.
Расширения Intercept и MethodIntercept так и делают. Они заменяют функцию вызывающую методы\функции оберткой, соответственно вызов советов выполняется на уровне Zend Engine.
Это Intercept обновлялось в 2005, на базе него я разработал свое(MethodIntercept), которое обновлялось позавчера). Если окажется кому-то нужным, могу занятся разработкой и поддержкой.
Что вы понимаете под полноэкранным? Пример калькулятора из статьи тоже можно развернуть на весь экран, он обрабатывает перемещения мыши(можно нажимать на разные кнопки) и нажания клавиш клавиатуры(можно вводить текст в поле ввода). Многое зависит от целевой ОС. На iOS точно нельзя)
Как по мне совсем не зло, если приложение не большое и написано не для enterprise сектора. Можете себе представить клиент банка или бухгалтерское приложение написанное на PHP? Разработчики не развивают PHP в сторону разработки GUI apps, поэтому библиотеки сыроваты да и документации(а тем более с примерами) не много.
Как по мне совсем не зло, если приложение небольшое и пишется не для enterprise сектора. Можете себе представить клиент для банка или электронную бухгалтерию написанную на PHP? Разработчики не очень развивают PHP в направлении разработки GUI приложений, поэтому библиотеки сыроваты да и документации(а тем более с примерами) не много.
Все таки будут, так как сейчас много свободного времени проводят в кинотеатрах, ресторанах и др. Как только начнутся проблемы с деньгами, все эти виды развлечений отпадут и останутся более дешовые — среди которых интернет.
Неплохо бы сделать систему обучающейся на основе обсуждений врачей. И при составлении карточки(внесения в систему списка симптомов) ставить «возможный диагноз». Это поднимет интерес к системе не только у врачей, но и у пациентов.
Насколько знаю в таких случаях Селениум не используется(пните если неправ).
где MyDBInterface — интерфейс, имплементируемый декорируемым классом MyDBClass, и проблема будет решена
Скорей всего данный нюанс неактуален в проекте автора, вон он и не довел до конца.
Таким образом аннотация вида:
значит, что совет backetOrderMessage нужно вызвать после выполнения метода order обьектов класса Backet.
Более детально о возможных аннотациях можно почитать в документации на Гитхабе: github.com/kooler/PAF/wiki/PAF-Join-points
Насчет параметров совета — планирую в следующей версии модуля сделать аналогично методу __call.
Сначала планировал передавать больше информации в совет, поэтому и сделал в виде массива, чтобы проще было расширить. Но немного поработав с модулем вижу, что кроме обьекта и аргументов ничего не нужно, поэтому решил переделать, пока он еще на ранней стадии и никем не используется.
Что бы посоветовали добавить?