PHP-Nuke по-русски    Главная
Начальная
страница
 Клуб
Русский
клуб
 Разделы
Тематические
разделы
 Ссылки
Каталог
сайтов
 Файлы
Каталог
программ
 Школа
Практические
занятия
 Форум
Форумы
поддержки
Учебник РНР
Назад Вперёд

Глава 27. Строение Исходного Кода

Содержание
Соглашения по расширениям
Макросы
Работа с памятью
Функции работы с файлами и директориями
Работа со строками
Сложные типы

Предварительные условия. Прежде чем работать с остальной частью этой главы, вы должны запросить чистые, немодифицированные исходные деревья вашего любимого Web-сервера.
Мы работаем с Apache (доступен с http://www.apache.org) и, конечно, с PHP (доступен с http://www.php.net).

Альтернативно вы можете использовать архивы исходников на CD-ROM, сопровождающим эту книгу. Все примеры в этой книге работают с архивами исходников с CD-ROM; мы не можем гарантировать это для каждой версии, полученной из Net. Однако, поскольку программное обеспечение Open Source разрабатывается очень быстро, велики шансы того, что версии на CD-ROM уже устарели и не имеют всей необходимой функциональности. Если вы не можете получить с соответствующих Web-сайтов официальные архивы для работы, поэкспериментируйте с архивами на CD-ROM.

Убедитесь, что вы можете скомпилировать рабочее окружение PHP самостоятельно!
Мы здесь не углубляемся в этот вопрос, поскольку вы уже изучали базовые возможности в этой главе.

Прежде чем начинать обсуждение кода, вы должны познакомиться с исходным деревом, чтобы быстро перемещаться по PHP-файлам. Это необходимо для реализации и отладки расширений.

После извлечения PHP-архива вы увидите структуру директорий, примерно как на Рисунке 9.2.

Рисунок 27-1. Рисунок 9.2. Структура основных директорий исходного дерева PHP.

В таблице описано содержимое большинства этих директорий.

Директория Содержимое
php-4Главные исходные файлы PHP и главные header-файлы; здесь вы найдёте все определения API РНР, макросов etc. (это важно).
ext Хранилище динамических и встроенных модулей; по умолчанию это "официальные" модули PHP, которые интегрированы в главное исходное дерево. В PHP 4.0 можно компилировать эти стандартные расширения как динамически загружаемые модули (как минимум те, которые это поддерживают).
pearДиректория для хранения классов PHP. На момент написания она была всё ещё в стадии разработки, но здесь делается попытка создания чего-либо подобного CPAN для Perl.
sapiСодержит код для различных абстрактных слоёв сервера.
TSRMМестонахождение "Thread SafeResource Manager" (TSRM) для Zend и PHP.
ZendМестонахождение файла Zend; здесь вы найдёте все определения Zend API, макросов etc. (это важно).

Рассмотрение всех файлов, входящих в пакет PHP выходит за рамки этой главы. Однако вы должны хотя бы кратко просмотреть следующие файлы:

  • php.h, размещённый в главной директории PHP. Это файл содержит определения большинства макросов и API РНР.

  • zend.h, размещённый в главной директории Zend. Это файл содержит большинство макросов и определений Zend'а.

  • zend_API.h, также размещённый в директории Zend, который определяет API Zend'а.

Вы должны также проследовать по некоторым включениям в эти файлы; например, относящимся к Zend executor, поддержке файлов инициализации PHP, и подобным. После чтения этих файлов выделите время для просмотра пакета, чтобы увидеть взаимосвязи файлов и модулей - как они соотносятся и, особенно, как они используют друг друга. Это также поможет вам приспособиться к стилю кодирования, в котором авторизован PHP. Для расширения PHP вы должны быстро приспособиться к этому стилю.

Соглашения по расширениям

Zend построен с использованием определённых соглашений; чтобы исключить нарушение стандартов Zend, вы должны следовать правилам, описанным в следующих разделах.


Назад Оглавление Вперёд
Zend-машина ВверхМакросы

© RigaNet - Internet studio
For Web site issues, contact the Web master.

Rambler's Top100 Рейтинг@Mail.ru RigaNet