3.9 データソース

データソース は、モデルと、モデルが表現しているデータ自体をリンクするものです。通常、データは MySQL, PostgresSQL もしくは MSSQL といったリレーショナルデータベースから取得されます。CakePHP には、あらかじめいくつかの特定のデータベース用のデータソースが用意されています(cake/libs/model/datasources/dbo/ の中にある dbo_* class というファイルです )。以下に列挙します:

  • dbo_adodb.php
  • dbo_db2.php
  • dbo_firebird.php
  • dbo_mssql.php
  • dbo_mysql.php
  • dbo_mysqli.php
  • dbo_odbc.php
  • dbo_oracle.php
  • dbo_postgres.php
  • dbo_sqlite.php
  • dbo_sybase.php

app/config/database.php の中で利用するデータベースを特定することで、CakePHP はすべてのモデル操作において、自動的にそのデータベースのデータソースを利用します。 したがって、通常は特にデータソースのことを意識しなくても、問題なくモデルを扱うことができます。

上記のソースはすべて、 DboSource というほとんどのリレーショナルデータベースに共通するロジックが書かれた基底クラスから派生しています。もしあなたが RDBMS のデータソースを書きたいときは、これら(例えばdbo_mysql.phpdbo_mssql.php)を元に作成するのがよいでしょう。

しかし、多くの方は、リモートの REST API や、 LDAP サーバといった外部データのデータソース作成に興味があると思います。それでは、これからそのやり方についてみていきましょう。