我一直在尝试使用Phalanger让codeigniter在.Net平台上工作。这只是一个测试练习,我想实际将Codeigner转换为dll,这样我就可以从wwwroot/inetpub文件夹中删除源代码,并在发布时将编译后的dll放入web根文件夹。
在做这件事的时候,我成功地使用phaleger在IIS上运行了codeigniter默认页面。然后我使用phalanger命令编译它,并将所有的phalanger dll放入他们的wiki上描述的bin中。所以现在我已经将dll以及源代码编译到了web根目录中。这也很好。
当我将codeigniter的源代码(php文件,包括文件夹系统和应用程序)移出webroot时,它就停止工作了。正如在phaleger特性中所描述的,编译后的dll应该可以工作,但它不工作。相反,每次我们访问页面时,它都是从php文件加载的。
是否有人知道如何将其转换为dll,并在上只托管dll而不托管源代码。或者我错过了什么。感谢在这方面提供的任何帮助。
Phalanger实际上从bin/WebPages.dll(以及配置中指定的其他dll)加载脚本。只有当在提供的DLL中找不到脚本时,它才会查看文件系统。
这个问题可能是因为它只在包含语句(include、require、include_once、require_once)中起作用。
文件系统功能仅适用于文件系统;在PHP中,检查各种文件的存在和内容是常见的做法。主要是检查配置是否存在,加载插件,解析脚本中的附加注释等。
因此,您可以删除DLL中已经存在的所有.php文件,但应该保留CodeIgniter通过fs函数使用的这些文件。