CakePHP で Posql を使う - Posql - CakePHP HowTo

english

目次


CakePHP Posql ドライバ 概要

このドキュメントは、 PHP フレームワーク CakePHP から、 Posql を データベース (DBO ドライバ) として利用するための手順を解説します。

Posql は、ピュア PHP のデータベースエンジンです。 詳しい概要や、サポートしている SQL 文法については Posql SQL Reference を参照してください。

Posql Version 2.09 から、 CakePHP で Posql を利用できる DBO ドライバ 'dbo_posql.php' や、 その設定ファイルなどがパッケージに同梱されています。 現在の最新バージョンは 2.17 です。


対応 (動作確認済み) バージョン

Posql Version
2.09 以上 (最新: 2.17)
CakePHP Version
1.2.4 / 1.2.5 (1.2 系)
PHP Version
PHP 4.3+ / PHP 5

Download

GitHub から Posql Version 2.17 がダウンロードできます


インストール方法

  1. Posql (Version 2.17) を ダウンロード します (入手していない場合)。

    Posql パッケージ内に CakePHP-DBO-Posql というディレクトリがあり、この中が対象になります。
    以下のようなディレクトリ構成になります。

    • CakePHP-DBO-Posql/cake/libs/model/datasources/dbo/dbo_posql.php

      CakePHP フレームワーク用の DBO ドライバです。
    • CakePHP-DBO-Posql/app/config/database.php.posql

      データベースの設定を定義するファイルです。 ファイル名が衝突しないよう '.posql' を付けています。
    • CakePHP-DBO-Posql/app/vendors/posql/posql.php

      Posql データベース クラス本体です。 Posql パッケージ直下にある 'posql.php' と同じものです。 まとめてコピーできるよう置いてあります。

  2. Posql パッケージ内のディレクトリ CakePHP-DBO-Posql の中にある ファイル・ディレクトリすべて (app, cake ディレクトリ) を、 CakePHP フレームワーク本体の直下ディレクトリ (app, cake, vendors があるディレクトリ) に コピーします。

    CakePHP-DBO-Posql 内のディレクトリ構成は CakePHP フレームワークと同じになっています。

    これ以降は CakePHP フレームワーク側での設定になります。

  3. もしあれば、現在のキャッシュをすべて消去します。
  4. データベース設定ファイルから、データベースのファイルパスを設定します。
    この設定は基本的に SQLite DBO ドライバと同じように扱えます。
    データベース設定ファイルは、

    app/config/database.php.posql

    に コピーされているはずです。 もとの 'database.php' を適当なファイル名に変えて バックアップをとっておき、 'database.php.posql''database.php' に名前変更します。
     var $default = array(
       'driver'     => 'posql',
       'persistent' => false,
       'host'       => '',
       'login'      => '',
       'password'   => '',
       'database'   => '../vendors/posql/database_name.php',
       'prefix'     => '',
     ); 
    上のような感じでデフォルト状態になっていると思います。
    設定するところは、

    '../vendors/posql/database_name.php'

    と記述してある 'database' がキーの部分です。 これはデータベースのファイルパスになります。 デフォルトでは、 相対パスで 本体クラスファイル 'posql.php' と同じディレクトリに設定されています。 データベース名にあたる 'database_name.php' を 適当なデータベース名に変更し、 対象ディレクトリも必要に応じて変更します。 相対パスになっているので、可能であれば絶対パスに変更してください。
    また、対象ディレクトリに読書きできるようパーミッションを設定してください。
    注意点として、拡張子の '.php' を変更したり外したりすると、 データベースが認識できなくなる可能性があります。 拡張子 '.php' は付加したままで設定してください。
    SQLite と同じように、'login', 'password' 等は値を設定しても無視されます。

不具合について

Posql ドライバの動作確認はとれていますが、最低限のテストしか行っていません。 複雑な SQL ステートメントは、テストをしていません。 SQL 文によっては、Posql クラスそのものが実装されていない場合もあります。 また、独自に SQL 文を発行する場合は不具合がでる可能性があります。 その点を考慮してお試しください。

要望や感想、不具合やバグ報告などありましたら GitHub - Posql の issues から投稿、 もしくは Posql開発ブログ からお願いします。


Posql
GitHub - Posql
CakePHP
CakePHP: Rapid Development Framework
PHP
PHP: Hypertext Preprocessor