我尝试在不同的窗口中打开一个extbase视图。
为此,我调用了该函数
\typo3\sysext\extbase\Classes\Mvc\Controller\AbstractController->redirect()
。
但由于abstract class AbstractController implements ControllerInterface
,它失败了。找不到ControllerInterface
。它位于文件夹中,但文件夹未包含在路径get_include_path()
中。
无论如何在没有更改Typo3文件的情况下解决这个问题?
答案 0 :(得分:2)
从表面上看,这看起来像是一个典型的类加载问题,所以我会描述那里的陷阱,以防有人来搜索那种类型的错误并找到这个帖子。
如果您通过composer安装了TYPO3,请确保从外部文件加载composer autoload文件。 Composer路径不会出现在PHP包含路径中,您永远不必包含除composer自动加载文件之外的任何其他文件。
如果您没有通过编辑器安装,将需要在TYPO3上下文中运行您的脚本。只有这样才能加载课程。
那就是说:类加载处于非活动状态表明你正试图在TYPO3之外完全使用TYPO3功能。简单地在TYPO3上下文之外使用TYPO3类并不是一件容易的事 - 尤其不是Extbase类,尤其不是控制器。配置,数据库和请求处理有很多依赖关系。我强烈反对尝试这样做。
即使生成指向控制器操作的链接,也需要计算请求哈希值,而后者又需要访问TYPO3配置和数据库。所以很有可能,你所尝试的东西根本不可能 - 你需要在TYPO3环境中进行。