TYPO3:"inject" 是否意味着 "require"?
TYPO3: Does "inject" imply "require"?
在我的TYPO3 Extbase 扩展中,我广泛使用了其他扩展的服务。所有提供此类外部服务的变量都通过注入来填充。
问题是:如果目标扩展(或服务文件)不存在,会发生什么情况?我的变量有值 NULL
并且 PHP 抛出异常 对非对象的函数调用 .
使用外部功能和 require_once
指令来保护此类文件不是更好吗?
确保安装其他扩展的正确方法是在您的 ext_emconf.php
中将它们标记为 "required"(也可能在您的 composer.json
中,不确定)。
这将确保所需的 扩展 存在 - 但不会确保所需的服务仍然存在于这些扩展中。它们可能会在以后的版本中被删除或重命名。为了避免这种情况,您可以需要特定版本的扩展,或者您可以尝试仅使用他们的 public API.
在我的TYPO3 Extbase 扩展中,我广泛使用了其他扩展的服务。所有提供此类外部服务的变量都通过注入来填充。
问题是:如果目标扩展(或服务文件)不存在,会发生什么情况?我的变量有值 NULL
并且 PHP 抛出异常 对非对象的函数调用 .
使用外部功能和 require_once
指令来保护此类文件不是更好吗?
确保安装其他扩展的正确方法是在您的 ext_emconf.php
中将它们标记为 "required"(也可能在您的 composer.json
中,不确定)。
这将确保所需的 扩展 存在 - 但不会确保所需的服务仍然存在于这些扩展中。它们可能会在以后的版本中被删除或重命名。为了避免这种情况,您可以需要特定版本的扩展,或者您可以尝试仅使用他们的 public API.