Проектирование расширений¶
В этой главе вы узнаете, как проектировать расширения PHP. Вы узнаете о жизненном цикле PHP, о том, как и когда управлять памятью, о различных хуках, которые можно использовать, и о различных указателях на функции, которые можно заменить, чтобы активно изменять внутреннюю механику PHP. Вы спроектируете функции и классы PHP, чтобы предоставить их через своё расширение, а также поработаете с настройками INI.
Содержание:
- Изучаем жизненный цикл PHP
- Взгляд на расширение PHP и скелет расширения
- Регистрация и использование PHP-функций
- Управление глобальным состоянием
- Публикация информации о расширении
- Хуки, предоставляемые PHP
- Подключение к выполнению функций
- Перезапись внутренней функции
- Модификация абстрактного синтаксического дерева (AST)
- Подключение к компиляции скрипта/файла
- Уведомление при вызове обработчика ошибок
- Уведомление при выбросе исключения
- Подключение к eval()
- Подключение к сборщику мусора
- Перезапись обработчика прерываний
- Замена обработчиков опкодов
- Объявление и использование настроек INI
- Zend-расширения
- Различия между PHP-расширениями и Zend-расширениями
- Что такое zend-расширение?
- Зачем нужно zend-расширение?
- Управление версиями API и конфликтами
- Хуки жизненного цикла zend-расширений
- Практика: моё первое zend-расширение на примере
- Гибридные расширения