找不到作曲家安装的类



我已经在Symfony2应用程序中下载了createsend php库,使用:

composer require  campaignmonitor/createsend-php

它已经成功下载,但当我尝试使用它时…

use CS_REST_Lists;
...
public function testNewsletterAction() {
//... retrieving the keys
$api = new CS_REST_Lists($listId, $apiKey);
var_dump($api->get());
exit;
}

我得到以下错误:

ClassNotFoundException: Attempted to load class "CS_REST_Lists" from the global namespace in ...

在use语句中,NetBeans建议使用类名btw。为什么它不起作用,我该如何修复它?

根据libs文档:https://github.com/campaignmonitor/createsend-php你需要自己要求文件

require_once 'csrest_lists.php'

而不是

use CS_REST_Lists;

尽管看起来他们的composer.json是为了自动加载它们而设置的,所以use语句不起作用是很奇怪的。

这不是一个解决方案,但它对我有效…

您不需要手动添加类映射如果您查看vendor/comporter/autoload_classmap.php,您可以看到添加了composer:

'CS_REST_CLASSES'=>$vendorDir.'/campaignmonitor/createsend php/csrest_administrators.php',

然后我尝试了两件事:

  • 在某处实例化我的类:

$cm = new CS_REST_Lists;

  • 在我的服务中注入类。yml

my.service: class: MyNamespaceMyService arguments: [@campaign_monitor]

campaign_monitor:
class: CS_REST_Lists
arguments: ['', %campaignmonitor%]

奇怪的部分是实例化一直在工作,但注入触发:

PHP致命错误:在第1779行的/my/code/path/var/cache/dev/appDevDebugProjectContainer.PHP中找不到类"CS_REST_List">

所以我试图在我的服务中注入一个不同的类映射。yml(即phpunit中的File_Iterator)我认为像phpunit这样的库不会成为问题,并且它起了作用。然后我用CS_REST_List替换了services.ymlFile_Iterator,它神奇地起了作用。。。

所以。。。不确定出了什么问题,但我认为问题来自symfony的容器,而不是composer。我使用了symfony 2.5.1

相关内容

  • 没有找到相关文章

最新更新