Мой вопрос в том, можно ли вызывать fcsh Flex из PHP-скрипта. Вот предыстория:
Я создал простой процесс, который создает простой викторины / учебник путем преобразования текстового файла в файл .mxml и компиляции в .swf-файл с использованием компилятора mxmlc. Это хорошо работает из командной строки, но я хотел облегчить процесс, создав для этого веб-интерфейс. Мои первоначальные попытки с помощью функции exec () PHP не сработали. Сценарии Python, которые я использую для создания файла .mxml, работают нормально (с помощью exec ()), но мне не удалось заставить компилятор mxmlc работать.
После поиска в Интернете и на этом сайте я считаю, что использование fcsh (вместо mxmlc) может быть способом. Использование fcsh наверняка скомпилирует файл .mxml быстрее (после первого запуска), и я думаю, что fcsh можно запустить как службу, которая может быть вызвана из PHP.
С другой стороны, возможно, я приближаюсь к этому неправильно. Было бы лучше написать приложение Flex, которое вызывает fcsh и избегать использования PHP?
Изменить: Использование fcshctl, как hasseg, предложенное в его ответе ниже, очень хорошо работало. Спасибо Али.
Проблема с вызовом fcsh изнутри скриптов заключается в том, что он работает как интерактивная оболочка, а не принимает аргументы командной строки, компилирует и возвращает статус выхода. Есть разные способы обойти это, которое я перечислил в этом блоге , где я в основном говорю о fcshctl
(это мое собственное решение для этого), но в нижней части сообщения я также перечислил другие аналогичные решения для интеграции fcsh в нестандартные рабочие процессы сборки.
Есть несколько других способов в php для выполнения внешнего скрипта. Это exec (), passthru (), system () и backticks, то есть ключ слева от клавиши 1. У каждого есть другая цель и механизм возврата.
Возможно, вам придется поставить команду, выполняющую ваш исполняемый файл, в скрипт и вызвать этот скрипт с помощью одной из этих функций.
Есть ли конкретная причина, по которой вы не можете напрямую использовать mxmlc
? Похоже, было бы легче позвонить, чем fcsh
. Просто укажите все параметры вашего компилятора в файле XML, запустите его как mxmlc -load-config path/to/config.xml
. Вы можете найти пример формата конфигурации XML в FLEX_HOME/frameworks/flex-config.xml
.