ウェブ開発者にとってのconcrete5
concrete5はPHP+MySQLで構築されているCMSなので、同じようにPHP+MySQLを使っているCMSのカスタマイズ経験がある開発者ならば容易に開発に取り組めると思います。
また、concrete5そのものが柔軟なフレームワーク構造になっていて、モデルビューコントローラ(MVC)のコンセプトのもとに開発されているため、ソース構造も分かりやすくなっています。
上はconcrete5のあるブロックのソース構造ですが、Model(ロジック)・View(UIへの出力)・Controller(UIからの入力を担当)が分割して実装されているのがよく分かります。
通常、初めて触れるCMSをカスタマイズしたり、新たにプラグイン(concrete5の場合はブロック)などを作る時は、まずどういう構造になっているかを理解するため既存のプラグインのソースコードを読むことも多いと思います。その際、あたりをつけたファイルをいろいろ開き、四苦八苦しながらソースと格闘した経験のある開発者ならば、concrete5のソース構造の見通しの良さは、開発者にもやさしい構造だと感じることでしょう。
また、データ保存に使われるデータベースのテーブル構造を記述するスキーマは ADOXMLS フォーマットで保存され、変更やアップグレードに柔軟に対応できます。
データベースへの接続はデータベース抽象化ライブラリであるADOdbを使用し、クエリーレベルでのキャッシュ機能もあいまってアクセス数の多いサイトでもパフォーマンスに不満が出ることはないと思います。
参考リンク
日本語での開発関連の情報はまだ少ないですが、concrete5日本語サイトにもいくつか情報が掲載されています。
- ブロックの作り方(concrete5日本語公式サイト)
- ブロック修正の仕方とカスタムテンプレートの仕組み(concrete5日本語公式サイト)
- concrete5:オリジナルブロックの作り方(ynakajimaの備忘録)