Расширение PHP против библиотеки (и можно ли ее преобразовать) - PullRequest
6 голосов
/ 10 февраля 2011

Некоторые пакеты php wamp / lamp поставляются с расширениями php, такими как php_amf, php_db, php_gd2, и мне просто нужно активировать расширение или установить расширение, если оно не поставляется по умолчанию.

Мой вопрос в общем, как эти расширения отличаются от библиотек? и, в частности, я хочу знать, можно ли превратить расширение в библиотеку , которая загружается в сам проект?цель состоит в том, чтобы вызвать библиотеку без специальных установок, таких как расширения php.Иногда, когда вы используете виртуальный хостинг, у вас недостаточно прав для установки нового расширения.

Ответы [ 3 ]

9 голосов
/ 10 февраля 2011

Расширение PHP - это программа на C или C ++, обернутая вокруг Zend Engine, которая предоставляет функции и классы PHP в рамках установки PHP.

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

Хотя это возможно и довольно легко (если у вас достаточно знаний C ++), чтобы преобразовать библиотеку PHP в расширение, обратный процесс может быть утомительным процессомпотому что программа C ++ может использовать функции и объекты, которые недоступны в PHP.

Проще преобразовать библиотеку PHP в расширение, потому что, очевидно, все функции PHP доступны в C, так или иначе,поскольку PHP написан на C. Однако обратное не всегда верно.

4 голосов
/ 10 февраля 2011

Расширение PHP написано на другом языке (обычно C или C ++) и расширяет PHP, позволяя ему делать то, что на практике невозможно сделать с PHP.Например, прямое взаимодействие с операционной системой или веб-сервером, которое еще не поддерживается встроенной функцией PHP.Расширения также позволяют повторно использовать существующий код, написанный на других языках, из PHP;даже если теоретически библиотека может быть переписана на PHP, это будет довольно непрактично, и повторное использование кода дает больше возможностей с меньшими усилиями и позволяет без особых усилий вносить будущие обновления в код.

Библиотека PHP - это просто общая коллекция кода PHP, поэтому, хотя она позволяет повторно использовать код более чем одному разработчику, она не позволяет вам делать то, для чего вы (теоретически) не могли бы написать код PHP длясебя.

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

2 голосов
/ 10 февраля 2011

можно ли превратить расширение в библиотеку

Не автоматически, нет. Расширение не написано на PHP; поэтому он не может быть просто преобразован. Конечно, можно написать PHP, который выполняет эквивалентные операции, но такой скрипт будет значительно медленнее, чем исходное расширение, потому что PHP относительно неэффективен для вычислений (по сравнению с родными / скомпилированными языками).

...