繁体   English   中英

从 TYPO3 外部调用 TYPO3 PHP 函数

[英]Call TYPO3 PHP function from outside TYPO3

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

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

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

如果您没有通过 Composer 安装,您需要在 TYPO3 上下文中运行您的脚本。 只有这样,类加载才能工作。

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

甚至生成指向控制器操作的链接也涉及计算请求哈希,这反过来又需要访问 TYPO3 配置和数据库。 因此,您尝试的操作很可能根本不可能 - 您需要在 TYPO3 上下文中进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM