MODX Revolution

Evolutionとは異なるコア
ゼロから書き起こされた新設計のコア。データベースモデリングフレームワークである「xPDO(オープンエクスペディオ)」を採用しています。xPDOはMODXの主要開発メンバーでもあるジェイソンが指揮をとって開発を進めているプロジェクトです。

フレキシブルなシステムファイル構成
必要に応じてドキュメントルート外にコアをインストールしたり、manager・assetsディレクトリをそれぞれ任意のディレクトリ名に変更して運用したりすることができます。これにより、ひとつのシステムで複数のサイトを管理することができます。管理画面のメニュー構成は自由にカスタマイズできます。

新設計のリソースパーサー
Revolutionのパーサは精密な処理を行ないます。タグ記述の柔軟性をさらに高めました。

タグ表現の仕様をシンプルに統一
PHxのような修飾子(モディファイ ア)を、テンプレート変数・スニペットコール・チャンクタグなど全エレメントを通じて同じように用いることができます。
※Evolutionでも解決の方向に向かっています。

新設計のキャッシュプロセッサ
キャッシュの有効無効はテンプレート変数・チャンクを含むひととおりのエレメント単位またはリソース単位で指定できます(Evolutionではスニペット・リソース単位のみ)。また新設計のキャッシュプロセッサはmemcachedベースのキャッシュマネージャの仕組みを実装しており、php処理プロセス層に及ぶ高度なキャッシュ処理を実現しています。
※大規模サイトの運用を検討する場合は、事前に念入りなテストを行なってください。2015年現在も検証不足です。

オーバーライド可能なシステム構造
オブジェクト指向に則った構造。簡単にMODXコア構造をオーバーライドできます。APIを知り尽くしたMODXファンにとっては理想的な構造です。アップデート時に不整合が発生しないよう考慮されています。
※Evolutionのようなカジュアルな開発はやりづらくなっています。簡単なスニペットを作る場合もオブジェクト指向ノウハウを必要とすることが多いため、導入の際はよく確認してください。

コンテキストベースのサイト管理
異なるコンテキストを必要なだけ用意しコアに渡すだけで、自由にViewをコントロールできます。ドメインが異なる複数のサイトを、ひとつのコアでコントロールできます。
※各サイトを完全に独立して運用するためには細かい調整が必要です。製作者として複数サイトを管理する場合には便利ですが、サービスとして複数のクライアントに納品する場合はクライアント間の情報漏洩などセキュリティ面に配慮する必要があります。

MODXで作られた管理画面
新しいコアとAPIの柔軟性を実証するために、管理画面それ自体をMODXの仕組みを用いて組み立てました。ExtJS・Smartyも利用しています。


▲リソースの移動・並べ替えや、テンプレート変数やスニペットコールの貼り付けはマウス操作で行なえます。


▲テンプレート変数セクションはタブとして独立しました。(上記画像は最新のRevolution2.2系)

新設計のユーザ管理体系及びACL
強固な権限コントロール。属性ベースのACL概念(Attribute Based Access Control / ABAC)を採用。Evolutionでは2つのユーザ管理体系(ウェブユーザと管理ユーザ)に分かれていましたが、Revolutionではひとつのユーザ管理体系として統合されます。外部認証の実装も想定された拡張性の高い設計となっています。
※仕組みが複雑過ぎて理解しにくいという声も多く、MODX3ではシンプルな形に改善される予定です。

エレメントプロパティ
プラグインとスニペットだけでなく、チャンク・テンプレート変数・テンプレートなど全てのエレメントタイプにプロパティを実装しました。

プロパティセット
複雑なスニペットコールを何度も無駄にコピーする必要がなくなりました。エレメントにプロパティセットを適用すれば呼び出しパラメータをワンタッチで変更できます。プロパティセットはいくつでも作成できます。プロパティセット的な仕様は一部のスニペットが独自に備えていましたが、Revolutionではコアレベルでサポートします。

lexicon(語彙管理)
システムで利用する文言は、すべて管理画面で管理できます(Evolutionでは言語ファイルを直接編集します)。もちろん多言語対応です。利用対象は管理画面だけではなく、サイト構築でも使えますので、多言語対応のWEBアプリの構築に威力を発揮します。

