簡體   English   中英

找不到作曲家安裝的課程

[英]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;

  • 將類注入我的services.yml中

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM