制作服务提供商 Laravel
Making ServiceProvider Laravel
最近在pusher实时系统上看了jeffery way的一段视频。我一切正常。我的问题是指他在视频中发表的评论。他的 route.php:
中有这段代码
App::bind('Pusher', function($app){
$options = array(
'cluster' => 'eu',
'encrypted' => true
);
$keys = $app['config']->get('services.pusher');
return new Pusher($keys['public'], $keys['secret'], $keys['app_id'], $options);
});
他评论说这应该从 routes.php 转移到服务提供商,但没有进一步详细说明。我一直在寻找服务提供商,但还不太了解。我如何正确地将此移动到服务提供商?
https://github.com/laracasts/Pusher-Lesson/blob/master/app/routes.php
最好在 Laravel 的服务提供商中注册所有服务。服务提供商位于 app/Providers 文件夹中 - Pusher 服务的定义确实应该移动到 AppServiceProvider 已经在那里 - 只需在其 register 方法中添加服务定义:
class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->registerPusher();
}
private registerPusher() {
$this->app->bind('Pusher', function($app){
$options = array(
'cluster' => 'eu',
'encrypted' => true
);
$keys = $app['config']->get('services.pusher');
return new Pusher($keys['public'], $keys['secret'], $keys['app_id'], $options);
});
}
}
或者如果您想将相关服务组合在一起,您可以创建一个新服务(例如 PusherServiceProvider):
class PushServiceProvider extends ServiceProvider
{
public function register()
{
$this->registerPusher();
}
private registerPusher() {
$this->app->bind('Pusher', function($app){
$options = array(
'cluster' => 'eu',
'encrypted' => true
);
$keys = $app['config']->get('services.pusher');
return new Pusher($keys['public'], $keys['secret'], $keys['app_id'], $options);
});
}
}
如果您决定选择第二个选项,则需要在 config/app.php 文件中注册新提供商 - 只需添加它提供商 数组的名称:
<?php
return [
'providers' => [
// existing providers
'App\Providers\PushServiceProvider'
],
];
最近在pusher实时系统上看了jeffery way的一段视频。我一切正常。我的问题是指他在视频中发表的评论。他的 route.php:
中有这段代码 App::bind('Pusher', function($app){
$options = array(
'cluster' => 'eu',
'encrypted' => true
);
$keys = $app['config']->get('services.pusher');
return new Pusher($keys['public'], $keys['secret'], $keys['app_id'], $options);
});
他评论说这应该从 routes.php 转移到服务提供商,但没有进一步详细说明。我一直在寻找服务提供商,但还不太了解。我如何正确地将此移动到服务提供商?
https://github.com/laracasts/Pusher-Lesson/blob/master/app/routes.php
最好在 Laravel 的服务提供商中注册所有服务。服务提供商位于 app/Providers 文件夹中 - Pusher 服务的定义确实应该移动到 AppServiceProvider 已经在那里 - 只需在其 register 方法中添加服务定义:
class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->registerPusher();
}
private registerPusher() {
$this->app->bind('Pusher', function($app){
$options = array(
'cluster' => 'eu',
'encrypted' => true
);
$keys = $app['config']->get('services.pusher');
return new Pusher($keys['public'], $keys['secret'], $keys['app_id'], $options);
});
}
}
或者如果您想将相关服务组合在一起,您可以创建一个新服务(例如 PusherServiceProvider):
class PushServiceProvider extends ServiceProvider
{
public function register()
{
$this->registerPusher();
}
private registerPusher() {
$this->app->bind('Pusher', function($app){
$options = array(
'cluster' => 'eu',
'encrypted' => true
);
$keys = $app['config']->get('services.pusher');
return new Pusher($keys['public'], $keys['secret'], $keys['app_id'], $options);
});
}
}
如果您决定选择第二个选项,则需要在 config/app.php 文件中注册新提供商 - 只需添加它提供商 数组的名称:
<?php
return [
'providers' => [
// existing providers
'App\Providers\PushServiceProvider'
],
];