Phalanger и Zendframework

#php #zend-framework #clr #incompatibility #phalanger

#php #zend-framework #clr #несовместимость #phalanger

Вопрос:

Zend framework — это просто набор классов PHP.

Phalanger — это полноценный компилятор PHP.

Итак, почему я не могу перенести приложение на основе Zend Framework на Phalanger??

Я получил следующую ошибку при запуске приложения в Phalanger:

строка 13:

 includePaths.library = APPLICATION_PATH "/../library"
  

ошибка:

 <b>Error</b>: Uncaught exception 'Zend_Config_Exception' with message 'Parse error on line 13' in D:wwwmehr-phalangerlibraryZendConfigIni.php:215:13
Stack trace:
#11 : Process
#10 : ProcessRequest
#9 : ProcessRequestNoDemand
#8 : ProcessRequestInternal
#7 : System.Web.IHttpAsyncHandler.BeginProcessRequest
#6 : ResumeSteps
#5 : ExecuteStep
#4 : System.Web.HttpApplication.IExecutionStep.Execute
#3 : <Main>
#2 D:wwwmehr-phalangerpublicindex.php(40,1): Zend_Config_Ini->__construct
#1 D:wwwmehr-phalangerlibraryZendConfigIni.php(215,13): Zend_Config_Ini->_loadIniFile
#0 D:wwwmehr-phalangerlibraryZendConfigIni.php(215,13): Zend_Config_Ini->_parseIniFile
#12 {main}.<br/><br/> 
  

Комментарии:

1. Итак … как выглядит строка 13?

Ответ №1:

вы должны использовать расширенный путь, удалить APPLICATION_PATH и поместить полный каталог

Ответ №2:

Во-первых, у вас синтаксическая ошибка в вашем коде, вы пропускаете «.» (точка) между APPLICATION_PATH и "/../library"

Во-вторых; Phalanger сможет компилировать ZendFramework (ZF), однако он не поддерживает некоторые функции, которые использует ZF. Вы можете либо сообщить о проблеме https://github.com/devsense/phalanger/issues или взгляните на Пичпи (github.com/iolevel/peachpie ), который является реинкарнацией и преемником Фалангера, и сообщить о проблеме там

Ответ №3:

Хм, разве phallanger не является транслятором для PHP => .NET, который компилирует ваш исходный код в код dotnet? Возможно, я ошибаюсь, но я помню, как пробовал это довольно давно из любопытства.

РЕДАКТИРОВАТЬ: Нет, я посмотрел, это языковая библиотека для dotnet. Это позволяет вам кодировать .NET с использованием синтаксиса в стиле PHP. Поэтому вы не сможете использовать ZendFramework там, вы кодируете ASP.NET но с использованием синтаксиса PHP. Не ожидайте, что там что-то будет работать от php…

Комментарии:

1. Нет ответа, это откровение, что ответа нет, поскольку парень вообще не поступает правильно…

2. Phalanger компилирует исходный код PHP в собственные сборки .NET. wiki.php-compiler.net/Compilation

3. Phalanger компилирует стандартный код PHP в сборки .NET 4.0 (EXE или DLL). php-compiler.net/features

4. Я серьезно не знаю, почему я проголосовал за это.. Мой ответ совершенно прекрасен, почему вы хотите использовать Zend Framework с Phalanger… Вы пишете в dot net? Используйте функции dot net. ИМО, попытка создать продукт на php, который можно было бы использовать с Windows server, путем короткого замыкания php на реальную точечную сеть, но при этом использовать целую инфраструктуру, такую как Zend, является самоубийственной и контрпродуктивной… Создайте два проекта, один в реальном DotNet, а другой на PHP с помощью Zend, и предоставьте своим пользователям наилучший возможный код и производительность…

5. неверно — Phalanger — это компилятор с поддержкой среды выполнения и библиотек. Он создает библиотеку / исполняемый файл .NET, полностью совместимый с поведением PHP (Drupal, WordPress, phpBB, … работает на .NET при компиляции PHalanger). Есть несколько различий, но большинство приложений php работают нормально. ПРИМЕЧАНИЕ: Phalanger немного устарел (поддерживает до PHP 5.4). Рекомендую взглянуть на Peachpie ( github.com/iolevel/peachpie )