この記事は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

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

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

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

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

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

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

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

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

Laravel Mixはcssやjsのアセットコンパイルをいい感じにやってくれます。gulpやwebpackの面倒な設定から逃げたいPHPerには良いツールだと思っています。自分は逃げたいので使ってますがPHP側でHTMLを用意して返す一般的なWebであればやりたいことはほぼできるのでちょうどよいです。内部ではWebpackが動いています。
まとめ
Laravelのオフィシャルパッケージについて調べましたが、思った以上にいろいろありました。ミドルウェアを便利に使う系のパッケージはPaaSとのつなぎこみまで最初から提供されているのが良いですね。Laravelは最初からストレージはAWS S3、キューはAWS SQS、メールもAWS SESやその他のサービスに簡単につながるようにできてます。それらに加えて、今回紹介した公式パッケージを使うことで、外部サービスを駆使しながらスピーディーに開発するのがLaravel流なのかなと思いました。