Таки вот возник у меня вопрос - у кого-нибудь возникало желание отслеживать момент инклуда файла, и вызова какой-либо built-in функции? Пых не событийный язык, и таки вопрос - полезной была бы такая фича или нет? Вопрос абсолютно отвлеченный, без подвоха.
на вызов метода заманчиво подцепиться, потому как виденные реализации через магические методы, слишком накладные..
в смысле? что-то типа Код (Text): <?php __call($name, $args){ $methodName = '_func_' . $name; if(method_exists($this, $methodName){ $this->beforeMethod($name, $args); $this->$methodName(); $this->afterMethod($name, $args); } } ?
типа да Добавлено спустя 1 минуту: О, сорри, я невнимательно прочел. нет, таких желаний не возникало. с оговорками можно подменить встроенную (из корневого неймспейса) функцию на свою. если вызов не предваряется \ . но зачем? Код (Text): namespace Target; function substr($s, $p, $n) { ... return \substr($s, $p, $n); }
это да, всячески не айс =( реализация кривая, да и built-in опять же не обернешь таким образом. собственно, мне мысль отслеживания вызова функции пришла в результате курения, как можно предотвратить вызов set_error_handler(), после того, как уже один раз было вызвано...