Новые книги

В этой книге представлена методика избавления от нежелательных привычек с помощью повторения коротких ключевых фраз, напоминающих вам о ваших целях и решениях. Короткие фразы из этой книги работают, потому что они побеждают автоматическую систему и помогают вам сознательно понимать то, что вы сейчас делаете, они также служат вам коротким напоминаем о то, что вы хотите сделать в данный момент. Вы начинаете с одной фразы, повторяете ее до тех пор, пока она не «въедается» в вас настолько, что повторения становятся уже не нужны, затем беретесь за следующее изречение. С помощью этой методики вы сможете отказаться от «автопилота» и внедрять в свою жизнь сознательные изменения.

На русском языке публикуется впервые.
Только Дэн Кеннеди мог осмелиться написать такое руководство по безжалостному менеджменту – без всякого рассусоливания и высокоученых теорий, только железные рецепты, проверенные на деле. Теперь, когда у вас есть эта книга, уму непостижимо, как вы могли до сих пор без нее обходиться.

Она облекает вас правом вернуть себе власть над своим бизнесом, задавать правила, ставить во главу угла прибыль и добиваться настоящих результатов от тех, кто на вас работает.

Каждый, кто вооружится установками знаменитого бизнес-гуру и последовательно применит в бизнесе – и в жизни! – описанные на этих страницах методы и техники, очень скоро увидит перемены к лучшему.

3-е издание.

Строение Исходного Кода

Учебник РНР
Назад Вперёд

Глава 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-машина ВверхМакросы