Laravel 5 Package,Class not found

时间:2015-06-24 09:06:47

标签: php class laravel laravel-5

我有一个包文件夹,我在其中创建一个类来帮助我使用API​​。 但我收到以下错误

  

Class' Notflip \ Teamleader \ Company'找不到

我尝试使用

访问公司课程
$companies = new Teamleader\Company();

这是我的文件夹结构

enter image description here

这是我项目根目录中的composer.json

    "psr-4": {
        "App\\": "app/",
        "Notflip\\Teamleader\\": "package/Notflip/Teamleader/src"
    }

这是我的公司课程

<?php namespace Notflip\Teamleader;

use Notflip\Teamleader;

class Company extends Teamleader {

    public function all()
    {
        return $this->api("getCompanies", ['amount' => 20,'pageno' => 0]);
    }

}

1 个答案:

答案 0 :(得分:2)

您自己会感到困惑,因为您在命名空间定义中有Teamleader,然后是Teamleader文件和文件夹。 Notflip\Teamleader\Company指的是src文件夹中的公司文件。

我建议你编辑你的作曲家文件:

"psr-4": {
    "App\\": "app/",
    "Notflip\\": "package/Notflip/Teamleader/src"
}

然后将Teamleader.php重命名为Bootstrap.php或Main.php,或类似的东西。对于此示例,我将其重命名为Bootstrap.php。然后在你的Company.php文件中你应该有:

<?php namespace Notflip\Teamleader;

use Notflip\Bootstrap;

class Company extends Bootstrap {

    public function all()
    {
        return $this->api("getCompanies", ['amount' => 20,'pageno' => 0]);
    }

}

最后你对公司的打电话应该是这样的:

$companies = new \Notflip\Teamleader\Company; 

如果您没有传递任何参数,Laravel的标准做法是忽略新类调用结束时的括号。