1

我一直在尝试使用 Phalanger 让 codeigniter 在 .Net 平台上工作。这只是一个测试练习,我想将 Codeigniter 实际转换为 dll,以便我可以从 wwwroot/inetpub 文件夹中删除源代码,并在发布时将编译后的 dll 放入 web 根文件夹中。

在执行此操作时,我使用 phalanger 在 IIS 上成功运行了 codeigniter 默认页面。然后我使用 phalanger 命令编译它,并将所有 phalanger dll 放入他们的 wiki 上描述的 bin 中。所以现在我已经将 dll 以及源代码编译到了 web 根目录中。这也工作正常。

当我将 codeigniter 的源(包括文件夹系统和应用程序的 php 文件)移出 webroot 时,它停止工作。正如对 phalanger 特性的描述,编译后的 dll 应该可以工作,但不能正常工作。相反,每次我们访问页面时,它都会从 php 文件中加载它。

有谁知道如何将其转换为 dll 并仅托管 dll 而不是源代码。或者我在这里遗漏了一些东西。感谢您在这方面的任何帮助。

4

1 回答 1

0

Phalanger 实际上从 bin/WebPages.dll(以及配置中指定的其他 DLL)加载脚本。只有在提供的 DLL 中找不到该脚本时,它才会查看文件系统。

问题可能是由以下事实引起的,它仅适用于包含语句(include、require、include_once、require_once)。

文件系统函数仅适用于文件系统;在 PHP 中检查各种文件的存在和内容是常见的做法。主要是为了检查配置是否存在,插件被加载,从脚本中解析额外的注释等。

因此,您可以删除 DLL 中已经存在的所有 .php 文件,但您应该保留 CodeIgniter 通过 fs 函数使用的这些文件。

于 2012-02-23T17:09:07.390 回答