現在の私はジョイン先のプロジェクトでConcreteCMSを触っています。
そこで自分の備忘・整理を兼ねて、このConcreteCMSについて少し語りたいと思います。
なお、執筆者の私は、WordPress歴が5年以上、その後、Laravel歴も5年という感じで、それなりにメジャーなフレームワークを使った生粋のPHPerであります。
その私がここにきてConcreteCMSを触ることになり、Wordpress・Laravelと比較してどうだこうだということを述べていきたいと思います。なおこの記事や主観的経験と偏った知識に基づいて書かれていますので、ご了承ください。
また、めんどくさいので記事の内容を調べ直したりしないので、情報の細かいことが不正確だったり誤認だったりしても、一切責任は負いません。
ConcreteCMSとは?
ちゃんとした企業や会社がちゃんとした自社HPを自分で更新したいならオススメのCMSです。Wordpressと比較されがちですが、Wordpressよりは良いと思います。一方で、ルールが固く開発コミュニティも活発ではないため情報は少なくプラグイン(アドオンという)は少ない傾向です。
ちゃちゃっと開発してちゃちゃっとリリースし、ちょっとくらい問題があっても都度修正していけばいいや的な思考の方は、Wordpressの方が良いです。というのも、ConcreteCMSはWordpressに比べれば機能開発において設計や開発ルールがあるため、自由度でいえばWordpressに分があると言えます。その分、しっかり作り込めば安定稼働できるCMSになるのはConcreteCMSでしょう。
ConcreteCMSとWordpressは何が違う?
自分が一番違うと思ったのはDBです。ConcreteCMSのDBはめちゃくちゃ複雑で、基本開発者でも中を深堀りする前提ではないと思います。そのため、少なくともサクッと調べた程度では何のテーブルがどれとどう連携しているかどうかなどは全くわかりませんでした。
もちろんなんとなしにはわかりますが、Wordpressほどではありません。Wordpressはよく言えばシンプルで、ほとんどすべてメタテーブルとオプションテーブルでなんとかできてしまいます。反面、型定義がなかったりコード側がややこしくなりチーム開発には不向きで属人化リスクがあります。チームと言わずとも、複数名で安定して保守管理していくようなサイトではConcreteCMSのほうが良いと思います。
それはCMS本体にもいえ、記事やページのリビジョン機能を持っているというのは同じですが、ConcreteCMSは一度公開されたページの修正時にも検閲修正のち公開させることができます。Wordpressはプラグインを使えばできるのかもしれませんが、純正の機能では、公開した後の修正は、編集者権限でダイレクトに行うしかなかったはずです。
まとめますと、最初に言った通り、ゆるくさっさと運用したいならWordpress、時間かかっても慎重かつ組織的に運用したいならConcreteCMSとなります。また、カスタムを行う際の技術力や情報量などもWordpressに軍配があがるので、すぐにリリースできるのはWordpressになるでしょう。ConcreteCMSを使うならアドオンには期待しないほうがいいと思いますが、Wordpressを使うならプラグインをしっかり厳選して駆使しましょう。
ConcreteCMSとLaravelを比較してみる
続いてはLaravelと比較します。なぜ比較するかというと、自分が精通しているからというのもありますが、PHPerなら最近だと二言目にはLaravelってくらいWordpressに並んで有名になったからです。言わずとしれたMVCフレームワークの大御所的存在ですが、言語を選ばず選定するなら最近は別のフレームワークに押されがちです。
さて、ConcreteCMSとLaravelですが、そもそも比較するべきではないと思います。なぜならLaravelでConcreteCMSライクなことをしようと思えばもちろん可能ですし、もっと素晴らしいシステムやかゆいところに手が届かせることも可能でしょう。しかしそれは、優秀なエンジニアが腕を振るえば、という前提です。
LaravelはCMSを作ることができるフレームワークですが、CMSではありませんので、CMS=コンテンツマネジメントシステムのUIUXを追求してきたConcreteCMSのそれに到達するためには、並大抵ではない開発工数がかかるでしょう。よってCMSとしてはConcreteCMSに分があります。
ただしCMS以上のことをやるとなった場合、ConcreteCMSはWordpress以上にその設計の硬さや管理画面の完成度の高さが仇になり、自由度が少なくやりずらさを感じます。小さい機能ならまだしも、BootstrapやjQueryに依存していてモダンなUIは使いづらく、内在するバグにも悩まされます。
まとめますと、CMSの意味を正しく理解して、素晴らしいCMSを構築したいならConcreteCMS、CMS以上のことをやりたい、CMS以外のシステムが重要だという場合はConcreteCMSは不向きなので、Laravel含めシステム開発用のフレームワークと開発をご検討ください。
最後に
だいぶなぐり書き感否めないですが、参考になれば幸いです。
また、サイト構築や既存サイトの保守でお悩みならお気軽にご相談ください。
お待ちしております。