読者です 読者をやめる 読者になる 読者になる

Perl日記

PerlとかRubyとかPHPとかPythonとか

Laravel5.1入門その9 はじめてのサービスプロバイダ

サービスプロバイダのスケルトンをartisan経由で作る。

$ php artisan make:provider FugaServiceProvider
Provider created successfully.

app/Providers/FugaServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class FugaServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

register()の中で、IoCコンテナに返したいものを登録する。
昨日と似た感じで素朴な連想配列を返してみた。

<?php

    public function register()
    {
        $this->app->bind('fugafuga', function()
        {
            return ['foo' => 'bar'];
        });
    }

コンフィグにこのサービスプロバイダを使うように設定する。

config/app.php

<?php

'providers' => [
  ..
  App\Providers\FugaServiceProvider::class,
];

rails console的なartisan tinkerを使って確認してみる。

$ php artisan tinker
Psy Shell v0.4.4 (PHP 5.6.6 — cli) by Justin Hileman

>>> $app = app();
=> <Illuminate\Foundation\Application #000000007a6ed5620000000122f7ecac> {

>>> $app->make('fugafuga')
=> [
       "foo" => "bar"
   ]

とれました。