Журнал Системный Администратор, Ноябрь 2005

Журнал Системный Администратор

Ноябрь 2005

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Расширения РHP: пять шагов к написанию

Александр Календарев

Это намного проще, чем кажется с первого раза

Расширение в PHP – это набор дополнительных функций, не входящих в ядро PHP-engine. Расширения, как и само ядро PHP-engine, написаны на С, что значительно повышает быстродействие системы, а также позволяет осуществлять доступ к внешним библиотекам и создавать более эффективные веб-приложения. Так как же быстро и надежно разработать расширение?

Вполне закономерный вопрос – зачем нужны дополнительные расширения? Казалось бы, все что нужно скриптовому языку, в PHP уже охвачено. В последний дистрибутив четвертой версии входит 74 РНР-расширения. На официальном сайте www.php.net есть раздел, специально посвященный этой теме: www.pecl.php.net. На данноме ресурсе находится библиотека исходных текстов еще 132х дополнительных расширений. Не стоит забывать, что PHP относится к языкам интерпритируемого типа, т.е. каждая команда языка интерпритируется во время исполнения, что заметно проигрывает в скорости языкам компилируемого типа. Практика показывает, что для ускорения части функционала (написание функций с использованием битовых операций, т.к. они медленно отрабатываются на PHP и очень замедляют работу скрипта) приходится писать расширения, а также если необходимо обратиться к уже существующим C-библиотекам (например, криптографические или ГИСбиблиотеки). Наверное, у каждого из вас найдется своя причина, чтобы написать новое расширение.

Данная статья поможет вам понять основы построения расширений и освоить технику написания расширений под *nix-системы. Написание расширений под Windows отличается только способом компилирования и обращения к внешним библиотекам.

В двух словах, под расширением понимается часть PHP-функций, которые реализованы в виде отдельного модуля, написанного на С. Данные функции могут либо подключаться, как внешний модуль, либо скомпилированы статически в исходный код PHP. Простым примером расширения является модуль php_mysql, который реализует интерфейс с БД MySql. Интерфейсом взаимодействия между внешними функциями и ядром PHP (PHP-engine) является PHP API, а начиная с версии 4.1.0 в качестве API используется Zend API.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке