src/ChatServiceProvider.php
<?php
namespace Musonza\Chat;
use Illuminate\Support\ServiceProvider;
class ChatServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* Bootstrap application services.
*
* @return void
*/
public function boot()
{
$this->publishMigrations();
$this->publishConfig();
if (config('musonza_chat.should_load_routes')) {
require __DIR__.'/Http/routes.php';
}
}
/**
* Register application services.
*
* @return void
*/
public function register()
{
$this->registerChat();
}
/**
* Registers Chat.
*
* @return void
*/
private function registerChat()
{
$this->app->bind('\Musonza\Chat\Chat', function () {
return $this->app->make(Chat::class);
});
}
/**
* Publish package's migrations.
*
* @return void
*/
public function publishMigrations()
{
$timestamp = date('Y_m_d_His', time());
$stub = __DIR__.'/../database/migrations/create_chat_tables.php';
$target = $this->app->databasePath().'/migrations/'.$timestamp.'_create_chat_tables.php';
$this->publishes([$stub => $target], 'chat.migrations');
}
/**
* Publish package's config file.
*
* @return void
*/
public function publishConfig()
{
$this->publishes([
__DIR__.'/../config' => config_path(),
], 'chat.config');
}
}