eZ Platform の特徴

## ベンダーによる有償サポート
WordPress や Drupal と異なり、[eZ Platform](https://ez.no/jp) は開発元の [eZ Systems](https://ez.no/jp/node_22920) 社によるサポートがあります。サポートは[サブスクリプション契約](https://ez.no/jp/node_22890#block-3de96c8ddef9a79c0ddf9b58dba972d9)によって行われます。
また、契約サブスクリプションに応じてコンサルティングを受けられ、eZ Systems 社が把握するベストプラクティスに従うことができます。
サブスクリプションを契約すると、ドラッグ＆ドロップでページやフォームが作成できる [eZ Enterprise](https://ez.no/Products/eZ-Platform-Enterprise-Edition/For-Editors-and-Marketers) を利用することができるようになります。

その他、[サポート期間](https://support.ez.no/Public/Service-Life)が明確に定義されており、バージョンによって長期のサポートが保証されています。

## フレームワークに Symfony を採用
旧世代の eZ Publish 5.0 からフレームワークに [Symfony](https://symfony.com/) を採用し、 eZ Platform 1.0 から完全に Symfony に移行しました。
Drupal や Concrete5 も Symfony を採用し始めましたが、これらは一部の機能をライブラリー的に利用するに留まっているのに対して、 eZ Platform ではフルスタックで利用しているのが大きな特徴です。
このため、パフォーマンスやセキュリティの面で Symfony の品質に準拠することができ、Symfony のベストプラクティスやバンドルの利用などが容易になっています。

また、 Symfony は他のフレームワークと異なり長期サポートが存在しており、企業ユースに向いています。

## コンテンツを階層構造で管理できるツリー表示
Windows のエクスプローラーなどでお馴染みのツリー表示に対応しています。

コンテンツ量の多い大規模サイトではツリー表示されていないとページが埋もれて見つかりにくくなってしまいますが、 WordPress や Drupal、 Movable Type では標準で対応していません。

## ユーザーを階層的に整理できるユーザー管理
eZ Platform ではユーザーもデータ上の扱いはコンテンツと同じなので、同様にツリー表示することができます。
また、他の CMS ではユーザーのグルーピング機能がないことが多いのですが、ユーザーグループというコンテンツタイプで自由に多段階層を作成できます。
これにより、ユーザー数や部署数が多い企業でも混乱せずに安心して利用することができます。
あるいは、編集者や管理者などいまいちな権限グループによるグルーピングではなく、組織やサイトにあったグループを自由に作成することができます。

## 詳細な設定が可能な権限管理
多くのオープンソース CMS ではユーザー権限は既定の範囲でしか指定できない場合がほとんどですが、eZ Platform ではユーザーグループごと、コンテンツタイプごと、特定アクションごと、など、あらゆる権限設定が管理画面から自由に指定可能です。

## 汎用的な設計ができるコンテンツタイプ機能
Drupal や、最近では Concrete5 や Movable Type でも実装され始めましたが、 eZ Platform では元々コンテンツタイプ機能が実装されており、「ブログ記事」「ウェブページ」などに限定されない様々な構成のコンテンツを自由に設計することができます。

Drupal では「エンティティ」、WordPress では「カスタム投稿タイプ」、Concrete5 では「Expressデータオブジェクト」と呼ばれるものが近い概念になりますが、これらはフォルダーやユーザーまでは対象となっていなかったり、後から追加実装されており、元から基本設計として実装されている eZ Platform のコンテンツタイプは汎用性の高さが際立ちます。

## 同一コンテンツを複製せずに複数配置
新着情報やニュースリリースなど、一つの記事やコンテンツを複数の場所に露出したいケースはよくありますが、それぞれの場所に個別に投稿すると記事やコンテンツが重複してしまいます。

eZ Platform では記事の実体とは別に「ロケーション」という概念で配置場所を指定しているため、ショートカットアイコンのようにコンテンツを複製せずに、また別途テンプレートを編集することなく、異なる場所に同一コンテンツを配置することが可能です。

## 多言語対応
eZ Platform は他の CMS と異なり、当初より多言語対応を前提としたコンテンツ管理が設計されており、同一コンテンツに対して項目単位で複数言語を標準で登録することが可能です。またそれらはすべてバージョン管理されており、必要に応じて履歴を参照したり差し戻したりすることが可能です。

## 同一コンテンツに複数のテンプレート
eZ Platform では「サイトアクセス」という概念により、ひとつのコンテンツに対して複数のテンプレートを用意して切り替えることが可能です。

これにより PC 用とスマートフォン用、デジタルサイネージ用やアプリ用など、複数の出力を URL だけで切り替えることが可能になります。


## eZ Platform の特徴的な概念
一部上記の記述と重複しますが、 eZ Platform の特徴的な概念について解説します。

### サイトアクセス
**サイトアクセス**は1つのコンテンツに複数のテンプレートを持たせる概念です。
サイトアクセスの切り替えはURLによって行われます。例えば `https://example.com/pc/` と `https://example.com/sp/` や、 `https://www1.example.com` と `https://www2.example.com` などのように切り替えることが可能です。

### コンテンツタイプ
**コンテンツタイプ**はコンテンツの種類を規定する定義で、管理画面から設定できます。
WordPress の「カスタム投稿タイプ」、Drupal の「コンテンツタイプ」や「エンティティ」、Movable Type 7 の「コンテンツタイプ」、Concrete5 の「Expressデータオブジェクト」などに近い概念です。
他の CMS と異なり、ユーザーもコンテンツタイプの1つとして扱われるのも特徴的です。これにより、ユーザーの項目を標準で自由に拡張することができます。
また、コンテンツタイプをグルーピングする**コンテンツタイプグループ**も定義可能で、複雑なコンテンツタイプを綺麗に整理することができます。

eZ Publish では「クラス」と呼ばれていました。

### フィールドタイプ
**フィールドタイプ**はコンテンツが持つフィールド（項目）の種類と性質を規定する定義で、管理画面から設定できます。
WordPress や Movable Type の「カスタムフィールド」に相当します。
バンドルの追加や開発により独自に追加可能です。

eZ Publish では「データタイプ」と呼ばれていました。

### コンテンツ
**コンテンツ**とはコンテンツタイプで定義されたフィールドで登録されたデータの集まりを指します。例えばブログ記事として登録された実際のデータなどにあたります。
前述の通り、ユーザーデータなども全てコンテンツとしてデータベース内に一元的に格納されます。

eZ Publish では「オブジェクト」と呼ばれていました。

### ステート
**ステート**とは、すべてのコンテンツに対して、コンテンツタイプによらずにその**状態**を一括して持たせる概念になります。

タイトルや本文など通常はコンテンツタイプごとに項目を追加しますが、コンテンツタイプがたくさんある場合に選択タイプの項目を一括で追加したい場合に大変便利です。

### ロケーション
**ロケーション**とは、コンテンツを**コンテンツツリー**上に紐付ける概念です。これによりコンテンツの親子関係を紐付けることが可能になると共に、1つのコンテンツをショートカットのように複数のコンテンツに紐付けることが可能になります。

eZ Publish では「ノード」と呼ばれていました。

## eZ Platform の不利な部分
### 環境構築、セットアップ
[eZ Launchpad](https://ezsystems.github.io/launchpad/) など短時間でセットアップする方法も用意されていますが、エンタープライズ向けのため、環境構築や CMS のセットアップに知識が必要になります。

### 拡張機能のインストール
プラグインやモジュールといった拡張機能は eZ Platform では「[バンドル](https://ezplatform.com/Bundles)」と呼ばれますが、これらは管理画面から新規にインストールする機能は用意されていないため、新規にバンドルをセットアップする場合は Composer で処理する必要があります。

### デザインテンプレート
標準では1種類のデモバンドルしか用意されておらず、また管理画面からデザインを検索したり適用したりすることができません。
このため原則的にゼロベースで設計、実装する必要があり、初期工数が多くなる傾向にあります。