我的思路:
自己写了一个工具类,由于在项目的多个地方都要用到,又不想每次用到都实例化,所以想将这个工具注册到laravel的service container中。但是不幸的是出现了一些问题,下面直接贴上代码和我自己的思路,还请指教哪里出现问题???非常感谢!!!
第一步:首先注册容器
php artisan make:provider qcloudvideoserviceprovider
代码如下:
app->singleton('qcloud.vod', function ($app) { $glass = new qcvod(config('qcloud_key'), config('qcloud_secret')); return $glass->setregion('gz'); }); } /** * get the services provided by the provider. * * @return array */ public function provides() { return ['qcloud.vod']; }}
第二步:注册facades
在app目录下面创建foundation/facades/qcloudfacades.php,代码如下:
[ //... app\providers\qcloudvideoserviceprovider::class,]aliases => [ //... 'qcvod' => app\foundation\facades\qcvodfacades::class,]
第四步:调用
dd(acvod::getregion());
getregion()是工具类中的一个getter方法
问题出现了:
class qcloud.vod does not exist
非常感谢您耐心看完!非常感谢!
求解?
回复内容: 我的思路:
自己写了一个工具类,由于在项目的多个地方都要用到,又不想每次用到都实例化,所以想将这个工具注册到laravel的service container中。但是不幸的是出现了一些问题,下面直接贴上代码和我自己的思路,还请指教哪里出现问题???非常感谢!!!
第一步:首先注册容器
php artisan make:provider qcloudvideoserviceprovider
代码如下:
app->singleton('qcloud.vod', function ($app) { $glass = new qcvod(config('qcloud_key'), config('qcloud_secret')); return $glass->setregion('gz'); }); } /** * get the services provided by the provider. * * @return array */ public function provides() { return ['qcloud.vod']; }}
第二步:注册facades
在app目录下面创建foundation/facades/qcloudfacades.php,代码如下:
[ //... app\providers\qcloudvideoserviceprovider::class,]aliases => [ //... 'qcvod' => app\foundation\facades\qcvodfacades::class,]
第四步:调用
dd(acvod::getregion());
getregion()是工具类中的一个getter方法
问题出现了:
class qcloud.vod does not exist
非常感谢您耐心看完!非常感谢!
求解?
qcloudvideoserviceprovider 处
$this->app->singleton('qcloud.vod', function ($app) { return new qcvod(config('qcloud_key'), config('qcloud_secret'));});
应该是这样了。
暂时没写过“服务提供者”和“门面”,感觉是singleton()这里要写全命名空间。
如果仅仅是作为工具类,请参考 laravel 辅助函数
composer dump-autoload