Пара моментов...
PHP не имеет встроенной инфраструктуры «импорта», такой как python, java или .net. Существует несколько способов использования библиотек в PHP.
скомпилируйте их в двоичный файл PHP. Это самый продвинутый способ, и обычно он нежелателен, если только у вас нет особых потребностей.
Установите их как модули PHP на сервере и включите в PHP.ini. С точки зрения PHP-программиста эти расширения являются частью PHP и всегда доступны. Просто их проще добавлять и удалять без необходимости перестраивать сам PHP.
Установите PHP-код где-нибудь на сервере и включите его в свой PHP-скрипт.
Сохраните копию библиотеки в свой проект и включите ее в свой PHP-скрипт.
--
На базовом уровне код является либо частью интерпретатора (статического или динамического), либо это обычный PHP-код, включенный в ваш проект с помощью метода include().
Для ваших целей я могу только предложить вам придерживаться стандартного дистрибутива PHP (выберите хорошую ОС Linux и используйте ее PHP). Тогда почти все библиотеки, которые вам понадобятся на уровне интерпретатора, доступны в виде дополнительных пакетов, и сложность этого остается на усмотрение тех, кто занимается этим каждый день.
В RedHat/Centos вы можете запустить:
yum install php php-memcached php-gd php-pecl
--
Что касается всех других видов библиотек, которые вы, возможно, захотите использовать, то, скорее всего, лучше всего использовать хороший PHP-фреймворк, который позаботится обо всем этом за вас.
Некоторые примеры:
- Зенд Фреймворк
- ТортPHP
- Кодигнитер
- http://www.phpframeworks.com/
- Так далее...
(не в любом порядке, только те, что пришли в голову)
При условии, что вы использовали стандартный подход использования RPM или аналогичных для управления скомпилированными аспектами PHP и расширений, тогда хорошая надежная структура позаботится о включении всего вашего дополнительного кода библиотеки PHP, который вам нужен.
Конечным результатом является то, что вы сосредотачиваетесь на выпуске продукта, а не на всей инфраструктуре, которую в противном случае вам пришлось бы изучать и изобретать.
--
php.ini анализируется и запускается при запуске PHP (каждый раз для командной строки, один раз при запуске сервера в apache). Он определяет множество настроек, включает множество модулей, настраивает эти модули и т. д.
На самом деле вы можете переопределить некоторые настройки в php.ini с помощью функции ini_set() в PHP. Однако это эффективно только для некоторых настроек. Другие должны быть установлены до запуска вашего скрипта.
При работе под apache вы можете добавить строки в директивы .htaccess
и <VirtualHost>
, которые полностью переопределяют PHP.ini для этого каталога/виртуального хоста.
(пожалуйста, исправьте мой синтаксис и удалите это примечание, если оно неверно)
<VirtualHost *>
ServerName www.example.com
DocumentRoot /home/joe/site/docroot
php_value include_path "/home/joe/site/php-code"
</VirtualHost>
--
В ответ на ваш вопрос № 6 о вашей собственной библиотеке и лучшем способе ее упаковки я предлагаю вам сначала оценить потребность в библиотеке. И если вы действительно в чем-то разбираетесь, то выясните наиболее распространенный способ, которым люди это делают. Если это простая библиотека, то файла .php с красивым веб-сайтом будет достаточно.
--
Возможно, это немного бессвязно, но я надеюсь, что это укажет вам правильное направление.
person
gahooa
schedule
09.12.2010