Intereting Posts
Как сделать переменную приватной для черты? Выбор записей между двумя датами с использованием PHP из базы данных MySql Создание URL тщеславия Генерация DomPDF для китайских символов XAMPP – «Эта веб-страница недоступна» PHP xpath – найти элемент со значением, а также получить элементы до и после элемента В PHP, какие различия между NULL и установкой строки равны двум одинарным кавычкам Magento – настраиваемый модуль не работает google access api с php curl Symfony подключает идентификатор пользователя от объекта CodeIgniter – удалить «указатель» из URL как читать файлы, сохраненные на сервере, используя php и совершать вызовы на эту php-страницу, используя ajax для отображения списка файлов Записывать значения базы данных в файл .ini в соответствии с параметром INI с помощью PHP Codeigniter Как преобразовать этот формат времени – 1480550400000 + 0000 в формате Y / m / d date, используя php Как лучше передать сообщение пользователю между страницами

Объединение нескольких PHP-скриптов в один файл

У меня есть PHP-скрипт, который включает одну или две другие библиотеки, которые зависят от использования оператора include . Чтобы сделать его более переносимым, я хотел бы как-то «скомпилировать» сценарий и include d библиотеки в один скрипт PHP (точно так же, как ack включает все его зависимости в Perl в одном файле). Есть ли простой способ сделать это в PHP?

Уточнение: компиляция в исполняемый файл Windows может быть (частью) приемлемым решением, но сценарий по-прежнему должен выполняться на * nix, где лучше иметь исходный код PHP с ' #!/usr/bin/env php ' at вершина.

Я хочу, чтобы иметь возможность удалить один файл в $ PATH где-нибудь на любой ОС и заставить его работать без необходимости установки дополнительных библиотек PHP.

Новые версии PHP поддерживают концепцию, похожую на jar-файлы в java. Взгляните на phar . Вы можете упаковать все ваши файлы приложений в один архив и запустить их.

Пакеты PHP ScriptJoiner или даже лучше JuggleCode могут помочь:

Оба они построены на PHP-Parser (http://packagist.org/packages/nikic/php-parser), что упрощает присоединение к скриптам.

Там нет встроенного способа сделать это. Я бы рекомендовал упаковать ваш код в каталог и распространять его таким образом. Я делаю это с помощью PHP, я помещаю код в каталог «something.module», а затем итерацию через каталог модулей, включая основной файл под каждым каталогом .module. Но для чего-то более простого, у вас может быть такая структура, как:

 my_package/ my_package.php include1.php include2.php 

my_package.php будет include(realpath(dirname(__FILE__).'/inclue1.php')) . Все остальные записи просто должны include('my_packahe/my_package.php')

В ручном режиме вы просто удаляете все ссылки include / require и объединяете файлы вместе. перед конкатенацией также следует разбить открытые и конечные теги («<? php», «?») и добавить их в окончательный файл.

Для одной или двух небольших библиотек она должна – надеюсь, – «просто работать» …

phc позволяет это. Просто запустите его с флагом --include , и он объединит весь ваш код (ну, каждый аргумент в include , require и т. Д.) В один файл PHP.

Если вам нравится, он также может скомпилировать его, но это не обязательно, чтобы объединить их все в один файл.

Вы можете написать собственный скрипт, который открывает все файлы, удаляет открывающие и закрывающие теги и объединяет их вместе и сохраняет как один файл. должно быть довольно легко сделать.

Или вы можете использовать компилятор php. Это будет немного больше, чем то, что вы ищете, но если вам нужен только один файл, вы запускаете проект dev через один из них.

Вы также можете использовать встроенный компилятор байт-кода php для компиляции всего байтового кода и вставки его в один файл.