我正在将一些php类集成到使用extension_builder创建的TYPO3 6.2扩展中。extbase版本也是6.2。
我想我遵循了https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Autoloading/Index.html的指示
>
命名类的空间(正确吗?)
因为我认为我正在使用命名空间,所以我没有以Tx_MyExtension_Utility_FooBar
的形式命名类
按照https://wiki.typo3.org/Dependency_Injection上的建议,用@注入
注释注入类
以下是有关文件:
EXT:一个事件/类/实用程序/一些lass.php:
class SomeClass {
// do something
}
EXT:apievents/Classes/Controller/importCommand控制器。php
<?php
namespace STUBR\Apievents\Controller;
// Copyright, Package, License ...
class ImportCommandController extends \TYPO3\CMS\Extbase\Mvc\Controller\CommandController {
/**
* @var \namespace STUBR\Apievents\Utility\SomeClass
* @inject
*/
protected $SomeClass;
// do something
}
当我运行它(这是一个调度程序任务)时,它会给我一个格式很好的错误
执行任务“Extbase CommandController任务(Extbase)”失败,并显示以下消息:无法分析类:命名空间STUBR\Apievents\Utility\SomeClass可能未加载或没有自动加载程序?
所以要加载的类必须缺少一些东西。我错过了什么或者做错了什么?
将注入代码更改为
/**
* @var \STUBR\Apievents\Utility\SomeClass
* @inject
*/
protected $someClass;
在@var
注释中,您只需指定完全限定的类名。没有更多了。一点也不少。确保在实用程序类中也设置了命名空间
namespace STUBR\Apievents\Utility;
本文向大家介绍PHP命名空间和自动加载类,包括了PHP命名空间和自动加载类的使用技巧和注意事项,需要的朋友参考一下 PHP的命名空间(namespace)是php5.3之后才有的。这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。 为什么php中要使用namespace? 假设如果不使用namespace,那么每个类在一个项目中的名字就必须是固定的。因为php在
问题内容: 当我尝试使用自动加载和命名空间时出现此错误: 致命错误:* 在 第10行的 /usr/local/www/apache22/data/public/php5.3/test.php中 找不到类’Class1’ * 谁能告诉我我在做什么错? 这是我的代码: Class1.php: test.php: 问题答案: Class1不在全局范围内。 请参见下面的工作示例: 编辑(2009-12-1
我想在RStudio中安装程序包,但得到了一条错误消息。 loadNamespace中的错误(j<-i[[1L]],c(lib.loc,.libpaths()),versionCheck=vi[[j]]):已经加载了名称空间'rcpp'0.12.3,但需要>=0.12.7。 我检查了Rcpp的版本,它是0.12.13版本,但安装包时加载的版本是0.12.3。在安装软件包时,有没有办法从库路径加载0
我正在开发一个使用Monolog的项目,需要Psr/log。当我通过自动加载使用Monolog时,它会抱怨缺少Psr\Log\LoggerInterface。所以我查看作曲家生成的autoload_namespaces.php,我找不到注册的Psr。 这是我的供应商/autoload_namespaces.php的内容 作曲家是否应该为composer.json文件中定义了{autoload}的所
thinkphp5 新手, 想写个脚本,类型下面这样的: 执行的时候,提示 Fatal error: Class 'app\stock\service\Toshare' not found 然后 application/stock/service/Toshare.php 这个文件是在的。 且 命名空间 app\stock\service 确认也正常。 要点: application目录下原来有ad
我使用JAXB根据定义的模式封送/解封xml文档。我注意到的是,JAXB在编组的xml中生成了不正确的名称空间。 以下是详细信息- soap.xsd-- 方案1.xsd-- schema2.xsd-- 我为jaxbMarshaller(在我的Spring配置中)定义了一个命名空间Prefix MapperImpl,它将URI映射到我定义的前缀名称。 编组的响应xml如下所示。请注意,JAXB在命名