logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

PHP レッスン — パート 3 — 自分の CMS を作る

08/12/2019, by Ivan

CMS でのサイト作成は、Drupal、Joomla、WordPress だけに限られません。世界では、ほとんどのサイトが自作の CMS で作られています。すでに PHP で多くのコードが書かれているにもかかわらず、プログラマーは非常によく自分自身の開発物を使います。なぜ自分の CMS を使うのか、理解してみましょう。

確かに、自作モジュールのための多くのモジュール、フック、関数を持つ強力なシステム Drupal は存在します。多くの人が自分のモジュールを書けますが、Drupal 自体の作成に携わっている人が何人いるか見てみましょう。もちろん、Drupal は数百、いや数千人のプログラマーの労作だと読んだことがあるでしょう。しかし、実際に誰が Drupal を作っているのか見てみましょう。

Drupal のダウンロードページには、Drupal のコア、つまり CMS 自体に取り組んでいるプログラマーのリストのブロックがあります。

drupal.org/node/3060/committers?sort=desc&order=Commits

そしてこのページには、彼らが加えたコアの修正とともにプログラマーのリストがあります。そのリスト:

開発者 最後の修正 最初の修正 修正
Dries 3 日前 11 年前 10501 件の修正
webchick 5 日前 3 年前 3108 件の修正
Gábor Hojtsy 2 日前 4 年前 1635 件の修正
Steven 4 年前 11 年前 1156 件の修正
drumm 1 年前 5 年前 764 件の修正
killes@www.drop.org 4 年前 6 年前 506 件の修正
Kjartan 5 年前 11 年前 383 件の修正
catch 2 日前 21 週前 329 件の修正
Jeroen 10 年前 11 年前 101 件の修正
Git Migration 1 年前 10 年前 38 件の修正
jhodgdon 2 日前 3 日前 3 件の修正
quicksketch 16 週前 16 週前 3 件の修正
pillarsdotnet 23 週前 23 週前 2 件の修正

リストの順に始めましょう:

Dries

Dries(1 万件の修正) — フルネームは ドリス・バイタルト(Dries Buytaert)、Drupal プロジェクトの創設者です。ご覧のとおり、Drupal プロジェクトはすでに 11 年以上続いています。Dries は Acquia という会社を作りました。この会社は Drupal サイトのテクニカルサポート(Drupal 自体とは違って決して無料ではありません)や、Drupal とそのモジュールの開発を行っています。Dries のあるインタビューで、彼はもうプログラマーとして直接 Drupal を開発してはおらず、大部分は Acquia の経営をしていると読んだ覚えがあります。そして、コアの修正がこれほど多いのは、すでに出来上がったコアのパッチが彼のもとに送られてきて、彼はそれを追加するだけだからだと説明していました。

Webchickwebchick(3 千件の修正) — フルネームはアンジー・バイロン(Angie Byron)、Drupal 7 版の開発者です。Lullabot 社で働いています(働いていました?)。もっとも、drupal.org のプロフィールには、自分のサイトの作業で彼女を雇いたいなら Acquia に問い合わせるべきと記されています。また、アンジーは Drush、すなわちコンソールから Drupal を扱うためのスクリプト群を開発しました。今日、アンジーは Drupal の主要な開発者の 1 人です。

GaborGábor Hojtsy — フルネームはガーボル・ホイチ(Gábor Hojtsy)、Drupal 6 版の主要な開発者の 1 人です。また、Drupal 7 版で、Drupal の国際化と他言語への翻訳の機能も開発しました。

もちろん、他のコア開発者もいて、彼らは Drupal の何かしら 1 つの部分に取り組んでいました。しかし、これらの開発者が中心です。このように、Drupal は数千人のプログラマーの産物だとどれだけ言われても、Drupal のコアは数人の仕事なのです。つまり、巨大な CMS でさえ、数人が開発しているのです。

最初の問いに戻りましょう。なぜ自分の CMS を開発するのか。Drupal の習得にどれだけ時間がかかったか覚えていますか。実は、一部のプログラマーは、Drupal 規模の CMS を習得するよりも短い時間で CMS を作ってしまいます。

PHP は(他の言語に比べて)シンプルな言語で、誰でもそれでコードを書け、(簡単なことには)特別な知識は要りません。もちろん、いずれスケーラブルな CMS を書くには多くを学ぶ必要がありますが、ひとまず自分の CMS の利点を見てみましょう:

1. どこに何があるか自分で分かっている。あなたは taxonomy.module や comment.module のコードをどれくらいの頻度で見ますか。私はあまり頻繁には見ませんが、あなたは? 単にそんな必要が生じないのです。コードは書かれ、関数は文書化され、テンプレートは上書きされます。ほかに何が必要でしょう? では問題やエラーが起きたら。そのときどうする? drupal.org に書き込んで、仕事に追われるコア開発者が答えるのを待つ? 私に言わせれば、それは解決策ではありません。

2. 高い動作速度。Drupal が遅く動作し、DB に多くのクエリを送ることは周知の事実です。自作の CMS ははるかに速く動作します。しかし物事には裏面もあり、Drupal にはすでに最適化とキャッシュのためのモジュールがあるので、この問題は共有ホスティングでのみ生じます。

3. 自分が主人である。「コアに触れない」という規則に従わず、コアを直接修正することもできます。これは非常に便利で、自分の修正を有効にするために新しいコアバージョンのリリースを待つ必要がありません。

もちろん欠点もありますが… それについては触れないでおきましょう。Drupal が優れていることは分かりきっていますし、なぜ優れているかを改めて言うのはやめておきましょう。誰もが知っていることですから。

さて、あなたは自分の CMS を書くと決めました。始めましょう。