はじめてのPHPプロフェッショナル開発 ch2
- Chapter02 PHPのエコシステム
Chapter02 PHPのエコシステム
Section01 モダンなPHPを支えるコミュニティの力
- 先人の作った資産を使おう、という話
- Composer
- デファクトスタンダードのパッケージ管理
- npmの影響を受けている
- PSR: PHP Standards Recommendations
- ライブラリの使用を定めるもの
- これに準拠したものを選択すると相互利用性が高まる
- 他プロジェクトに移植しやすい
- 似た別のものに乗り換える時に学習コスト低くてすむ
Section02 PHP-FIGとPSR
PHP-FIGとは
PHP Standards GroupとPHP-FIGの誕生
- php.standards
- PSR-0 (オートローディング規約)
- 2011, PHP-FIG: PHP Framework Interop Groupになる
- 「PHP本体の標準ではなく、その上に乗るソフトウェア開発を支援するための標準」
- PSR-1 (基本コーディング規約)
- PSR-2 (コーディングスタイルガイド)
- PSR-4
PHP-FIGの活動について
- 非公式だけどコミュニティ代表
- 有名な人いっぱい
PSRについて
Sectoin03 PHPのパッケージ管理
現在のデファクトスタンダードとしてのComposer
- PEAR: PHP Extension and Application Repository
- 長らく使われてきた
- システムワイドにパッケージを配置する
- 全部globalインストールする感じ
- Composer
- 特長
- 単一バイナリファイルの設置だけでパッケージマネージャの導入が完了
composer.json
ファイルを用いた依存性管理- 簡単
- プロジェクト単位
- 現代のスピード感に即している
composer.lock
ファイル- 孫以降の依存パッケージ
- 実際に使われているバージョン
- packagist
- 手軽なパッケージ公開
- 公開パッケージの充実
- PSR-4ベースのオートロード対応
- 特長
Section04 PHPのアプリケーションフレームワーク
- うまく選ばないと
- 過不足
- かえって非効率
- とりあえず乗っかってみる、も良い(著者所感)
フルスタック型: Laravel, CakePHP
- 本書ではCakePHP触ってく
- 最初の学習コスト高し
- 学習コストを支払ってしまえば
- 生産性大きく向上
- コードの規律
- 設計思想の影響が大きい
- ちゃんと理解できれば読み書きしやすい
- チーム間のコード統一
- 【所感】フルスタックでもちゃんと勉強する人が集まらないと統一性は失われます
マイクロフレームワーク型: Slim, Lumen
- フルスタックの機能全部は使わない
- 本当に必須な部分に機能を絞る
- その他は自分で用意してね
- 自律が必要
- コード統一性が失われやすい
コンポーネント志向: Aura for PHP, BEAR.Sunday
- 再利用可能なコンポーネントの作成や選択
- PSRに準拠
- 疎結合
- 「なんでもサーバーでやる」ではなくなってきている
- 例: フロントでSPAしたらサーバーはWebページのroutingから開放される
- 解釈しやすいシンプルな情報を、高速かつ軽量に返答すること
どのようにWebフレームワークを選ぶか?
- アプリケーションの目的
- チームメンバーの現状
- レベルが十分でない場合
- 規約、制約に縛ってもらう
- CoC (Convention over Configuration)
- 統制とりやすい
- 規約、制約に縛ってもらう
- レベル高い人が居る
- 独立的な構造の導入も選択肢
- F/W依存を高めすぎない
- 独立的な構造の導入も選択肢
- レベルが十分でない場合
- そもF/Wとは
- 本質: 背骨となる設計思想
- 狭義: 「よくやる処理」の再利用
- たいていは開発効率 > ささいなパフォーマンスのオーバーヘッド(著者所感を要約)