Laravel5.5のメール送信をMailgun API(無料)で行う~アカウント開設、DNS設定からMailableクラスでの送信まで~
Laravel5.5のmailableクラスとAPIベースのメール配信サービスである「Mailgun」を使ってメール送信を行います。Mailgunはメールの送信から受信、追跡(トラッキング・分析)までを行える非常に高機能なメール配信サービスです。毎月10,000通までのメール送信が無料で使えます。
Laravel5.5のmailableクラスとAPIベースのメール配信サービスである「Mailgun」を使ってメール送信を行います。Mailgunはメールの送信から受信、追跡(トラッキング・分析)までを行える非常に高機能なメール配信サービスです。毎月10,000通までのメール送信が無料で使えます。
Laravelではメール送信も簡単に行えるような仕組みが提供されており、通常のSendmailからAmazonSESやMailgunなど、様々な手段・サービスに対応し、HTMLメールもテキストメールも柔軟に作成する事ができます。今回はメール送信クラスであるmailableクラスを使い、メール送信機能を実装していきたいと思います。
Laravel表示までに11秒かかっていた処理をキュー投入で非同期処理にする事で1秒未満にまで高速化させています。それにはデータベースを用いてキュー投入を行い、非同期のジョブ処理を実装します。
Laravelのジョブキュー処理を実装すると非同期での処理を実現でき、ユーザへのレスポンスを劇的に早める事ができます。メール送信やログ処理など、ユーザへのページ表示に関係なくかつ重たい処理の場合はコントローラで処理するのではなく、処理をキューへ投入しジョブ処理を行いましょう。
Laravelのイベント&リスナを使ってObserverパターンを実装します。この仕組みを使うと、処理の独立化や遅延処理など、便利&良い事が多く、上手く使いこなすと幸せになれます。オブザーバパターンとはデザインパターンの一つです。監視される側と監視する側の関係を持つプログラム構造で、監視される側の変化(イベント=発行)を、監視する側(リスナー=購読)がキャッチして処理を行う。という流れになります。
【5.6対応済み】これまでLaravel5では、フロントエンド開発においてJavaScript側にVue.jsをベーシックとして提供していましたが、5.5からはReact.jsも選択できるようになりました。今回はLaravelをインストール後、VueではなくReactを導入し、開発を開始できるまでを行っていきます。
CMSや掲示板などでログイン機能を実装する際に、最近ではソーシャルログイン機能(OAuth認証)と言って、TwitterやfacebookなどのSNSのアカウントを利用してログインを行う流れが主流になっています。今回は、Laravel のSocialiteパッケージで、手軽にSNSソーシャルログイン機能(OAuth認証)を実装してみたいと思います。
メジャーバージョンアップの時はあれがこれにこれがあれにと変更されて…アップデートした途端にエラー吐きまくってまともに動かなくなり…というのは、抱きがちな不安の種の一つです。ですがLaravelをどの程度まで深く使っているかによっては(基本MVC程度とか)案外素直にアップデート出来てしまいます。
Laravelに限らずPHPフレームワークにて開発を進めていると、自作のhelper(ヘルパー)関数が必要になった時に、それらをどう管理していくかというのは毎回悩ましいところでもあります。今回は、機能ごとに複数のヘルパーファイルを作成しても、それを自動的にLaravelがヘルパー関数として読み込んでくれる仕組みを作りたいと思います。
LaravelにビルドツールであるWebpackを導入(Laravel Mix)して、sassやJavaScriptをビルドしたりminifyできる環境を作りましょう。sassやLessなどのCSS周り以外にも、ReactをはじめES2015・ES2016等、Babelなどのトランスパイラの必要なJSなどに対してもコンパイルが行えます。
Laravelには、Collection(コレクション)クラスというものが存在しており、配列データに対して様々な処理を行う事が出来ます。PHPでは、連想配列(多次元配列)のソート手段としてarray_intersect()という関数が有名ですが、これは純粋な連想配列にのみ有効であり、昨今のPHPフレームワークのように、取得結果にオブジェクトを含む形だとソートは行えません。Laravelの場合、こういったデータの塊に対して、簡単にソートを行う事が出来ます。
Laravelにてマイグレーション実行時にシーディングにて初期データを投入しますが、その際に、Fakerにてダミーデータを生成して登録していきます。開発時にユーザデータや商品情報などのテスト用のデータを用意する必要があった時でも、LaravelではFakerというライブラリを使えば、テスト用のフェイクデータを自動で何件でも生成してくれます。
Laravelには、「シーダクラス(初期値設定クラス)」というものがあり、データベースへ初期データを簡単に投入できます。例えば、マイグレーションでデータベースを構築し、シーディングで初期データを投入するようにしておけば、いつでもデータベースの再構築と初期データの投入までを行えます。
【Laravel migration(マイグレーション)機能/カラム編集[追加/変更/削除]編】今回はLaravel5のmigration(マイグレーション)で、作成したテーブルに対して、カラムの追加、変更、削除などを行います。開発を続けていくと、テーブルにカラムを追加する必要があったり、初期で決めたカラムの定義を変更する(カラム名の変更・最大文字長の変更など)必要も出てくる場合があります。その場合にも、マイグレーションで構築が可能です。
Laravel の migration(マイグレーション)とは、Laravel内でのスクリプトを用いてデータベース情報を管理していく事です。
PHPフレームワークでWEBアプリケーションを構築しているのであれば、cronに登録し定時処理を行うプログラムもそのフレームワーク内で書くべきです。そうする事によって、データベースなどの設定情報が散らばってしまう事を防げますし、フレームワーク内に定時処理のソースがある事で管理も楽になります。
Laravelの入門編としてインストール方法を解説します。もはやPHPフレームワークとして不動の地位を築いたといっても良い人気のフレームワークです。インストールにはcomposerを使用します。
【WEBアプリケーション表示速度高速化シリーズ第三段】Laravel5のパッケージ「laravel page speed」を使い、HTMLをminify(圧縮)します。HTMLに関しては内容が変更になる確率が高いのでキャッシュは行わない事が推奨されていますが、出来るだけ高速に処理される施策は行っておきたいところです。
【5.6対応済み】Laravelにleague/flysystem-aws-s3-v3パッケージを導入し、Amazon S3と連携します。ファイルのアップロードから読み出しなど一通りのファイル操作を行います。Amazon S3は容量無制限のストレージに併せて高可用性を兼ね備え、且つレスポンスも速く表示スピードのボトルネックにもならない非常に優秀なクラウドストレージです。
【5.6対応済み】フレームワークを通してWEBアプリケーションを構築していると、ファイル操作の際のパスの管理が煩雑になりがちです。Laravelには、そんなファイル操作の際にパスの管理を一切心配しなくて良い、抽象ファイルシステム「Flysystem PHPパッケージ」が組み込まれています。今回は…