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

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 文を発行する場合は不具合がでる可能性があります。 その点を考慮してお試しください。

要望や感想、不具合やバグ報告などありましたら Posql Project Page のフォーラムから投稿、 もしくは Posql開発ブログ へコメント、または Posql Memo や、 サイトトップ から投稿かメールいただけたら嬉しいです。


Posql
Posql Project
CakePHP
CakePHP: Rapid Development Framework
PHP
PHP: Hypertext Preprocessor