【问题标题】:Add .pm file to CakePHP将 .pm 文件添加到 CakePHP
【发布时间】:2013-08-21 12:27:06
【问题描述】:

我有一个包含 30 多个订阅者的 .pm 文件。这些 subs 中的功能需要从我的 CakePHP 页面中调用。在 CakePHP 项目中包含 .pm 文件以便我可以从 View 或 Controller 调用 subs 的 Cake 方法是什么?

我应该把 .pm 文件放在哪里?我应该如何将文件包含到 CakePHP 项目中?如何调用 .pm 文件中的 subs?

我在 CakePHP 文档中找不到任何内容。看起来应该在的地方是在App里,但是我找不到任何想做的事情。

【问题讨论】:

  • .pm 文件通常包含 Perl 代码。是什么让您认为 CakePHP 可以使用它们?
  • 是的,.pm 文件通常包含 Perl 代码。如何从 CakePHP 调用它们?
  • CakePHP 无法调用 Perl 代码。这是... PHP。如果你有 perl scripts(不仅仅是一些函数),你也许可以将它们作为子进程调用并在 PHP 代码中获取它们的输出。
  • 我可以将 .pm 文件重命名为 .pl 文件,然后使用“passthru()”从 PHP 调用它们。不过,这似乎不太“Cake-y”,我希望有一种 Cake 方式来做到这一点。

标签: cakephp


【解决方案1】:

CakePHP 是一个 PHP 框架。根据Wikipedia.pm 文件包含基本由函数定义组成的 Perl 源代码。从 PHP 的角度来看,这与丰田的蓝图一样可重用。我想从技术上讲,编写一个能够编译 Perl 代码并将其方法公开给 PHP 函数的 PHP 扩展是可行的,但这是一项艰巨的任务。

显而易见的解决方法是编写一个 Perl 可执行文件来加载模块、执行您需要的任何操作并以 PHP 可以使用的格式打印输出。之后,program execution functions 就是你的朋友了。

【讨论】:

  • 是的,我可以只使用 PHP 的东西,但我希望有一个官方的 CakePHP 方法可以做到这一点。听起来应该没有。
【解决方案2】:

根据您的 perl 脚本的工作方式(我不知道 .pm 和 .pl 之间的区别是什么),您可以创建模型或组件并使用 PHP 的 exec 函数访问数据,如下所示:

exec("path_to_perl /path/to/script.pl arguments to be passed",$output);

将 perl 输出包装在您的模型/组件方法中。比在您的控制器中只需调用模型/组件方法并传入相关参数即可。

注意:只需确保在运行此命令时您已正确保护脚本中的输入/输出数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-05
    • 2011-06-16
    • 2015-10-05
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多