eZ Publish と他の CMS との比較

様々な **CMS** がある中で、**eZ Publish** とそれ以外のオープンソースの CMS ではどのような違いがあるのか。具体的な内容を**比較**してみた。
まとめきれなかったので追って追記対応したい。
できればコメント等で他CMSの補足をいただけるとありがたい。

## 比較対象
比較対象は以下の通り。

* **WordPress** **最もシェアが高い**。国内でもここ数年で台頭した。PHP で独自に開発。管理画面が見やすく、構築に小回りがきく。
* **Drupal** 世界のシェアは2~3番手。国内ではマイナー。管理画面がとっつきづらい。8 からPHPフレームワークに **Symfony** を採用。eZ Publish と同様に**汎用性が高い**。
* **Movable Type** WordPress が台頭するまでは国内で知名度が高かった。Perl で独自に開発。管理画面が見やすく、テンプレートで頑張るのに向いている。静的HTMLを出力するため、**参照系のパフォーマンスは最強**。

## シェア
eZ Publish にとってはつらい話だが、あまりシェアがない。つらい話は先にしておこう。
シェアが低い要因に、知名度の低さもあるが、汎用性が高い故の**初期構築に関する工数の多さ**と**情報量の少なさ**が上げられる。

### 各ランキング
WordPressのシェアが圧倒的なのが分かるだけで、基本的にはシェアは多くない。
**Movable Type** に肩を並べているようである。
#### CMS market share in the Alexa top 1M [^alexa]
* WordPress.org 1位、Wordpress.com 2位、31位 Wordpress VIP
* Drupal 3位、Acquia 18位
* Movable Type 46位
* **eZ Publish** 圏外

[^alexa]: http://www.datanyze.com/market-share/cms/

#### Usage Statistics and Market Share of Content Management Systems for Websites, December 2015 [^W3Techs]
* WordPress 1位
* Drupal 3位
* **eZ Publish** 44位
* Movable Type 51位

[^W3Techs]: http://w3techs.com/technologies/overview/content_management/all

#### CMS Market Share - OpenSourceCMS [^opensourcecms]
* WordPress 1位
* Drupal 3位
* **eZ Publish** 12位
* Movable Type 14位

[^opensourcecms]: http://www.opensourcecms.com/general/cms-marketshare.php

## 機能
WordPress や Drupal は特にプラグインやモジュールの追加で機能を拡張する前提となっているが、ここでは原則的に標準機能で比較する。
### 多言語対応
**eZ Publish** の強みの一つ。設計でデータ構造的に対応しており、標準で無理なく対応できる。
他の CMS は標準では多言語に対応しておらず、プラグイン等で擬似的に対応する必要がある。

* **eZ Publish** 標準で構造的に対応しており、初期状態で項目単位で翻訳データが保持可能。
* **WordPress** プラグイン追加で対応。
* **Drupal** モジュール追加で対応。
* **Movable Type** プラグインで対応？

### ユーザーと権限の管理
**eZ Publish** では、ユーザーをコンテンツツリーで構造的に管理でき、またその権限もコンテンツ単位など複雑な条件で自由に権限を管理することが出来る。

* **eZ Publish** ユーザーグループが作成可能。「ロール」と「ポリシー」があり、標準でコンテンツタイプごとやコンテンツの諸条件で細かく設定可能。構造的な権限管理に有利。
* **WordPress** 標準でユーザーのグルーピング機能はない。標準で5つの「権限グループ」がある。User Role Editorプラグインなどで調整。
* **Drupal** 標準でユーザーのグルーピング機能はない。「役割」を管理可能。モジュール側で用意された「権限」を「役割」に割り当てることしかできない。
* **Movable Type** Advanced で「グループ」機能がある。「ロール」と「権限」があり、用意された「権限」を「ロール」に割り当てることしか出来ない。

### コンテンツ管理
WordPress や Movable Type はブログから出発しており、あまり構造的でなく、記事単位をベースにしている。
Drupal に至ってはカテゴリーの概念自体がないので、フィールド追加などで対応する必要がある。

* **eZ Publish** コンテンツツリーで構造的に管理可能。また「ロケーション」でコンテンツを複製せずに親子関係を紐付けることが可能。
* **WordPress** 「投稿」「固定ページ」「メディア」の単位で一覧表示して管理。絞り込み検索で絞り込む。
* **Drupal** 「コンテンツ」で一元的に管理。絞り込み検索で絞り込む。
* **Movable Type** 「ウェブサイト」「ブログ」で階層化され、「記事」「ウェブページ」の単位で一覧表示して管理。フィルタで絞り込む。

### コンテンツタイプ管理
コンテンツの種類の定義は、eZ Publish と Drupal が汎用的に設計されており、WordPress は手を入れることで対応可能、Movable Type は PowerCMS を利用しないと対応できない。

* **eZ Publish** 「コンテンツタイプ」と「フィールドタイプ」によって汎用的にコンテンツの種類を定義可能。
* **WordPress** 「投稿」「固定ページ」「メディア」での管理が基本で、「カスタム投稿タイプ」と「カスタムフィールド」によってコンテンツの種類を定義可能だが、標準では管理画面で管理できない。
* **Drupal** 「コンテンツタイプ」と「フィールドタイプ」によって汎用的にコンテンツの種類を定義可能。
* **Movable Type** 「記事」「ウェブページ」「アイテム」での管理が基本で、「カスタムフィールド」によってコンテンツの項目を定義可能。コンテンツの種類は PowerCMS の「カスタムオブジェクト」でないと追加できない。

### マルチサイト


## 概念

| eZ Publish             | WordPress       | Movable Type | Drupal       |
|------------------------|-----------------|--------------|--------------|
|コンテンツタイプ (クラス) |カスタム投稿タイプ|(カスタムオブジェクト)|コンテンツタイプ|
|サイトアクセス           |                |              |            |
|ステート                 |                 |              |            |
|ロケーション             |                 |              |            |
|フィールドタイプ (属性)   |カスタムフィールド|カスタムフィールド|フィールドタイプ|
|バンドル (エクステンション)|プラグイン|プラグイン|モジュール|
|URLエイリアス            |スラッグ        |              |            |
|            |           |              |            |


## リンク
1. [eZ Publish とは](http://qiita.com/bezeklik/items/d1cdc65d57e14e0a18d2)
2. [eZ Publish の特徴](http://qiita.com/bezeklik/items/e168f99064a9233353ec)
3. [eZ Publish と他の CMS との比較](http://qiita.com/bezeklik/items/7c07df73fa6f0ddf1203)
4. [eZ Publish のバージョンによる違い](http://qiita.com/bezeklik/items/3c98ae4764199931da86)