Расслоение PECL-расширение в phar

PHP библиотека ncurses не устанавливается при обычной установке PHP, вы должны установить его как Расширение PECL

Я хотел бы связать это в приложении php phar.

Это возможно и как это сделать?

1

Решение

Я согласен с ответом cweiske.

Я понимаю, почему вам было бы интересно сделать это, но реальность такова, что предварительное условие PHP для .phar означает, что они никогда не будут автономными исполняемыми файлами. Они похожи на файлы Java .jar. В каждом случае требуется соответствующая среда выполнения.

Предлагаемое решение PHP простое:

if (!extension_loaded('ncurses')) {
echo "The ncurses Extension is required.  Use PECL or your system package manager to install it.  See http://php.net/ncurses for more information."exit;
}

С учетом сказанного, если мое предположение верно, то какую бы программу вы ни пытались создать с использованием ncurses, вероятно, лучше написать на автономном языке, который можно скомпилировать в исполняемый файл (c, c ++).

Или, по крайней мере, язык, который может обрабатывать упаковку приложений надежным и простым способом (python, Ruby, Golang). В частности, с таким большим интересом к Golang для кроссплатформенных инструментов, таких как Docker, и с терминальными библиотеками, такими как termui, Я думаю, вы должны подумать, действительно ли PHP является правильным инструментом для приложений, которые вы создаете.

0

Другие решения

Пакеты PECL написаны на C, который должен быть скомпилирован для конкретной версии PHP и операционной системы (и других переменных, таких как ZTS и архитектура процессора).

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

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

1

По вопросам рекламы [email protected]