12
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LaravelAdvent Calendar 2017

Day 23

Laravelのオフィシャルパッケージの紹介

Last updated at Posted at 2017-12-22

この記事はLaravelアドベントカレンダー https://qiita.com/advent-calendar/2017/laravel の23日目の記事です。

オフィシャルパッケージとは

Laravelが公式にサポートしているパッケージです。
どれもロゴが付いていてかっこいいですね。いつか自分でもライブラリ作ってロゴつけてgithubにあげたいですね。

https://github.com/laravel から漁ったら結構たくさん見つかりました。

  • Laravel Horizon
  • Laravel Socialite
  • Laravel Echo
  • Laravel Valet
  • Laravel Scout
  • Laravel Tinker
  • Laravel Dusk
  • Laravel Passport

ついでに https://github.com/laravel には無かったですが、公式のドキュメントで紹介されていて自分もよく使っているので、

  • Laravel Mix

も足しておきます。

実際に使っていないのもあるので情報が薄いのもありますが、いつか使うかもしれないということでまとめておきます。

Laravel Horizon

スクリーンショット 2017-12-21 16.49.20.png

Laravel HorizonはRedisキューのモニタリングができる美しいダッシュボードとコード駆動の設定を提供します。

1_RylFrnbJWNVtBnjESk9ztw.png

Laravel Socialite

スクリーンショット 2017-12-21 16.49.28.png

Laravel SocialiteはFacebook,Twitter,Google,Linkedin,Hithub,Bitbucketに対応したOAuth認証を行えるパッケージです。

<?php

namespace App\Http\Controllers\Auth;

use Socialite;

class LoginController extends Controller
{
    /**
     * Redirect the user to the GitHub authentication page.
     *
     * @return \Illuminate\Http\Response
     */
    public function redirectToProvider()
    {
        return Socialite::driver('github')->redirect();
    }

    /**
     * Obtain the user information from GitHub.
     *
     * @return \Illuminate\Http\Response
     */
    public function handleProviderCallback()
    {
        $user = Socialite::driver('github')->user();

        // $user->token;
    }
}

事前に設定しておけば、Facadeを使って簡単にOAuthのサービスプロバイダーにリダイレクトをして、リダイレクト時のtokenを取得できます

Laravel Echo

スクリーンショット 2017-12-21 16.48.51.png

Laravel EchoはTypescriptで書かれたWebSocketのイベントを受け取るようのライブラリです。それだけだと、別にLaravel関係ないじゃん…という感じですが、LaravelのApp\Eventsの名前空間とWebsocketで受け取るイベントがマッピングされているので多少便利ではあります。

LaravelのイベントブロードキャストはRedisとPusherというPaaSをサポートしているのですが、Pusherの方を使うととても簡単にWebSocketが使えるようになっています。Redisの方は少し面倒ですが、Redisのイベントを自前のNodejsサーバーで受け取って、クライアントのLaravel Echoに飛ばすという形になるようです。そのためのlaravel-echo-serverというライブラリも開発が進められているようです。

Laravel Valet

スクリーンショット 2017-12-21 16.50.07.png

Laravel ValetはMacユーザー用の小さなLaravel開発環境です。VagrantやDockerは使わずにMac本体にLaravelの開発環境を立ち上げます。自分がプログラミングを始めたばかりのときはMAMPというソフトを使って、Mac上に開発環境を一括で立ち上げるということをしましたが、それに近いですね。もう6年前かあ。MAMPはApacheですがValetはnginxが中で動いているようです。たった7MBで開発環境が作れるというのが推しのようです。

Laravel Scout

スクリーンショット 2017-12-21 16.50.29.png

Laravel Scoutは全文検索エンジンとEloquentのデータを簡単に同期してくれます。過去にApache Solrをデータインポートハンドラでmysqlと同期するという記事を自分のブログで書いていたのですが、ここの部分を便利にやってくれるということですね。ScoutではAlgoliaというPaaSを使うためのコードが最初から用意されています。SolrやElasticSearchを自サーバーで使いたい場合はそれ用のエンジンを書く必要があると思いますが、PHP側でそこを頑張るのはどうなんだという気もするので、PaaS使わないのであればあんまりいらないのかな。もちろん、統一したインターフェースで扱えるという利点はあるんでしょうけども。

Laravel Tinker

スクリーンショット 2017-12-21 16.50.51.png

Laravel TinkerはLaravel用のREPLです。Eloquentの操作を試すのに使うと便利ですね。

Laravel Dusk

スクリーンショット 2017-12-23 2.02.24.png

Laravel DuskはSeleniumなどを入れなくてもChromeDriverを使って簡単にブラウザテストをすることができるパッケージです。

Laravel Passport

スクリーンショット 2017-12-21 16.51.16.png

Laravel PassportはOAuth2サーバーの実装を提供します。ちょうどLaravel Socialiteと対になる機能ですね。

Laravel Mix

スクリーンショット 2017-12-22 11.47.59.png

Laravel Mixはcssやjsのアセットコンパイルをいい感じにやってくれます。gulpやwebpackの面倒な設定から逃げたいPHPerには良いツールだと思っています。自分は逃げたいので使ってますがPHP側でHTMLを用意して返す一般的なWebであればやりたいことはほぼできるのでちょうどよいです。内部ではWebpackが動いています。

まとめ

Laravelのオフィシャルパッケージについて調べましたが、思った以上にいろいろありました。ミドルウェアを便利に使う系のパッケージはPaaSとのつなぎこみまで最初から提供されているのが良いですね。Laravelは最初からストレージはAWS S3、キューはAWS SQS、メールもAWS SESやその他のサービスに簡単につながるようにできてます。それらに加えて、今回紹介した公式パッケージを使うことで、外部サービスを駆使しながらスピーディーに開発するのがLaravel流なのかなと思いました。

12
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?