【Laravel】facadeの作りかた

Laravelすごい忘れてしまった。。 laravelにはFacadeっていうものをあるけど、その時に残したメモがあったから書いておく。

サービスプロバイダーを作る

php artisan make:provider FileManagementProvider

上記のコマンドでサービスプロバイダーのファイルを生成可能。

<?php 
namespace App\Providers;
 
use Illuminate\Support\ServiceProvider;
 
class FileManagementServiceProvider extends ServiceProvider {
    public function boot()
    {
        //
    }
 
    public function register()
    {
        $this->app->bind( 
            'fileManagement',
            'App\Services\FileManagement'
        );
    }
}

registerでlaravelのコンテナに登録する。 その際、どのクラスをどんな名前で登録するのかを記述する。 今回は、App\Services\FileManagementクラスをfileManagementという名前で登録します。

 App\Services\FileManagementクラスを作る

<?php 
namespace App\Services;

class FileManagement {

    public function imageOrText()
    {
    }
}

app/Facadeディレクトリの中に、ファイルを作成する

<?php
namespace App\Facades;

use Illuminate\Support\Facades\Facade;

class FileManagement extends Facade {
    protected static function getFacadeAccessor() {
        return 'fileManagement';
    }
}

ここでさっき書いた名前をreturnします。

providersに追加

app.phpの中のprovidersに作ったproviderクラスを追加。

処理の流れ

providersが読み込まれる

作ったproviderをapp.phpのprovidersに追加しました。 laravelは初期起動時にそれらを全て読み込みます。

今回の例で言えば、以下。

    public function register()
    {
        $this->app->bind(  
            'fileManagement',
            'App\Services\FileManagement'
        );
    }

'App\Services\FileManagement'が呼ばれる。

Viewでファサードを呼び出す

@foreach($allUploadedFiles as $file)

    @if(FileManagement::imageOrText($file->path))
        "画像"
    @else
        "画像じゃないよ"
    @endif

@endforeach

Macのローカルでcronを使いたい

f:id:utr066:20180206002330j:plain

ちょっと記事の投稿を自動化したかったので、cronを使いたい。 cronって言葉は聞いたりするけど、いじったことはなかったので簡単な使い方ぐらいは知りたい。

続きを読む

supervisorをちょっと試してみる

f:id:utr066:20180131191416p:plain

supervisorってものがよくわからないので、とりあえず試してみる。 良い感じにデーモン化してくれるみたいだけど、見えてこない。goのファイルを扱います。

vagrantで試してみる。

続きを読む

擬似要素のbeforeとafterを理解して、文字を装飾してみよう

擬似要素のbeforeとafterについて例を交えてちょっと書きます。 今回は、文字列の両脇に線を表示させるようなものを考えてみます。

続きを読む

RubyでSimilarWeb APIを使ってみようと思ったが、俺の力では使えなかった件について

similar webでいちいちurlを入力するのではなくて、コードで実行したかったので調べてみたらありました。 SimilarWebのAPI

ちょっとこいつを使ってみたい。

続きを読む

今更だけどwordpressをAMP対応する

以前wordpressでAMP対応をしていたんだけど、今はしていない状態。 なんかうまくいかなかったのかな。。

AMP対応はした方が良いと思うので、やっておきます。

続きを読む