从Typo3外部调用Typo3 php函数

时间:2018-02-02 13:43:24

标签: php typo3 extbase

我尝试在不同的窗口中打开一个extbase视图。 为此,我调用了该函数 \typo3\sysext\extbase\Classes\Mvc\Controller\AbstractController->redirect()。 但由于abstract class AbstractController implements ControllerInterface,它失败了。找不到ControllerInterface。它位于文件夹中,但文件夹未包含在路径get_include_path()中。 无论如何在没有更改Typo3文件的情况下解决这个问题?

1 个答案:

答案 0 :(得分:2)

从表面上看,这看起来像是一个典型的类加载问题,所以我会描述那里的陷阱,以防有人来搜索那种类型的错误并找到这个帖子。

如果您通过composer安装了TYPO3,请确保从外部文件加载composer autoload文件。 Composer路径不会出现在PHP包含路径中,您永远不必包含除composer自动加载文件之外的任何其他文件。

如果您没有通过编辑器安装,需要在TYPO3上下文中运行您的脚本。只有这样才能加载课程。

那就是说:类加载处于非活动状态表明你正试图在TYPO3之外完全使用TYPO3功能。简单地在TYPO3上下文之外使用TYPO3类并不是一件容易的事 - 尤其不是Extbase类,尤其不是控制器。配置,数据库和请求处理有很多依赖关系。我强烈反对尝试这样做。

即使生成指向控制器操作的链接,也需要计算请求哈希值,而后者又需要访问TYPO3配置和数据库。所以很有可能,你所尝试的东西根本不可能 - 你需要在TYPO3环境中进行。