レビュー by 0829 #04レビュー by 0829 #04

こんにちは、0829です。
「Drupal 実践プログラミング徹底入門」のレビュー第4弾では、DrupalのCMSとしての機能を活用するために重要となる「第5章 データベースとの連携」に焦点を当てたレビューを書かせていただきたいと思います。

Drupalは、データベースに依存して動作するCMSですので、その機能を最大限に引き出して活用していくためには、データベースとの連携方法を理解することが重要なポイントとなります。

「第5章 データベースとの連携」では、モジュールのインストールまたはアンインストール時にデータベーステーブルの作成や削除を行う方法や、update.php を実行するタイミングで既存のデータベーステーブルへ変更を加える方法など、.installファイルを活用するための情報が詳しく解説されており、データベースと連携したモジュールを作成する場合には必読の章となっています。

また、章の導入部分では、Drupalがどのように接続すべきデータベースを決定しているのかといった基本的な仕組みの他、MySQLやPostgreSQLといったデータベースの種類に依存しないクエリの実行方法や、用途に応じた様々なクエリ結果の取得方法などが、サンプルコードとともに紹介されていますので、コードを確認しながら読み進めていくことができます。
Drupalでは、必要に応じてブロックやコンテンツ内に直接PHPコードを記述することもできますので、そういった場面では、モジュールの開発者ではなくても、これらの内容が役に立つのではないでしょうか。

さらに、章の後半部分では、他のモジュールから提供されるクエリを変更する方法や、その逆に、他のモジュールへクエリを提示する方法などが紹介されていますが、これらは、既存のコードを直接ハックするのではなく、別のモジュールを作成することで機能の改善を実現しようというDrupalの機能性について、興味深く感じていただける部分ではないかと思います。

この章の内容をより深く理解するためには、やはり、SQLなどに関する知識を持っている方が有利です。が、Drupalでは、SQLインジェクションへの対策などの理由から、SQLの構文内でプレースホルダとプレースホルダを置換するための配列が使用されるため、単純にSQL文を記述するのとは少し勝手が異なります。
ですので、Drupalデータベースに関する一連の内容として、この章を通してSQL文を理解していくことも難しくないと思います。

その他にも、書籍の最後には、付録として「データベーステーブルのリファレンス」が収録されていますが、これも、必要なテーブルやフィールドを素早く見つけ出すために、十分活用できる資料となっています。