KoMA-PHP Framework(概要)
file_download最新版ダウンロード(version.2.0.0)KoMA-PHPとは
KoMA-PHP(こま・ぴーえいちぴー)はMVC構造を基本とした軽快(当社比)で且つ様々な表現が可能なPHPフレームワークです。Ko … Kobold(コボルト:ドイツ民間伝承における小鬼、地霊など)
M … Material(マテリアル:素材とか材料とか物質そのもの)
A … Acro-(最高の・先端・極の・・・連結詞)
が由来。
直訳するとコボルトがいたずらついでに作ったようなマテリアル的に最高のPHPフレームワーク、というのはこじつけで 、語感がいいなと勝手に思ってつけました。
緑がテーマカラーのあるアニメキャラクターからきたのではという説は否定しません。
「自分の駒のように自由自在に扱う」 とか「困ったときにこれ!」 という意味を含んでいるとか、いないとか。
当サイトはKoMA-PHP公式サイトで、マニュアル リファレンス フォーラム が設置されています。
ダウンロード では最新版のダウンロードのほか、過去バージョンや更新履歴が確認できるようになっています。
本日時点(2024年10月31日)では[2.0.0]が最新バージョンとなっています。
当サイトもKoMA-PHPを利用して構築されておりますが、デザイン部分についてはマテリアルデザイン対応のCSSフレームワークMaterialize を利用しており、当フレームワークキットには同梱されておりませんのでご注意ください。
※当サイトはCMSにて記事を更新しておりますが、フレームワーク本体にCMS機能はありません
今後、本サイトでのブログ1 ブログ2 に書いたようなアプリケーションを、いずれもKoMA-PHPを利用して作っていく予定で、進めてはいるのですが、フレームワーク自体もまだまだ発展途上なので公開までには少し時間がかかりそうです。
View部分のテンプレートの充実とか、フレームワークが持つテンプレート機能だけではなくSmarty対応とか、柔軟性にも富んだものにしていきたいですね。
モンスターフレームワークも出尽くし、著名なフレームワークが選択されている昨今に必要かどうかは含めて、自身の技術向上と挑戦も兼ねて細々とやっていきたいと思っています。PHP技術者認定上級とれれば多少はハクがつくかなとは思ってます。
特徴
- checkシンプルで軽い動作
- 基本的なMVC構成を実現しつつ、基本ファイルのみで1MB未満(500KB程度)と軽く、
シンプルで明快なディレクトリ構成で動作軽量化を目指したフレームワークです。
- checkURLはルーティングで完結
- SEOにやさしいURLがルーティング設定のみで実現しています。受け取りたいパラメータを受け取りたい変数名で設定することができ、コントローラ、ビューのどこでも呼び出すことが可能です。
※コントローラでは連想配列の指定名で呼び出します
- check基本的な設定のみで簡単にページ作成が可能
- ルーティングが全てと言っても過言ではなく、ルーティングを設定し、ルーティング設定に沿ったコントローラ、ビューを用意するだけでページアクセスが可能となります。
また、入力画面、一覧・検索画面の基本テンプレートが同梱されており、モデルとあわせて設定し、ビュー側でテンプレートを読み込むだけでDBとリンクした画面の作成が可能となります。
また、それぞれのテンプレートを改修することで独自の表示パターンを追加することも可能です。
- checkらくらくバリデーション
- 入力画面と必ず対となるバリデーション(入力チェック)も入力画面用設定と同じ箇所で設定し、POST送信時にバリデーションクラスを呼び出すだけでバリデーションを行い、NG項目のメッセージを表示できます。
また、バリデーションクラスに独自のバリデーションパターンを追加することも可能です。
- checkサイトテンプレート機能
- 特に管理部・表示部とCMSのような形態のアプリケーションを構築する場合に、管理部は固定テンプレートで、表示部の大枠をデザイナーに任せるような形が可能となっております。
詳しくはマニュアル リファレンス をご確認ください。
- checkゆるめの規約
- 画面表示のためには規約に則って作っていく必要がありますが、コントローラ内部、ビュー内部は比較的自由なディレクトリ構成が実現可能となっております。
つまり、小規模な開発から大規模な開発まで柔軟に対応できる仕様となっています。
- checkDBアクセスの簡略化
- モデルの基底クラスを充実させることにより、各テーブルに対するモデルクラスは基底クラスを継承して基本メソッドを用意して呼び出すだけの窓口のような役割にまで落とし込みました。
下記のように書くだけで一覧取得、登録などの処理が簡潔に記述できるようになっています。
DbModel::read("User")->getList($where,$order); //一覧取得
※制作者開発環境の都合上、MySQL とPostgreSQL のみ対応しております。
※もちろんモデル側にロジックをゴリゴリ書くことも可能です。
- checkその他便利機能
- コントローラを利用したAjax利用、GDライブラリを用いた画像表示などなど。
今後順次拡張していく予定です。