MODx Revolution 2.0.0 RC3 がリリースされました
2010年7月10日 21時30分 shortlink:http://modx.jp/?id=245
CMS感覚で使いこなせるフレームワーク「MODx Revolution 2.0.0」の正式リリース候補の最終版が登場
http://modxcms.com/about/team/jgilmore/revolution-rc-3-ready-for-you.html
本家公式サイトにおいてMODx Revolution 2.0.0 RC3 がリリースされました。次は今月下旬頃に正式版がリリースされます。日本語翻訳ファイルも開発に着手しましたので、これを機会に日本公式サイトでもRevolutionに関するニュースの配信を開始します。
http://modxcms.com/download/
ダウンロードは上記から。
http://svn.modxcms.com/docs/display/revolution/Server+Requirements
Revolutionを稼働させるために必要な環境(サーバ・クライアント)は上記のとおり。Evolutionと比べて高度な構成が要求されますので、導入前によく確認する必要があります。また上記には記述されてませんが、cURLエクステンションが有効になっていないとパッケージマネージャが機能しません。
Evolutionとの比較
RevolutionはEvolutionのアップデート版ではなく、同じ世界観を持つ異なるシステムです。個人ユーザ向けの廉価なレンタルサーバで適度な規模のサイト(多くても5000ページくらいまで)を運用する場合はEvolutionのほうが有利ですが、エンタープライズ向けのリッチな仕様を備えるRevolutionは、条件を満たしたサーバにおいてそのサーバが持つポテンシャルを最大限に発揮できます。
開発面においては、きめ細かく体系的なフレームワークが網羅されており、自由な発想による構築がしやすくなっています。
http://svn.modxcms.com/docs/display/revolution/Upgrading+from+MODx+Evolution
http://bobsguides.com/migrating-revolution.html
Evolutionからの移行に関しては上記を参考にしてください。いずれも英文サイトですが、日本語による情報整備も予定しています。
既存のフレームワークとの比較
- 高機能で分かりやすいキャッシュ機構を標準で備えている
- 構成把握と操作性に優れた管理画面を持ち、デザイナーやコンテンツ担当者もシステムエンジニアと同じ目線でサイト構築に参加できる
日本語対応
日本語翻訳ファイルを開発中です。評価に協力いただける方は問い合わせフォームを通じてご連絡ください。また、評価のために利用できるデモサーバを用意する予定です。評価作業は今月の14日ごろから開始します。
システム本体は基本的にマルチバイト対応が考慮されており、mb関数を利用するかどうかをシステム設定で選択できます。メール送信まわりはmail関数に代わってPHPMailerが採用されており、utf-8で問題なければ文字化けは起きないものと思われます。
MODx Revolution 2.0.0の特長(本家リリース文の意訳)
新しいコア
ゼロから書き起こされた新設計のコア。この新しいコアはデータベースモデリングフレームワークである「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も利用しています。
新設計のユーザ管理体系及びACL
強固な権限コントロール。属性ベースのACL概念(Attribute Based Access Control / ABAC)を採用。Evolutionでは2つのユーザ管理体系(ウェブユーザと管理ユーザ)に分かれていましたが、Revolutionではひとつのユーザ管理体系として統合されます。外部認証の実装も想定された拡張性の高い設計となっています。
エレメントプロパティ
プラグインとスニペットだけでなく、チャンク・テンプレート変数・テンプレートなど全てのエレメントタイプにプロパティを実装しました。
プロパティセット
複雑なスニペットコールを何度も無駄にコピーする必要がなくなりました。エレメントにプロパティセットを適用すれば呼び出しパラメータをワンタッチで変更できます。プロパティセットはいくつでも作成できます。プロパティセット的な仕様は一部のスニペットが独自に備えていましたが、Revolutionではコアレベルでサポートします。
lexicon(語彙管理)
システムで利用する文言は、すべて管理画面で管理できます(Evolutionでは言語ファイルを直接編集します)。もちろん多言語対応です。
パッケージのリモート転送
カスタムプロバイダー(MODx本家開発サイトまたはサードパーティ)から拡張機能やテンプレートを管理画面の中から直接ゲットし、ほとんどマウス操作だけでインストールできます。従来のようにFTPクライアントやテキストエディタなどを用いることはありません。
静的なリソースタイプを追加
ファイルシステム上のファイルをサイトツリー内で管理できます。ドキュメントルート外のファイルも扱えます。ウェブリンクと違い、実ファイルのURLへリダイレクトしません。phpのreadfile関数のような働きを持ちます。
シンボリックリンクとして利用できるリソースタイプを追加
サイトツリー上のリソースの複製を作ることができます。ウェブリンクと違い、複製元のリソースのURLへリダイレクトしません。
RC3で新しく追加された機能など(本家リリース文の意訳)
- デフォルトの英語以外に、ドイツ語・ロシア語の言語リソース(言語ファイル)を同梱(日本語も 整備中)。
- ManagerManager相当のフォームカスタマイズ機能を整備。今回のRC3では、新規タブの追加・任意のタブへテンプ レート変数を移動するメソッドが追加されています。
- スニペットプロパティを各国語ごとにローカライズできます。
- PHx相当のOutput Filter機能を充実。たとえば、createdon(作成日)などの日時データを「yesterday」「today」などの表現で出力できる fuzzydateモディファイアなどが追加されています。
- 日時タイプのテンプレート変数では「時刻」を保持できます(Evolutionでは日付と 時刻は同一フィールド)。時刻の書式はシステム設定で指定できます。
- ユーザーインターフェイスを大幅に改善。 柔軟な折り畳み操作が可能なサイトツリー・トップメニューのスタイル改善・分かりやすいコンテキストメニュー・テンプレート変数入力セクションの整理など。
- 管理画面とコネクターの間でセキュアなAjax通信を実現。悪意の第三者による割り込みやセッションアタック攻撃を防ぎます。
- IE向けの多数の修正と調整。
(※Revolutionの管理画面はデータをhtmlではなくjson形式でExt JSを経由し渡します) - その他、 100以上の問題を修正し、一連のタスクを消化しました。
スクリーンショット
▲ログイン画面
▲マウス操作でカスタマイズできるダッシュボード
▲より分かりやすくなったカテゴリー管理
▲リソースやエレメントはマウスで順序操作。階層をまたいだ移動も可能
▲ManagerManager相当の管理画面カスタマイズ機能。Evolutionでは投稿画面のみをカスタマイズできるが、Revolutionでは70種類以上に及ぶ画面をカスタマイズ対象とする
▲拡張機能やテンプレートのインストールにはパッケージマネージャを用いる。このように、公式リポジトリ上の情報を管理画面内から参照し、マウス操作で選んでインストールできる。デモコンテンツもこの画面で入手できる。公式リポジトリ以外に、各ベンダーが設立・運用するリポジトリを選ぶこともできる
▲コアエクステンションとして登録されているカスタムテンプレート変数カテゴリー。入力値をベースに出力を加工するウィジェットをここから入手できる
▲必要なパッケージを選んでダウンロードする。この時点ではまだインストールされない
▲開発者はパッケージインストーラのオプション指定などを自由にカスタマイズできる
▲パッケージのアンインストールにも配慮されており、3種のオプションから選択できる
▲コントローラ(エントリーポイントとも呼ばれる)となるファイル(index.php)にコンテキストキーをセットする。index.phpをサイトの数だけコピーして設置できるのは、Evolutionでは実装されていないRevolutionならではの仕様。サーバの物理パスで共有できる領域にコアを置くことができるなら、ドメインが異なるサイトを増やすことも可能。また上記の例では管理画面自体をMODxでコントロールしていることが分かる
▲このようなイメージで複数のサイト(コンテキスト)をツリーで管理でき、自由度の高さと分かりやすさを両立できている。一例として、上記のスクリーンショットのように、ひな型となる構成を持つサイトを作っておき、右クリックメニューからサイトをまるごと複製するような運用が簡単にできる。全てのコンテキストへのアクセス権限を持つユーザであれば、全てのサイトのツリーをサイトツリーで見渡すことができる。