パッケージトランスポートシステム
カスタムプロバイダー(MODx本家開発サイトまたはサードパーティ)から拡張機能やテンプレートを管理画面の中から直接ゲットし、マウス操作だけでインストールできます。従来のようにFTPクライアントやテキストエディタなどを用いることはありません。

静的なリソースタイプを追加
ファイルシステム上のファイルをサイトツリー内で管理できます。ドキュメントルート外のファイルも扱えます。ウェブリンクと違い、実ファイルのURLへリダイレクトしません。phpのreadfile関数のような働きを持ちます。

シンボリックリンクとして利用できるリソースタイプを追加
サイトツリー上のリソースの複製を作ることができます。ウェブリンクと違い、複製元のリソースのURLへリダイレクトしません。

※以下の情報は、2010年8月のニュースリリース記事をほぼそのまま転記しています。現在のMODX Revolutionの状況をそのまま現した内容ではないためご注意ください。

MODX Revolutionの経緯とEvolutionとの今後の関係

MODX Revolution 2.0 は、ショーンジェイソンマークの3人がメインデベロッパーとして開発しています。ファウンダーであるライアンより、2008年7月に開発開始が宣言されました。同時に、0.9系はEvolution 1.0として完成度を高め、サポートをしばらく継続することになりました。

Revolutionの開発が始まって数年経ちましたが、細部の調整が進まず、2012年頃からEvolutionの開発再開を求める声が強くなってきました。その後メインデベロッパーであるショーンとマークがチームを離脱し、Revolutionの開発は滞り気味になっています。

Evolutionは2013年から開発再開が宣言されました。

もともとRevolutionはEvolutionのアップデート対象として開発が進められていたため、MODXを新規導入する場合は最初からRevolutionを選ぶのがよいとされていましたが、現在は状況が変わっています。

動作環境

https://modx.jp/docs/install/env.html
Revolutionを稼働させるために必要な環境(サーバ・クライアント)は上記のとおり。Evolutionと比べるとやや高度な構成が要求されますが、WordPressの動作が確認されているサーバであれば問題ないでしょう。

Revolutionは搭載できるサーバをある程度選びますが、条件さえ揃えば、サーバが持つポテンシャルを十分に発揮できる高度な処理構造を備えています。

リリース文

本家コアチームのリリース文を翻訳したものに対し、さらに日本チームの解釈を加味したものを、以下にリリース文としてご案内させていただきます。なお、主な翻訳はenoguさん下条さんのお二人に提供いただきました。ありがとうございます。


さあ、革命の始まりだ。

何千時間以上にも及ぶ膨大な開発作業と100万ドルの資金援助により、ここにMODX Revolution 2.0 のリリースを宣言する。

何が変わったのか?

敢えて言うなら全部だ。RevolutionはMODXのスピリットを引き継ぎながら、通常のウェブサイト作成にとどまらずリッチアプリケーションの開発基盤としても使える、素晴らしいプラットフォームになっている。MODX Revolutionは、大規模サイトはもちろん、複数のサイトの管理も単独のコアでこなすパワーと柔軟性・再利用性を備えている。

Revolutionの新機能は、この記事ではとうていリストアップしきれない。ここではとっておきの機能だけを駆け足で説明する。もっと詳しい内容はチェンジログに書いてあるので、気になるならそちらも読んで欲しい。

スクリーンショット

http://modx.jp/news/2010/245.html
上記の記事を参照してください。RC3リリースの記事ですが、ほとんど同じです。

Evolutionとの互換性について

今後の開発について

2012年5月25日、MODX LLC代表ライアンより「MODX3」の開発開始が宣言されました。MODX3はRevolutionの後継CMSという位置づけですが、複雑にはならず、現在のRevolutionよりもシンプルでフレンドリーな構成を目標としています。MODX3のリリースに代わってRevolutionの開発は段階的に終了することになっています。

その他参考ページ

MODX Revolutionのコンセプトと概念の整理
(フォーラム記事)

PR

  • KAGOYA
  • ASP at AKIHABARA Japan
  • CMS AWARDS 2007 Winner
ページトップへ