Подтвердить что ты не робот

Понимание установки библиотеки PHP

Я пытаюсь понять варианты и терминологию, связанные с "установкой" библиотек PHP в системе (Linux/OSX)

Вот некоторые конкретные моменты, которые я пытаюсь осветить:

  • Что означает "установка" в отношении библиотек PHP?
  • В чем разница между библиотеками и расширениями?
  • Как подходит php.ini?
  • Как подходит PEAR?
  • Как импортировать/включать библиотеки?
  • Если я создаю свою собственную библиотеку, какой лучший способ ее упаковать и распространять?

Спасибо и извините за многочастность...

4b9b3361

Ответ 1

Пара очков...

В PHP нет встроенной инфраструктуры импорта, такой как python, java или .net. Существует несколько способов использования библиотек в PHP.

  • скомпилировать их в двоичный файл PHP. Это самый продвинутый способ, и обычно это не желательно, если у вас нет особых потребностей.

  • Установите их как модули PHP на сервере и включите их в PHP.ini. С точки зрения программиста PHP эти расширения являются частью PHP - всегда доступны. Это просто проще добавлять и удалять, не перестраивая сам PHP.

  • Установите PHP-код на сервере где-нибудь и включите() его в свой PHP script.

  • Сохраните копию библиотеки в свой проект и включите ее в свой PHP script.

- Страница На базовом уровне код является либо частью интерпретатора (статического или динамического), либо это простой старый PHP-код, который включает() ed в ваш проект.

В ваших целях я могу только предложить вам придерживаться стандартного дистрибутива PHP (выбрать хорошую ОС Linux и использовать его PHP). Тогда почти все библиотеки, которые вам понадобятся на уровне интерпретатора, доступны как дополнительные пакеты, и сложность этого остается за теми, кто делает это каждый день.

В RedHat/Centos вы можете запустить:

yum install php php-memcached php-gd php-pecl

- Страница Что касается всех других библиотек, которые вы, возможно, захотите использовать, скорее всего, лучше всего использовать хорошую фреймворк PHP, которая будет заботиться обо всем этом для вас.

Некоторые примеры:

(не в любом порядке, только те, которые приходят на ум)

При условии, что вы использовали стандартный подход использования RPM или аналогичный для управления скомпилированными в аспектах PHP и расширений, тогда хорошая надежная структура позаботится о включении всего вашего дополнительного кода библиотеки PHP, который вам нужен.

В чем заключается конечный результат: вы сосредоточены на доставке продукта, а не на всю инфраструктуру, которую вам в противном случае пришлось бы изучать и изобретать.

- Страница php.ini анализируется и запускается при запуске PHP (каждый раз для командной строки, один раз на сервер запускается в apache). Он определяет множество настроек, включает в себя множество модулей, настраивает эти модули и т.д.

Фактически вы можете переопределить некоторые параметры в php.ini с помощью функции ini_set() в PHP. Однако это действует только для некоторых настроек. Другие должны быть установлены до запуска script.

При работе под 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 с хорошим веб-сайтом.

- Страница Может быть, немного бессвязно, но я надеюсь, что это укажет вам в правильном направлении.

Ответ 2

Все напрямую связаны с PHP:

  • Обычно просто копируйте и удостоверьтесь, что что-то, что хочет его использовать, знает, где оно находится.
  • Расширение обычно записывается на C и загружается интерпретатором, тогда как библиотека обычно означает собственную библиотеку PHP.
  • Не знаю, что вы хотите знать здесь. Ini загружает расширения и настраивает некоторые настройки. Он не связан напрямую с установками,... Здесь вы можете настроить свой путь include (или что-то).
  • Вы можете установить с ним библиотеки;) Не знаете, что вы хотите знать.
  • обычно require(_once) или include(_once). Для классов вы можете настроить автозагрузчик. Обратитесь к руководству по PHP.
  • package/Archive (zip, gz, tarball,..) и сделать ссылку для скачивания? Также: Не знаю, что вам нужно.

Если вы хотите писать библиотеки PHP и хотите простой способ для упаковки и распространения, посмотрите на PEAR.