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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 3

Там нет встроенного способа сделать это. Я бы рекомендовал упаковать ваш код в каталог и распространять его таким образом. Я делаю это с помощью 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')

Ответ 4

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

Для одной или двух небольших библиотек он должен - надеюсь, - "просто работать"...

Ответ 5

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

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

Ответ 6

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

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

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