MODX Revolution

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

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

新設計のリソースパーサー
正規表現やeval処理を用いるため多少のクセを持つEvolutionのパーサと違い、Revolutionのパーサはシンプルかつタイトな展開処理となっており、タグ記述の柔軟性をさらに高めることに成功しました。

タグ表現の仕様をシンプルに統一
複数行に渡るタグ表現をサポート。キャッシュ制御の副作用もなく、複雑な入れ子記述でも意図どおりに展開できます。またPHxのような修飾子(モディファイ ア)を、テンプレート変数・スニペットコール・チャンクタグなど全エレメントを通じて同じように用いることができます。Evolutionで時々悩まされるPHxまわりの副作用はRevolutionでは解決されました。

新設計のキャッシュプロセッサ
現在のEvolutionでは管理リソースが5000ページを超えると、キャッシュ処理に起因するパフォーマンス上の問題が生じます(※改善を予定しています)。これを解決するため、Revolutionではキャッシュプロセッサを改善しました。キャッシュの有効無効はテンプレート変数・チャンクを含むひととおりのエレメント単位またはリソース単位で指定できます(Evolutionではスニペット・リソース単位のみ)。また新設計のキャッシュプロセッサはmemcachedベースのキャッシュマネージャの仕組みを実装しており、php処理プロセス層に及ぶ高度なキャッシュ処理を実現しています。

オーバーライド可能なシステム構造
シンプルかつ簡単にMODXコア構造をオーバーライドできます。もちろん、アップデート時に不整合が発生しないよう考慮されています。

コンテキストベースのサイト管理
異なるコンテキストを必要なだけ用意しコアに渡すだけで、自由にViewをコントロールできます。つまり、ドキュメントルートよりも上の領域にインストールしたひとつのコアを通じて、ドメインが異なる複数のサイトをコントロールできることを意味します。

データとしての再利用性が高い、本格的なロギング機能
さまざまなエラーレベル表現を返すことができます(Evolutionでは3種類のみ)。ECHO・HTML・FILEなど各種の出力先を指定できます。管理操作ログ・エラーログ・デバッグなど、さまざまなニーズに対応し、アドオンなどで使用することもできます。

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


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


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

新設計のユーザ管理体系及びACL
強固な権限コントロール。属性ベースのACL概念(Attribute Based Access Control / ABAC)を採用。Evolutionでは2つのユーザ管理体系(ウェブユーザと管理ユーザ)に分かれていましたが、Revolutionではひとつのユーザ管理体系として統合されます。外部認証の実装も想定された拡張性の高い設計となっています。

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

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

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

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

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

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

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

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

MODX Revolution 2.0 は、ショーンジェイソンの2人がメインデベロッパーとして開発しています。ファウンダーであるライアンより、開発開始が宣言されたのは2008年7月。この時2つのニュースが同時に明示されました。ひとつは、長くベータの時代が続いていたMODXをいよいよ正式版としてリリースするために開発を本格化させるという話。これが今でいう「Evolution」にあたります。

もうひとつのニュースが、これとは別系統でサンプル的に進行していたいわゆる「0.9.7系」を実用的に使えるものにして、自分たちが本当に作りたかったMODXを作ってみようじゃないかという話。これが今回のRevolutionにあたります。0.9.7は0.9.5の処理構造をベースとしつつも、管理画面のUIにExt JSを採用し、これまでのMODXとは全く違う斬新な操作体験を感じさせる作りになっていました。

まず最初にEvolutionが正式版としてリリースされたのがちょうど一年前の話でした。そしてまた一年たって、無事にRevolutionのリリースを果たすことができました。同じ世界観を持つ2つのCMSが、今後並走し本格普及を目指します。

動作環境

http://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との互換性について

その他参考ページ

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

PR

  • ロゴ作成ならさぶみっと!コンペ 1点あたり10,000円~│さぶみっと!コンペ
  • KAGOYA
  • ASP at AKIHABARA Japan
  • CMS AWARDS 2007 Winner
ページトップへ