Nucleus CMS 日本
マニュアル
FAQ
サポートフォーラム
Wiki
スキン
プラグイン
Developer Network
Nucleus CMS HQ
Wiki
Navigation
Wiki Home
Full Index
Recent Changes
plugins:nucleus_sqlite:readmedev
現在位置:
Nucleus CMS: Pure Publishing
»
プラグイン一覧(アルファベット順)
»
SQLite 版 Nucleus
»
SQLite 版 Nucleus (開発者の方へ)
目次
SQLite 版 Nucleus (開発者の方へ)
Nucleusコアの変更に関して
プラグインの作成に関して
MySQLとのコンパティビリティーに関して
SQLクエリ構文に関して
SQLite 版 Nucleus (開発者の方へ)
Nucleusコアの変更に関して
すべてのMySQL呼び出し関数『mysql_XXXX()』は、『nucleus_mysql_XXXX()』に変更されています。プラグインのインストールの際も、同様の変更が自動的にNP_SQLiteによってなされます。新しいNucleusの公開があった場合は、『extra/sqlite/』フォルダにあるツールでこの変更を行うことができますので、『extra/sqlite/readme-ja.txt』をご覧ください。このツールで将来のすべてのバージョンに関して自動的な変更がエラー無く行えるかどうかは保証できませんが、現在の所 Nucleus ver3.22 と ver2.0 の両方で問題なく変更できることが確認されています。
プラグインの作成に関して
Nucleus-SQLite用にプラグインを作成する場合も、MySQL版を作成する場合と全く同じように行えます。別の言い方をすれば、Nucleus-MySQL用に作成したプラグインがそのままNucleus-SQLiteでも使えるということです。従って、プラグインの開発はMySQL版で行い、完成した物をNucleus-SQLiteで試すということをお勧めします。Nucleus-SQLiteでプラグインを作成した場合、それをMySQL版でも使用できるように公開する場合は、『nucleus_mysql_XXXX()』を『mysql_XXXX()』に変更することになるでしょう。もし、SQLiteに特異的なクエリーや関数を用いた場合は、そのプラグインはMySQL版では使用できません。
SQLクエリーで文字列を扱う時のエスケープの仕方も、MySQLの仕様に準じてください。つまり、
『sqlite_escape_string()』は用いず
、『addslashes()』もしくは、『mysql_escape_string()』(『nucleus_mysql_escape_string()』)を用いてエスケープしてください。もし『sqlite_escape_string()』を用いてプラグインを作成してしまった場合、SQLiteで使用している場合は問題ないのですが、そのプラグインをNucleus-MySQLに用いた場合にSQLインジェクションが可能になるケースが生じます。
MySQLとのコンパティビリティーに関して
MySQLに特異的なSQLクエリーのうちどれが使えるかは、『nucleus/sqlite/note.txt』に記述してあります。ここに含まれていないものに関しては、要望を出して頂ければ次期バージョンで対応することができるかも知れません。
SQLクエリ構文に関して
SQLiteでは、例えば『SELECT i.itime, ....』の様に記述した場合に『itime』が fetch されません。これは、『SELECT i.itime as itime, ....』の様に変更する必要があります。Nucleusコアでは、ver3.22に於いては少なくともBLOG.php, ITEM.php, COMMETS.phpでこのような記述があり、見つけた部分に関しては変更をしてあります。また、幾つかのプラグインで似たような記述があります。
こういったクエリー文に関しては、phpファイルを書き換えることが基本なのですが、SQLiteラッパーに自動的にこれを行わせることが可能です。これを行わせるには、『sqliteconfig.php』で、『$SQLITECONF[’DEBUGMODE’]=true;』としてください(デフォルトで、true です)。同時に、『$SQLITECONF[’DEBUGREPORT’]=true;』とすれば、表示したサイトのソースコードを見ることで、どこで変更を行ったかに関する情報が得られます。その情報に従ってプラグインのphpファイルを変更し、『sqliteconfig.php』の設定を元に戻すということもできます。
この設定は、SQLiteラッパー0.85以降(Nucleus 3.3 で採用)では、『(PRAGMA short_column_names=1』の使用により必要が無くなりました。
plugins/nucleus_sqlite/readmedev.txt · 最終更新: 2008/02/06 14:17 by katsumi