Комментарии 4
Жаль что в PHP нет поддержки аспектов можно было бы что то вроде этого написать
вместо того что бы добавлять
class LazyPDO extends PDO implements Serializable {
...
public function before($method,$args) {
if ( !($method == 'init' || $method == '__construct') ){
$this->init();
}
return call($mehtod,$args);
}
вместо того что бы добавлять
$this->init();
в каждый метод классабыло бы идеально если бы существовали магические функции такие как
_berore()
_after()
иногда это может быть полезным
_berore()
_after()
иногда это может быть полезным
Боюсь, что такие методы работали бы так же медленно, как и call_user_func(). Спасибо за комментарий.
да возможно, но мечтать не вредно. Всё же эти методы были бы полезными. Это хорошо что в PDO чуть больше 10 методов. А представьте если бы PDO был наследником 3 — 4 классов и методов в нём было бы штук 30 — 40 и init() пришлось бы добавлять в них всё. Это был бы неблагодарный труд. С _before() эта задача сводилась бы к написанию одного метода. Хотя такая задача очень редко встречается
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
PDO: сериализация, поздняя инициализация и PHPUnit