Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PhpStorm自动完成我的类,但我得到的类在Laravel 5中找不到_Php_Laravel 5_Composer Php_Phpstorm - Fatal编程技术网

PhpStorm自动完成我的类,但我得到的类在Laravel 5中找不到

PhpStorm自动完成我的类,但我得到的类在Laravel 5中找不到,php,laravel-5,composer-php,phpstorm,Php,Laravel 5,Composer Php,Phpstorm,我已经将我的类正常地添加到了Laravel下面的app目录中。今天,当我添加一个具有目录结构的API客户机时,我无法使一个类在LaravelPSR-4默认结构中被识别 我的API客户端目录结构是: app -- MySubdirectory -- Partners + |- Partner1 |- Partner2 +

我已经将我的类正常地添加到了Laravel下面的
app
目录中。今天,当我添加一个具有目录结构的API客户机时,我无法使一个类在LaravelPSR-4默认结构中被识别

我的API客户端目录结构是:

app -- MySubdirectory -- Partners +
                                  |- Partner1
                                  |- Partner2 +
                                              |- Includes -- (other subdirectories)
                                              |- Version -- (other subdirectories)
                                              |- ApiClient.php
现在,我创建了一个模型MyModel,它位于应用程序下面

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    /**
     */
    protected $api;

    /**
     * Returns MyModel API Client connected to the API.
     */
    public function __construct()
    {
        parent::__construct();

        // ApiClient is not recognized thought PhpStorm do recognized.
        $this->api = \ApiClient::factory(PROTOCOL_JSON, VERSION_DEFAULT);

        $credentials = json_decode(OtherModel::where('name', 'some_name')->configuration);

        $this->api->setConnectId($credentials['connect_id']);
        $this->api->setSecretKey($credentials['secret_key']);
    }
}
PhpStorm建议使用该类,显然识别出一个自动加载的类

但是当我运行脚本时,我得到了一个错误:

FatalThrowableError in MyModel.php line 20: 
Class 'ApiClient' not found
好的,
composer autoload
可能有一些问题-直到现在我创建的其他类都是由
PHP
自动识别的

因此,我运行了
composer dump autoload-o
并验证了
autoload_classmap.php
文件,实际上
app
目录下的所有其他子目录/类都被识别,减去
MySubdirectory
MySubdirectory
下的其他子目录和类

My composer.json文件具有基本的自动加载部分:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
那么,为什么运行
composer dump autoload
时无法捕获
MySubdirectory
及其下的其他子目录和类呢


以及为什么PhpStorm会捕获ApiClient.php?

需要更多信息。您的
ApiClient
类是如何定义的?它使用了什么名称空间?等等。但一般来说——IDE会自动完成类名,而不管其位置如何(即使它位于错误的文件夹中)。哦,谢谢@LazyOne,您已经看到了我面前的一个跨度:)。ApicClient中命名空间的定义不正确。我已经下载了这个包(一个旧的包),并且没有更正名称空间类以符合PSR-4Laravel名称空间结构。
"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},