[英]Can't find class installed by composer
我已經使用以下命令在我的Symfony2應用程序中下載了createdend-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 ...
在使用語句中,NetBeans建議使用類名稱btw。 為什么它不起作用,我該如何解決?
根據libs文檔: https : //github.com/campaignmonitor/createsend-php,您需要自己請求文件
require_once 'csrest_lists.php'
代替
use \CS_REST_Lists;
盡管看起來好像確實將composer.json設置為自動加載它們,但奇怪的是use語句不起作用。
這不是解決方案,但對我有用。
您無需手動添加類映射。 如果查看vendor / composer / autoload_classmap.php ,可以看到添加了composer:
'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致命錯誤:在1779行的/my/code/path/var/cache/dev/appDevDebugProjectContainer.php中找不到類'CS_REST_List'
因此,我試圖在我的services.yml中插入一個不同的類映射(從phpunit中獲取ig File_Iterator ),我認為像phpunit這樣的庫不會有問題,並且可以正常工作。 然后我用CS_REST_List替換了services.yml File_Iterator並神奇地工作了...
所以...不確定是怎么回事,但我認為問題出在symfony的容器而不是作曲家。 我用的是symfony 2.5.1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.