[Laravel] メールの送信 (Laravel 5.3)

Laravel 5.3からメール送信の仕組みが変わった。具体的には、メールの生成をハンドリングする”mailable”クラスを生成することで、以前のバージョンと比べてメールの送信が単純化されている。

詳細は参考サイトを参照。

参考サイト

Mail – Laravel – The PHP Framework For Web Artisans
https://laravel.com/docs/master/mail#writing-mailables

Laravel Mailable: The new and improved way to send email in Laravel – Laravel News
https://laravel-news.com/laravel-mailable-the-new-and-improved-way-to-send-email-in-laravel

Introducing Mailables in Laravel 5.3 – Matt Stauffer on Laravel, PHP, Frontend development
https://mattstauffer.co/blog/introducing-mailables-in-laravel-5-3

[Laravel] メンテナンスモード

Laravelにはメンテナンスモードがある。

メンテナンスモードでは

  • カスタムビューを表示する
  • ステータス503(Service unavailable)を返す

メンテナンスモードに移行するには

メンテナンスモードから復帰するには

メンテナンスモード中でも特定IPからのアクセスを許可するには

一般からのアクセスは拒絶するのだけど、身内のアクセスだけは許したい場合がある。例えばメンテナンスが完了して公開前にテスターにだけアクセスを許す場合など。

そういった制御はHTTPをフィルタリングすのが役割のミドルウェアで行うのが定石か。サンプルを公開してくれているサイトがあったので参考にさせてもらう。

Laravel 5 メンテナンスモード IP制限
http://www.ajisaba.net/php/laravel5/maintenance.html

以下ざっと実装手順。

許可サイトのIPアドレスを.envに記述する

ミドルウェアを実装する

[Laravel] ショッピングカート

必要に迫られて、Laravelで使えるシンプルなショッピングカートのパッケージ探す。

ググると以下のスレッドがヒット。

Simple shopping cart
https://laracasts.com/discuss/channels/general-discussion/simple-shopping-cart?page=1

紹介されているパッケージをリスト。

GitHub – Crinsane/LaravelShoppingcart: A simple shopping cart implementation for Laravel
https://github.com/Crinsane/LaravelShoppingcart

GitHub – kingpabel/LaravelShoppingcart: A simple shopping cart implementation for Laravel 4 & 5
https://github.com/kingpabel/LaravelShoppingcart

GitHub – anam-hossain/phpcart: Simple framework agnostic shopping cart
https://github.com/anam-hossain/phpcart

GitHub – moltin/laravel-cart: Laravel Facade and Service Provider for Moltin\Cart
https://github.com/moltin/laravel-cart

GitHub – anam-hossain/phpcart: Simple framework agnostic shopping cart
https://github.com/anam-hossain/phpcart

Cart Manual :: Cartalyst
https://cartalyst.com/manual/cart/2.0#laravel-5art/2.0

今回は先頭のパッケージを使わせてもらうことにする。一番最近までメンテされていてユーザが多そうなのが理由。

[Laravel] 5.3の認証の変更点

認証処理(といっても主にファイルの所在やクラスの構成)が5.2から変わっているので、解説しているサイトを覚書リンク。

Authentication Enhancements in Laravel 5.3 – Sponsor – Laravel News
https://laravel-news.com/2016/08/authentication-enhancements-in-laravel-5-3-sponsor/

Improvements to authentication in Laravel 5.3
https://josephsilber.com/index.php/posts/2016/07/10/authentication-improvements-in-laravel-5-3

Gate and authorization improvements in Laravel 5.3
https://josephsilber.com/index.php/posts/2016/08/03/authorization-improvements-in-laravel-5-3?utm_source=laravel_news&utm_medium=sp&utm_campaign=laravel5.3_auth

[Laravel] 5.3でMulti-Authを使う

以下の要件を想定

  • /user以下は登録ユーザしかアクセスを許さない (要認証)
  • /admin以下は管理者しかアクセスを許さない (要認証)
  • それ以外は認証なしでアクセスできる
  • ユーザはusersテーブルで管理する
  • 管理者はadminsテーブルで管理する
  • 登録ユーザのログインは/login、ログアウトは/logout
  • 管理者のログインは/admin/login、ログアウトは/admin/logout

以下、実装手順をざっくり。

(1) 標準Authの有効化と管理者の追加

標準のAuthを有効化する

adminsテーブルを作成

とりあえずadminsテーブルの構成はusersテーブルと同じにしておく。

Adminモデルを作成

とりあえずAdminモデルの構成はUserモデルと同じにしておく。

マイグレーション実行

Authの設定

(2) 管理者ログインの仕組みを作成

実装の手間を減らすために、標準のログインの仕組みを可能な限り流用する方針で行く。

標準のログインコントローラ(app/Http/Controllers/Auth/LoginController.php)をapp/Http/Controllers/Admin/Auth/LoginController.phpへコピーして、管理者ログイン用にカスタマイズする。

標準のログインページのテンプレート(resources/views/auth/login.blade.php)をresources/views/admin/auth/login.blade.phpへコピーして、管理者ログイン用にカスタマイズする。

(3) 管理者ログインページへの転送を追加

(4) ルーティングを定義

(5) コントローラに認証要件を追加

参考サイト

Authentication – Laravel
https://laravel.com/docs/5.3/authentication

[WordPress] 外部アプリから新規ユーザを追加するには

wp_userテーブルにレコードを追加してやれば良さそう。

パスワードハッシュの生成はwp-includes/class-phpass.phpに定義されているPasswordHashというクラスで行っているようなので、これをコピーしてきて外部アプリから呼んでやれば良さそう。

というわけで、Laravelだとこんな感じ。

参考サイト

【WordPress】wp_usersテーブルを流用してログイン機能を作る at softelメモ
https://www.softel.co.jp/blogs/tech/archives/3793

[Laravel] created_at/updated_atが無いテーブルをEloquentで扱うには

モデルクラスの$timestamps変数をfalseにセットすればよい。

参考サイト

timestampを無効にする場合 – ふたりはララベル (Laravel PHP Framework)
http://laravel.hatenablog.com/entry/2013/10/19/004831

[Webサイト制作] 2015〜2016年のWebデザイントレンドまとめ

自分はデザイナじゃないけど、トレンドと言われると目を通しておかないとと思ってしまう。

2015〜2016年のWebデザイントレンドまとめ(前編) | デザインのトレンド
https://liginc.co.jp/291343

2015〜2016年のWebデザイントレンドまとめ(後編) | デザインのトレンド
https://liginc.co.jp/301949