我使用以下命令在我的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。为什么它不起作用,我该如何解决?
答案 0 :(得分:1)
根据libs文档:https://github.com/campaignmonitor/createsend-php您需要自己要求
require_once 'csrest_lists.php'
而不是
use \CS_REST_Lists;
虽然看起来他们的composer.json设置为自动加载它们,所以奇怪的是use语句不起作用。
答案 1 :(得分:0)
这不是解决方案,但它对我有用......
您不需要手动添加类图。如果查看 vendor / composer / autoload_classmap.php ,您可以见作曲家补充道:
' CS_REST_CLASSES' => $ vendorDir。' /campaignmonitor/createsend-php/csrest_administrators.php',
然后我尝试了两件事:
$cm = new \CS_REST_Lists;
my.service:
class: My\Namespace\MyService
arguments: [@campaign_monitor]
campaign_monitor:
class: CS_REST_Lists
arguments: ['', %campaignmonitor%]
奇怪的部分是实例化工作,但注入已触发:
PHP致命错误:Class' CS_REST_List'在1779行的/my/code/path/var/cache/dev/appDevDebugProjectContainer.php中找不到
所以我尝试在我的services.yml中注入一个不同的类图(i.g File_Iterator 来自phpunit)我认为像phpunit这样的库不会成为一个问题而且有效。然后我在services.yml File_Iterator 中替换为 CS_REST_List ,并且神奇地工作了......
所以...不确定出了什么问题,但我认为这个问题来自symfony的容器而不是作曲家。我使用了symfony 2.5.1