Как определить время первой компиляции (генерации байткода) объекта PHP?
В мыслях крутится вот такая интересная идея, искал в интернете и собственно даже поисковый запрос в голову не приходит :)
Задача: создать объект (файл с описанием класса), который сможет настроить свое окружение (зависимости от других объектов и т.д.) при первом вызове.
Ограничения:
Объект не должен делать эти лишние проверки после первой компиляции (генерации байткода).
Т.е. получается следующее:
Пишем объект рассылки писем MyMail, который способен отправлять разными способами. В конструкторе проверяем, был ли он скомпилирован или взят байт-код из кэша.
Если был скомпилирован, значит, проверяем возможности сервера на наличие тех или иных функций, и создаем файл конфигурации. И в дальнейшем отправка будет осуществляться доступным способом.
Есть варианты конечно:
в режиме отладки проверять постоянно окружение, а в продакшн - не проверять,
проверять наличие конфига, ( а если файл класса изменился? ) и т.д.
но хотелось бы универсальности... думаю, источник байт-кода как раз был бы отличным "флажком"
any ideas?
Вы понимаете что делаете глупость? Вы заменяете дешевые операции проверок на дорогие операции "доставания какой-то сервисной инфы", причем делаете свой код непереносимым и много чего прочего.
Если вам так хочется поубивать время - используйте генераторы прокси-классов. Просто оборачивайте свой класс проксей и там подменяйте реализации.