Class' Vendor \ PackageName \ ClassName'找不到新创建的Laravel包

时间:2017-10-09 10:34:47

标签: php laravel laravel-5 composer-php laravel-5.5

我在运行新创建的Laravel套餐时出现问题,请查看https://github.com/Younesi/laravel-aparat

我可以通过Composer下载它没有任何问题,它可以通过Laravel自动发现但是当我尝试使用它时,它会给我以下错误,即找不到类。

  

Class' Younesi \ LaravelAparat \ Aparat'找不到

我的服务提供商代码如下:

/**
 * Register the service provider.
 *
 * @return void
 */
public function register()
{
    $this->app->bind('aparat', function ($app) {
        return new Aparat;
    });

}

/**
 * Get the services provided by the provider.
 *
 * @return array
 */
public function provides()
{
    return array('aparat');
}

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

看一下它的工作正常,在该软件包的composer.json中有:

 "autoload": {
    "psr-4": {
      "Younesi\\laravelAparat\\": "src"
    }
  },

请注意laravel这里没有大写字母,所以在你的代码中你应该这样导入:

use Younesi\laravelAparat\Aparat;

而不是:

use Younesi\LaravelAparat\Aparat;

我也看到你是这个软件包的作者,所以我建议使用标准转换(以大写字母开头的命名空间)而不是当前的命名空间。

进一步了解包代码,我还看到在服务提供商中有:

namespace Younesi\LaravelAparat;

命名空间所以如果用小写字母自动加载它并且使用大写字母命名空间

,它就不会有用了

答案 1 :(得分:0)

在某些情况下会出现注册问题,缓存问题等。请尝试以下解决方案之一:

  • 注册您的提供者(在main composer.json中,然后在config / app.php [provider& alias]中),然后运行composer dump-autoload
  • 确保您已启动套餐:转到文件夹,然后转到composer init
  • 尝试php artisan config:cache或删除bootstrap/cache/
  • 中的所有内容