せっかく私のpatchが採用されたので、ブログにも書いておきます。
CakePHP 1.3からはプラグイン内の DataSource が使えるようになりますが、1.3RC1からは DataSource の driver もプラグインから読み込めるようになりました。
たとえばGithubのCakePHP datasources pluginでは、Cakeコアに含まれない様々なデータベースに対するDboドライバが提供されていますが、RC1ではこれを次のようにして読み込むことができます。
class DATABASE_CONFIG { var $sqlite3 = array('driver' => 'Datasources.DboSqlite3', ...); }
また driver を使用する DataSource をプラグインとして提供することも可能です。拙作のKeyValueSourceは次のように使用できます。
class DATABASE_CONFIG { var $memcache = array('datasource' => 'KeyValueStore.KeyValueSource', 'driver' => 'KeyValueStore.KeyValueMemcache', ...); }
プラグインが読み込む driver を app/models/datasources 内に作ることもできます。たとえば memcache ドライバを拡張した my_memcache ドライバを作った場合、次のように読み込みます。
// app/models/datasources/key_value/key_value_my_memcache.php class DATABASE_CONFIG { var $memcache = array('datasource' => 'KeyValueStore.KeyValueSource', 'driver' => 'my_memcache', ...); }