以下はBEAR.Sundayフレームワーク開発でのコーディング原則をまとめたものです。 ゴール クリーン ハイパフォーマンス No BC break (柔軟性や拡張性、テスト可能性などは"クリーン"であれば自然に含まれます) グローバル グローバル定数(define)の禁止 スーパーグローバル変数の参照の禁止 グローバルなサービスロケータの参照の禁止 グローバルな設定の参照の禁止(prod/devモードなど) グローバルなプロパティ参照の禁止(スタティックプロパティ) グローバルなメソッド利用の禁止(スタティックメソッド) 依存 * 基本全てDIで * newの禁止 (バリューオブジェクトを除く) * 実クラス名を使ったオブジェクトの取得(factoryメソッドなど)の禁止 * インターフェイスにないメソッドの利用の禁止 * 引数がオブジェクトでパブリックプロパティを使う場合、引数のタイプ