MODx 0.9.7alphaをインストールしてみました

MODx 0.9.7alphaがリリースされたので、さっそくローカル環境にインストールしてみました。正式版のリリースはまだしばらく先になりそうですが、実際に触ってみた感想やら妄想やらを書いてみます(長文です)。

まだ軽く触っただけなので、間違いや完全なる妄想が含まれている可能性も高いです。知識不足から、専門用語一つで説明できるかもしれない内容を冗長に説明している部分があるかもしれませんが、イメージは伝わると思います。

印象

全体的に感じたのは、CMSという言葉では括ることのできない別の(しかも、とてつもなく強大な)何かになろうとしているということです。特に、0.9.7ではフレームワーク的な側面が強くなっているように感じました。MODxという名の汎用フレームワークと、マネージャという名の汎用フレームワークのGUIフロントエンド(アプリケーションとしての実装)をパッケージしたものがMODxということになりそうです。

まだ触りだけですが、すごいものになりそうなことだけは伝わってきました。

構成

基本的な構成はシンプルになっていますが、規模としてはかなり大きなものになっています。

MODx 0.9.7は、大きくわけてコア・マネージャ・コネクタの3つから構成されています。コアがフレームワークにあたる部分で、マネージャはアプリケーションにあたる部分です。コネクタは、受け取ったリクエストとアプリケーション(マネージャ)のコントローラやモデルとを結びつけるもののようです。

コアやマネージャを見ると、他のフレームワークにも似た構成になっています。特に、コントローラやテンプレートを見ると、マネージャもただのアプリケーションの一つにしかすぎないように思えます。

マネージャ

新しいマネージャでは、MODxコアとExtJS、それからSmartyによって構成されています。今のところ、見た目はExtJSのUIそのものです。

  • 画像: MODx 0.9.7alpha マネージャ

外見と操作感は現在とはだいぶ異なるものになっています。ExtJSというRIAライブラリを採用したことによって、操作性がかなり向上しています。

いくつか新しいメニューの追加や変更点がありますが、基本的な仕組みはほとんど変わっていません。CMSとして利用する分には、これまでのノウハウもそのまま活かせるため、さほど心配する必要はなさそうです。

ResourcesからElementsへ

これまでリソースと呼ばれていたテンプレート変数、チャンク、スニペットなどの小規模なリソースはElementsという呼び方に変わっています。

  • 画像: MODx 0.9.7alpha Elements

これは、これらのリソースが(フレームワークであるコアからしてみれば)本質的には全て同じ性質のもの(部品)であることを表しています。基本的なElementsの他に、コアやマネージャを拡張することで独自の性質を持つElementsを作成することなどもできそうです。

キーに紐付けられたデータ

設定やシステムイベントなどを含め、ほぼ全てのデータがuniqueなキーに紐付けられたデータとして扱われています。

  • 画像: MODx 0.9.7alpha 設定ページ

これは、これらのデータとそのデータの用途を容易に拡張することができることを表しています。用途に合わせて、設定やシステムイベントを追加したりするようなこともできそうです。そして、このデータ構造が、バージョンアップの際にも高い互換性を確保することができる仕組みの一つだと思われます。

コンテキスト

コンテキストという概念が追加されています。コンテキストは、コントローラ・モデル・ビューの実行コンテキストを決める(グループ化する)ためのもののようです。

  • 画像: MODx 0.9.7alpha コンテキスト

通常のWebページやマネージャの表示の際にも、このコンテキストをもとに、コントローラ・モデル・ビューの動作が決められているようです。独自のコンテキストも作成でき、例えば、登録ユーザ専用のコンテキストや特定のデータを扱うためのコンテキストなど、Webページやマネージャとも違う独自のシステムの作成にも利用できそうです。

ワークスペース

パッケージを管理するためのワークスペースが追加されています。ワークスペースでは、リソースの集合であるパッケージのインストールや更新を行うことができます。

  • 画像: MODx 0.9.7alpha ワークスペース

パッケージは、uniqueなキーとリソースとが結びつけられたPHPファイル群を含むzipファイルです。リソースのパッケージ化が可能になったことで、例えば、ブログ構築用パッケージやwiki構築用パッケージのように、特定の用途向けのリソースをまとめたパッケージを簡単に作成・配布・導入することができるようになりそうです。

アクション

マネージャから、コントローラのアクションを作成することができるようになっています。アクションはマネージャ上にもメニューとして表示されます。

  • 画像: MODx 0.9.7alpha アクション

これまで、何か処理をする場合にはドキュメントからスニペットをコールするのが一般的でしたが、アクションとして作成することで、コントローラのアクションに結びつけられたURIにアクセスするだけで、様々な処理をすることができるようになりそうです。マネージャ自体の拡張も、このアクション(とリソース)の作成だけでできてしまいそうな感じです。

不安要素

大きな変更点(特にコアに関して)もあり、期待が高まるとともに不安もでてきます。さしあたっての不安は次のようなものでしょうか。

  1. Ext JSの採用で、クライアントサイド(ブラウザ等)への負担が大きくなりそう。
  2. 過去のスニペット・モジュールとの互換性がなくなりそう。
  3. 構想と規模があまりにも広大なため、中小規模での利用には導入を戸惑うケースが増えそう。
  4. 同上、落ち着くまでにはまだまだ時間がかかりそう。
  5. 同上、ドキュメントの整備にはまだまだ時間がかかりそう。
  6. マネージャにもフレームワーク的な概念が持ち込まれたため、使いこなすための敷居が上がりそう。

不安といっても、不安で夜も眠れないというほどのものでもないですし、解決策も考えられるので、きっといいようになるでしょう。

まとめ

改めて感じたのは、他のどのCMSとも違うということです。

MODxは、偏りのない高い柔軟性を備えています。プログラマ向けにはフレームワークとしてのMODxが、デザイナ向けにはCMSとしてのMODxが、エンドユーザ向けにはアプリケーションとしてのMODxが用意されています。

概念を理解するまでは取っつきにくいかもしれませんが、基本はとてもシンプルです。コストパフォーマンスの高いCMSと言えます。効率の面から言えば、MODxが最適だとは言えないケースももちろんありますが、あらゆる用途に使える可能性は秘めているように感じました。

以上、個人の趣味の範囲では使わなそうな機能もあったりしますが、なるべくMODx 0.9.7の新しい機能を中心にレビューしてみました。

コメント (2)

  • MEGU
  • 2008-05-04 18:38

師匠!と呼ばせてください(笑)。

workspaceってそういう風につかうんですか。なぁるほど。それは、便利ですね。^^。

> # 構想と規模があまりにも広大なため、中小規模での利用には導入を戸惑うケースが増えそう。

このようなユーザ様には、0962を勧めると言うことではいかが。^^。

>workspaceってそういう風につかうんですか。なぁるほど。それは、便利ですね。^^。

そういわれると不安に…(^^;
説明とファイルを見る限りでは、そういうものみたいです。
MODxマネージャのメニューとかこのワークスペースも、パッケージの一部にすぎないみたいです。
ブログ用のリソースや、ブログ専用の管理ページとかもインストールできそうな…と妄想が広がります(笑

>このようなユーザ様には、0962を勧めると言うことではいかが。^^。

これは自分のことなんですが、0.9.7は複数サイトに対応するみたいなので、うまくやれば1つのMODxのインストールだけですみそうですね :)

コメントフォーム

トラックバック (0)

この記事へのトラックバックはまだありません。

この記事のトラックバックURI
http://dxd8.com/archives/116/trackback/
この記事のURI
http://dxd8.com/archives/116/