アプリケーション

PHPで学ぶデザインパターン - Singleton ~いくつ作るかを制限~

アプリケーション

Singleton パターンとは?インスタンス生成のコストを制御するために、インスタンスが1つしかないことを保証するパターンです。 構造SingletonClasspriavateのコンストラクタとインスタンスを1つだけ返すstaticメソッドと自分自身のインスタンスを保持するためのstatic変数を用意するだけです。 メリットインスタンスへのアクセスを制御できるSingletonパターンが保持す...

デザインパターン PHP シングルトンパターン

PHPで学ぶデザインパターン - Adapter ~APIを変更する~

アプリケーション

Adapter パターンとは?API(互換性のないインターフェース)同士を適合させるためのパターンです。既存のコードの変更をせずに、再利用することで新しい機能を提供するというものです。再利用するコードには変更を加えないというのが特徴です。主にコードを再利用するためという後天的理由から成り立っているパターンです。(設計段階でラッパーを用意するパターンはBridgeパターンです。) 構造##Targe...

PHP アダプターパターン デザインパターン

Laravelの多対多のリレーションでテーブル名を規則から外す時

アプリケーション

多対多のリレーションを設計するときに、ドキュメント通りやっていたと思ったらちょっとした勘違いをした話です。 ここに3つのテーブルがあるじゃろ?今回のテーブル events event_tags event_tag_event←pivotテーブル 通常のテーブルは events tags tag_event って感じでデフォルトの規則通りリレーションを貼ればいいのですが、ちょっと癖のある名前...

Laravel

Laravelのフォームリクエストでバリデーションされる値をカスタマイズする

アプリケーション

概要Laravelのフォームリクエストで、バリデーションされる値をカスタマイズする方法です。APIのエンドポイントが/post/:id/deleteの時に、ルートパラメーターにフォームリクエストのバリデーションをかけたい・・なんて時に有効かもしれません。 validationDataメソッドをいじるLaravel APIにあるvalidationDataをいじります。 ルートパラメーターのidにバ...

Laravel

Laravelのredirect('hoge')とredirect()->to('hoge')の違い

アプリケーション

些細な事ですが、気になったので調べてみました。 public function getIndex() { return redirect()->to('hoge'); } 今まで何となくこっちを使っていましたが、 public function getIndex() { return redirect('hoge'); } こっちでも問題なく動作するのでredirectヘルパーの...

Laravel

LaravelにbowerでReactを導入してみる

アプリケーション

先日、Laravel5.3ではフロントエンドフレームワークとしてVue.jsをデフォルトとして採用するのが決定したようです。 普段、フロントエンドはjQueryで開発しているのですが、最近の流行りに乗じてReactを使ってみることにしました。LaravelならVue.jsにしとくのが無難かなと考えたのですが、Reactが今一番伸びがある(らしい)のでReactにしました。AngularJSとで迷っ...

Laravel React

Laravelでエラーメッセージを共通のテンプレートで対応する方法

アプリケーション

概要Laravelのエラーページを共通のテンプレートで対応する方法について説明します。 エラーハンドリングをカスタマイズapp/Exceptions/Handler.phpでrenderHttpExceptionメソッドをオーバーライドします。 Laravel API - Handler.php <?php namespace App\Exceptions; use Exceptio...

Laravel

LaravelでRestAPIをつくる

アプリケーション

LaravelでReactをフロントエンドのフレームワークとして採用しているのですが、APIを設計する必要がでてきたのでやってみました。 やること ResourceControllerをつくってデータを出力するだけのAPIをつくる API公開を見越した認証用ミドルウェアを実装する やらないこと Restの説明 APIデータの更新や削除 Ajaxでのデータの取得と出力 環境 Laravel5.2...

API Laravel React REST

LaravelでEventを使う

アプリケーション

ユーザー登録時や退会時など特定のイベントの時に発火させたいメソッドを管理したい時はイベントリスナーを使うと便利です。 今回は基本的なイベントとリスナーの定義の仕方についてはすっ飛ばし、一つのリスナークラスで複数のイベントを設定できるイベント購読について扱います。 環境 laravel5.2 ディレクトリ app\Events・・・イベント名=クラス名としたクラスを置く(厳密な命名規則はないです)...

Laravel

LaravelでCORS対応

アプリケーション

概要LaravelでCORS(Cross-Origin Resource Sharing)に対応する方法をまとめました。クライアントサイドはReact, axiosを使用します。前提知識としては、CORSのリクエスト形態、シンプルなリクエスト方法と、preflightを使用するリクエスト方法の違いを抑えておけば良いかと思います。RESTfulAPIの場合は基本的にはpreflightを使用するリク...

Laravel CORS