Я немного взломал Zend PHP. Я считаю, что это overly clever
, некоторые люди даже называют его deliberately obfuscated in plain view
. Исходный код PHP - это изменяющее сознание (или разрушающее) вещество, в зависимости от того, насколько вы хороши в расшифровке очень загадочных макросов. Это мое представление о ядре.
Написание расширений, однако, - легкий ветерок Как только вы освоитесь с помощниками Zend, большинство людей с продвинутыми знаниями для начинающих / среднего уровня C могут пройти базовое расширение. Там также много примеров. Одна из лучших частей PHP - это то, насколько организована система сборки, добавление новых вещей относительно безболезненно. Приложив немного усилий и терпения, практически любая библиотека C будет легко расширена до PHP.
Если вы не очень хорошо разбираетесь в C (и что граничит со злоупотреблением препроцессором), взгляд на ядро PHP не даст вам много понимания, и это не очень хорошая вещь ссылаться, если вы изучаете C самостоятельно.
Переезд:
Не позволяйте тому, что я сказал, или тому, что кто-то еще может сказать, отговаривают вас от захвата кода и поиска себя. При этом, что касается отладки, идет:
Valgrind (если вы не используете много подавлений) не очень полезен. PHP (насколько мне известно) использует чтение, оптимизированное для Arch, подобно новым версиям glibc. То есть он будет читать 32 бита, даже если он проглатывает только 8 бит и завершающий NULL.
Я никогда не находил GDB очень полезным с PHP. Большая часть магии в макросах, которые очень трудно отследить.
Вы быстро увидите функции регистрации ошибок Zend и их версию утверждений. Используйте их, отладка printf () практически бесполезна, если только вы не отлаживаете приложение CLI.
Сборка мусора может заставить вас видеть странные вещи при использовании таких инструментов, как массив Вальгринда. Профилирование использования кучи в PHP - это искусство, которое я еще не обнаружил.
Наконец, я хотел бы сказать, что всегда приятно видеть, как кто-то заглядывает под капот своего языка. SO может использовать некоторые вопросы, которые помогут де-мистифицировать ядро PHP, поэтому, пожалуйста, не стесняйтесь публиковать больше по мере продвижения:)
Также, помните, Zend - не единственная кузница, которую делает php . Хотя совместимость с Zend имеет первостепенное значение, если вы надеетесь, что он будет принят, каждый по-прежнему свободен делать свое дело.