Как конвертировать Codeigniter в.net dll с помощью phalanger?
Я пытался заставить работать codeigniter на платформе.Net с использованием Phalanger. Это всего лишь тестовое упражнение, и я хочу фактически преобразовать Codeigniter в dll, чтобы я мог удалить исходный код из папки wwwroot/inetpub и просто поместить скомпилированный dll в корневую веб-папку во время публикации.
При этом я получаю страницу по умолчанию codeigniter, работающую на IIS, успешно использующую phalanger. Затем я скомпилировал его с помощью команды phalanger и поместил все dll phalanger в корзину, как описано в их вики. Итак, теперь я собрал dll, а также исходный код в веб-корень. Который тоже работает нормально.
В тот момент, когда я перемещаю исходный код codeigniter (php-файлы, включая систему папок и приложения) из webroot, он перестает работать. Как описано в функциях phalanger, скомпилированная dll должна работать, но она не работает. Вместо этого каждый раз, когда мы обращаемся к странице, она загружает ее из php-файла.
Кто-нибудь имеет какие-либо идеи, как преобразовать его в DLL и размещать только DLL, а не исходный код. Или я что-то здесь упускаю. Любая помощь в этом отношении приветствуется.
1 ответ
Phalanger фактически загружает скрипты из bin/WebPages.dll (и дополнительных библиотек DLL, указанных в конфигурации). И только если скрипт не найден в предоставленных DLL, он смотрит на файловую систему.
Проблема может быть вызвана тем, что она работает только внутри операторов включения (include,require,include_once,require_once).
Функции файловой системы работают только с файловой системой; и в PHP принято проверять наличие и содержание различных файлов. Главным образом для проверки наличия конфигурации, загрузки плагинов, анализа дополнительных комментариев из скрипта и т. Д.
Таким образом, вы можете удалить все файлы.php, которые уже находятся в DLL, но вы должны оставить эти файлы, которые CodeIgniter использует через функции fs.