Decoratorパターン - PHPデザインパターン
Decoratorパターン(デコレーター・パターン)は、構造に関するデザインパターン手法の一つで、基となるオブジェクトとそれを装飾するオブジェクトを同一のレベルで扱えるような関係性を築く事で、より柔軟なパラメータの取り回しや機能拡張を実現できる処理モデルです。
Decoratorパターン(デコレーター・パターン)は、構造に関するデザインパターン手法の一つで、基となるオブジェクトとそれを装飾するオブジェクトを同一のレベルで扱えるような関係性を築く事で、より柔軟なパラメータの取り回しや機能拡張を実現できる処理モデルです。
Compositeパターンは構造に関するデザインパターン手法の1つで、入れ物とその中身を同一のものと取り、再帰的な構造での取り扱いを簡単にする処理モデルです。
Strategyパターン(ストラテジー・パターン)は、振る舞いに関するデザインパターン手法の1つで、戦略部分(アルゴリズム等)をクラス単位で定義(カプセル化)する事で、その切り替えや追加・拡張を容易にする処理モデルです。
Bridgeパターン(ブリッジ・パターン)は、構造に関するデザインパターン手法の1つで、ブリッジ=橋、つまり「橋渡し」を行うクラスを挟む事で構造の効率化を図る事のできる処理モデルです。
AbstractFactoryパターン(アブストラクト・ファクトリ・パターン)は「抽象的な工場」を意味する通り、関係するオブジェクトたちを”まとめて”生成する為のデザインパターン手法の一つです。
LaravelのEloquentには「アクセサ」と「ミューテタ」というものがあります。これらを使うと、EloquentORM、つまりはモデルでのデータ操作を行う際に、予めデータの形式を定義しておく事が出来ます。
Builderパターンはオブジェクトの生成方法に関する処理モデルです。オブジェクト生成の流れを抽象化する事で、オブジェクトの生成を柔軟にします。
Prototypeパターンは、オブジェクトの生成に関するデザインパターン手法の1つで、インスタンスの複製に関する処理モデルです。プロトタイプ、つまりは「原型」。既にある型を利用して効率的にインスタンスを回していく手法になります。
Singletonパターンは、インスタンスの生成制御に関するデザインパターン手法の1つで、インスタンスが1つしかない事を保証します。
Laravelで提供されているEloquentは、モデルを定義しデータベースの操作を行うO/Rマッパーです。Eloquentでのリレーションの定義や考え方を見ていきます。
Eloquent ORM(Eloquent Object Relational Mapping)とは、Laravelで提供されているデータ操作の為の機能です。データベースとモデルを関連付け、柔軟なデータ操作を行う為のLaravel独自の機能になります。
Laravelでは、ブラウザからのURLアクセスやAPIによるアクセスに対してのルーティングを設定するファイルがあります。今回は、Laravelのルーティングの基本と、よく使われるルーティングを見ていきます。
Adapterパターンは、機能の再利用の際にで用いられるデザインパターンの手法の1つです。互換性のないインターフェースを持つクラスやそれらの機能を吸収するクラス(=アダプタ)を設けて両者を吸収する事で、既に存在しているクラスを変更する事なく新しい機能を持ったクラスを定義できます。
TemplateMethodパターンは、スーパー(基底)クラスとして定義されたメソッドをサブクラスで継承し、1つの処理モデルを構築するパターンです。パターン名からきている通り、テンプレート=共通の処理を定義したスーパークラスをそれぞれのサブクラスたちが継承し、継承元から与えられたそれぞれの機能を実装し、さらにそのクラス独自の処理を実装することで、それぞれが1つの完成形となります。
PSR-16では、キャッシュアイテムとキャッシュドライバのためのシンプルで拡張可能なインターフェイスについて定義します。
PSR-15では、PSR-7以降のPSRで記述されているHTTPメッセージを使用するHTTPサーバーリクエストハンドラとHTTPサーバーミドルウェアコンポーネントの一般的なインターフェイスについて説明します。
CakePHPのイベントリスナでメールやSlackへ通知を行います。いわゆるObserverパターンを用いたイベント処理になります。
LaravelではモデルベースでのSlack通知は色々と情報がありますが、単純なSlack通知ってなかなか方法が出回っていなかったりします。しかし開発者からしてみると、単純にアラートとしてSlack通知を活用したりなどの用途で使用したい場合も結構あります。今回は、シンプルなSlack通知を実装していきます。