CMSMix Sapporoに参加してきました!

2016/2/27に開催された CMSMix Sapporo に参加しました。

45名の参加枠がありましたが、Wordpress, Drupal, concrete5, a-blogcms, Movable Typeなど、多数のCMSからユーザーや開発者が参加され、満員御礼、大盛況でした。

当日の会場の雰囲気は togetter にまとまっていますので、併せてご覧ください。

Drupalのコア要素を知る:構築と運用を支える道具立て

Drupalコミュニティからは、Drupalさっぽろ のオーガナイザーとして活動されている 株式会社シナジークエスト の白根さん (@bkenro) より、「Drupalのコア要素を知る:構築と運用を支える道具立て」と題したセッションがありました。

セッションの資料は http://drupalsapporo.net/cmsmix.pdf に公開されていますので、ぜひご覧ください。​
Drupalと言えば「エンタープライズ」、「大規模サイト」、「あれはCMSじゃない、Web Application Frameworkだ」など、難しいイメージを持たれる方も多いのが実情です。

しかし、上記のような大量のコンテンツ管理を実現するために、内部は非常にシンプルかつ柔軟な構成になっており、実際にはいくつかのメジャーな機能の使い方を覚えるだけで、比較的簡単にサイトを構築することができます。

詳しい内容は白根さんの資料にあるため割愛しますが、

  • ノード(ページ)やユーザー、タクソノミーなど、Drupalの全てのデータは「エンティティ」と呼ばれる共通のデータフォーマットを持っている
  • エンティティにはカスタムフィールドを追加できる
  • ノード(ページ)の種類ごとに「コンテンツタイプ」を定義して、カスタムフィールドやレイアウトをコーディングなし(!)でテンプレート化することができる
  • Viewsモジュールを使い、SQLやPHPコードを一切書かず(!)に特定の条件にマッチするエンティティを抽出できる
  • BlockやPanels,Display Suiteなどのモジュールを使い、ノードやViewsで取得したデータをページ上の領域に割り当て、レイアウトを決めていく
    (これもコーディングは必要なく、ドラッグ&ドロップや管理画面からの設定のみで可能)
  • テーマでサイト全体にデザインを入れていく

    というような流れになります。

この流れさえ把握してしまえば、Drupalを使って個人ブログから数万ページの大規模サイトまで作成することが可能になります。

今回のセッション中に「魔改造」というキーワードが度々でてきました。
Drupalはコードをガリガリ書かないとカスタマイズできないと思われることも多いですが、前述の流れを見てもわかるように決してそんなことはありません。
PHPコードをガリガリ書いて「ほら、できただろ」と見せられると一見すごい事のように見えますが、セキュリティのリスクや、バージョンアップ時のコスト増、書いた本人しか保守できないなど、様々な問題が発生します。

Drupalでは多くのサイトで使われるような汎用的な機能はコアやモジュールで提供されていますので、まずはそれらの機能で目的を達成できるかどうか調べてみる事をお勧めします。
​​
昨年末にリリースされたDrupal 8では、先ほど紹介したViewsモジュールに加え、Rest APIを生成する機能がコアに取り込まれました。
これにより、サイト管理者はコーディングなしで(!)Rest APIを外部に適用できるようになりました。
また、前述したエンティティという統一されたデータ構造を持つことにより、どのDrupalサイトでもRest APIのデータ構造が同じになります(!)。
これは開発コストを考えた時に非常に大きなメリットになるでしょう。

このように、Drupalは開発者、非開発者の双方にとって非常に魅力的なCMSとなっています。
Drupal 8のリリースされコミュニティも非常に盛り上がっていますので、この機会にぜひ触ってみてください。

不明な点についてはDrupalコミュニティでお気軽にご質問ください。