MODx Revolution 2.0.0 正式版がリリースされました
2010年7月23日 23時00分 shortlink:http://modx.jp/?id=204
CMS感覚で使いこなせるフレームワーク「MODx Revolution 2.0.0」の正式版が、ついに登場!
https://forums.modx.com/index.php/topic,51826.0.html
7月22日、本家公式サイトにおいて MODx Revolution 2.0.0 正式版(Public Launch - PL版)がリリースされました。日本語ファイルも同梱されており、オプションなどを追加することなく最初から日本語環境で運用できます。マルチバイト処理も考慮されています。一日遅れてしまいましたが、日本公式サイトとしてもこの記念すべきリリースを改めてご案内します。
…。
MODx Revolutionの経緯とEvolutionとの今後の関係
MODx Revolution 2.0 は、ショーン氏・ジェイソン氏の2人がメインデベロッパーとして開発しています。ファウンダーであるライアン氏より、開発開始が宣言されたのは今からちょうど2年前の2008年7月23日、この時2つのニュースが同時に明示されました。ひとつは、長くベータの時代が続いていたMODxをいよいよ正式版としてリリースするために開発を本格化させるという話。これが今でいう「Evolution」にあたります。
もうひとつのニュースが、これとは別系統でサンプル的に進行していたいわゆる「0.9.7系」を実用的に使えるものにして、自分たちが本当に作りたかったMODxを作ってみようじゃないかという話。これが今回のRevolutionにあたります。0.9.7は0.9.5の処理構造をベースとしつつも、管理画面のUIにExt JSを採用し、これまでのMODxとは全く違う斬新な操作体験を感じさせる作りになっていました。MODxの前身となったEtomiteの面影はまったくありません。
0.9.6系の流れを引き継いだEvolutionでも工夫次第でさまざまな運用が可能ですが、特殊なことをしたい場合はトリッキーなテクニックに頼りがちです。しかし私達にとってMODxは、シンプルなアイデアだけで安心して使いこなしていけるCMSであってほしいのです。そのための改良・仕様拡張は可能ですが、やればやるほど過去に作ったサイトとの互換性が損なわれます。求めるべき理想がすでに分かっているのに諸々の事情で事態を打開できないことは歯がゆいですが、デモンストレーション的に作られた0.9.7系の動きを見ていると、これはこれで完成させるべきという思いが強まるのも自然な成り行きでした。同時に2つ開発・サポートしていけるなら、そうしよう。シンプルな答えが出されました。
まず最初にEvolutionが正式版としてリリースされたのがちょうど一年前の話でした。そしてまた一年たって、無事にRevolutionのリリースを果たすことができました。同じ世界観を持つ2つのCMSが、今後並走し本格普及を目指します。開発チームとしてはどちらを重視するということはなく、それぞれに必要とする層が異なるものと認識し今後も充実を図っていきます。
MODx Revolutionのダウンロード
ダウンロードは上記から。「無印」であるTraditional版と、必要なリソースをローカルでコアパッケージから展開するAdvanced版がありますが、通常はTraditional版をお選びください。Traditional版は、サーバ側での処理が最低限で済むように、必要なパッケージがあらかじめ配置・展開された状態でアーカイブされています。
動作環境
http://modx.jp/download/download-revo.html
Revolutionを稼働させるために必要な環境(サーバ・クライアント)は上記のとおり。Evolutionと比べるとやや高度な構成が要求されますので、導入前によく確認する必要があります。国内においては稼働報告はまだほとんどありません。
Revolutionは搭載できるサーバをある程度選びますが、条件さえ揃えば、サーバが持つポテンシャルを十分に発揮できる高度な処理構造を備えています。
MODx Revolution 2.0 日本語版について
翻訳をさらに充実させたMODx Revolution 2.0.0日本語版を準備中です。数日以内にリリースいたします。翻訳とスタイルシートが少し違うだけなので、実質的に本家版と全く変わりません。日本語版をリリースすることは、MODx Revolutionの日本国内サポートが存在することを象徴する意味合いもありますので、安定リリースを継続します。
また、すでに本家版をインストールしているユーザ向けに言語ファイルのみの配布も行ないます。ファイル一式を転送してキャッシュを初期化するだけで適用できます。
リリース文
本家コアチームのリリース文を翻訳したものに対し、さらに日本チームの解釈を加味したものを、以下にリリース文としてご案内させていただきます。なお、主な翻訳はenoguさん・下条さんのお二人に提供いただきました。ありがとうございます。
さあ、革命の始まりだ。
何千時間以上にも及ぶ膨大な開発作業と100万ドルの資金援助によって、ついに私たちはここに MODx Revolution 2.0 のリリースを宣言することができた。
何が変わったのか?
敢えて言うなら全部だ。RevolutionはMODxのスピリットを引き継ぎながら、通常のウェブサイト作成にとどまらずリッチアプリケーションの開発基盤としても使える、素晴らしいプラットフォームになっている。MODx Revolutionは、大規模サイトはもちろん、複数のサイトの管理も単独のコアでこなすパワーと柔軟性・再利用性を備えている。
Revolution の新機能は、この記事ではとうていリストアップしきれない。ここではとっておきの機能だけを駆け足で説明する。もっと詳しい内容はチェンジログに書いてあるので、気になるならそちらも読んで欲しい。
- MODx Revolution 2.0には新設計のキャッシュシステムが導入された。新しいキャッシュは、MODxが持つおよそ全ての動的要素をキャッシュできる。これにより、巨大かつ広大なサイトを良好なパフォーマンスを保って構築できるようになった。もっとスケーラビリティを求められる用途のために、このキャッシュシステムの代わりにmemcached相当の仕組みを使うことができるようにもなっている(※日本チーム注:memcachedの拡張classが実際に内蔵されているらしい)。
- およそあらゆるコア要素のセッティングを自由に上書き・拡張・カスタマイズできる。これにはシステムセッティング(Evolutionでいうところのグローバル設定)・ユーザー設定・語彙管理(従来の言語ファイルの機能に相当)やセッション情報も含まれる。MODxのルーツとも言えるテンプレート変数の思想を、投稿画面だけでなくシステム全体に波及させ、さらにManagerManager相当のカスタマイズ機能を加えたものと考えると分かりやすいだろう。また、これは他のアプリケーションとの相互運用機能を手軽に組み込めることも意味している。
- 開発者に朗報だ。Revolutionには拡張機能の配布及びインストールを体系的に行うために、優れたインターフェイスを持つパッケージ管理機能が実装されている。
- 「コンテキスト」によって複数のサイトを管理できるようになった。コンテキストとは、サイト単位のシステム設定(Evolutionでいうところのグローバル設定)のようなもので、サブディレクトリ単位・サブドメイン単位はもちろんだが、MODxコアをウェブルートよりも上の領域に置いて、内部でコンテキストキーを関連付けたコントローラ (index.php)をサイトごとに設置して接続すれば、ひとつの管理画面で複数のサイトの運用が可能だ。ドメインが異なるサイトでも問題なく管理できる。サイトのルートディレクトリごとにCMSをインストールするのはもう時代遅れだ。複数のサイトのシステムアップデートも一度で済む。
- 新しいコアは再利用性が高く十分な情報量を持つエラーログ機構を内蔵している。多種のエラーレベル (Evolutionでは3種類のみ)と複数の出力先がサポートされているから、欲しいトレースログを手軽に得られる。もちろん拡張機能のデバッグやエラーログとしても利用できる。
- タグの文法は統一された。改行入りのタグが書けるようになり、どのタグにでもキャッシュ出力をタグの内側・外側どちらでも意図どおりに指示できるようになり、タグを複雑に入れ子に書き込んでも不具合は起こらない。スニペットコールを入れ子にする場合も、外側をキャッシュオフにする必要がなくなった。また、Evolutionではスニペットコールの引数の値として使えなかった「?」「=」「&」が自由に使えるようになった。Evolutionではこれらの文字をそれぞれ「|xq|」「|xe|」「|xa|」などに置き換えるしかなく、たとえばRSSフィードをコントロールするスニペットなどで不自由を強いられた。
さらに、修飾子感覚でパラメータを指定し出力を自由にコントロールすることが可能になった。つまりEvolutionで言うところのPHxプラグインみたいなことがデフォルトでできるが、Revolutionはそれを上回る。たとえば日付の出力だったら、「今日」「きのう」といった表現ができるようになっている。もちろんテンプレート変数だけでなく、スニペットそしてチャンクでもできる。 - MODxの新しいマネージャー(管理画面)はMODxコアとExtJS、および Smartyを用いて組み立てられている。実のところインストール直後のMODxはすでに、君がこれから構築するウェブサイトと、それを管理するマネージャーの二つを、それぞれ異なるコンテキストを関連付けた異なる2つのサイトとして管理しているのだ。この事実を確認するには、コンテキストの設定とコントローラであるindex.phpを見るだけでよい。サーバ運用の基本をマスターしていれば、ひとつのコアであらゆるサイトコントロールが可能であることが理解できるよ。
- ウェブユーザーと管理画面ユーザーの間には、もはや明確な違いはない。ユーザーシステムには外部の認証システムも使えるようになった。さらにアクセス権限の設定は属性型アクセス制御リスト (ABAC)に基づくとても堅固かつ柔軟なモデルになっている。
- スニペットコールのたびに同じプロパティを何度も書いていないか?プロパティセットを保存すればどこにでも何度でも同じプロパティの組み合わせを手軽に呼び出して適用できるよ。
- それと、スニペット以外のタグにおいてもプロパティを指定できるようになった。チャンク、テンプレート変数、テンプレート、プラグインなど、あらゆるエレメントはプロパティを持つ。
- ラベルやイベントごとのメッセージを含むおよそ全てのテキストは語彙トピックとして辞書で管理する仕組みになった。複数の言語をインストールして辞書マネージャーで管理することができる。
- 拡張機能はパッケージマネージャーを用いてインストールする。管理画面内でリポジトリと直接通信し、欲しいパッケージをその場で探してマウス操作で選びインストールできる。管理画面と配布サイトの間を行ったり来たりする必要はもうない。FTP・圧縮展開ソフト・テキストエディタも不要になった。
- 新しいリソースタイプ「静的リソース」を使えばファイルシステムもサイトツリーの管理対象となり、他のリソースと同じ次元でコントロールできる。任意のファイルのクローンとして振る舞うものだとイメージすれば分かりやすいだろう。webroot領域外にあるファイルも管理できる。
- 「シムリンク」と呼ばれるリソースタイプが追加された。サイトツリー内にある他のリソースのクローンを、いくつでも必要なだけ必要な場所に作ることができる。もちろんオリジナルを書き換えれば、それはクローンにも反映される。MODxのリソースはシムリンクで、それ以外のオブジェクト(外部サイトや通常のhtmlページなど)は従来どおりウェブリンクで紐づけよう。
スクリーンショット
http://modx.jp/news/2010/245.html
上記の記事を参照してください。RC3リリースの記事ですが、ほとんど同じです。
同梱スニペットやプラグインがひとつもない件
ユーザのお楽しみを奪わないための配慮です。「システム」メニューの「パッケージマネージャー」を試してみましょう。マウス操作だけで簡単に選んでインストールできるはずです。気軽に試して不要だと思ったらアンインストールも簡単。痕跡ひとつ残さずきれいに削除できます。
アーカイブサイズが大きい件
配布アーカイブmodx-2.0.0-pl.zipのサイズは11MBもあり、非常に大きなシステムのように感じられるかもしれませんが、このうち4MB以上を占めるのが圧縮された状態のコアトランスポートパッケージ。実際にはこのアーカイブではコアパッケージの大半は展開された状態でパッケージ領域に配置されています。
また、管理画面のインターフェイスに用いられているExt JSが非常に大きく、これだけでかなりの割合を占めます。引き算していくと、Revolutionのコア単体はさほど大がかりではないことがイメージできます。
インストール直後のエラーについて
core/packages/core/modContext/bb0ab31ff60c6076faf4e52380d863d4/0/ というファイルをindex.phpにコピーしようとして失敗したというような内容のエラーが、インストール直後のイベントログに多数並びますが、問題ありません。これらはコピーする必要のないファイルであり、実際にはコピー元のファイルも存在しないためこのようなエラーが出力されます。
Evolutionとの互換性について
- Evolutionで構築したサイトをRevolutionに移行するための手段・ツールは現時点では存在しません。アップグレードインストールもできません。現在アップグレード支援ツールを開発中とのことです。
- タグの記述の違いについてはこちらに記述してあります。Evolutionには存在しなかったLanguageタグが追加されている点にも注目。
- DittoやWayfinderなどの主要スニペットの対応および代替に関してはこちらに。