Regulations
Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
リクエストに関する規約 [Regulations]
2008年2月3日
$_GET, $_POST, $_COOKIE 使用時の規約を定めることにした。こうすることで、少ないリソース量で有効なセキュリティ対策が行える。
1)キー名が『binary』で終わる場合以外は、ヌルバイトは使用禁止。
2)キー名が『id』で終わる場合は、数値のみを利用。
3)キー名が『path』で終わる場合、URLもしくはファイルなどのパスを指定できる。ただし、日本語使用不可。
4)キー名が『text』で終わる場合、ヌルバイト以外なら何でも使用可。
5)上のどれにも当てはまらない場合、英数字、ピリオド、ハイフン、アンダースコア、スラッシュおよび日本語のみが使用可能。
6)URIに『#』および2つ以上の『?』を含むものを禁止。
(080208 改定)
キー名が『binary』で終わる場合に、ヌルバイトを受け付けるようにした。また、6)の条件を追加した。
1)キー名が『binary』で終わる場合以外は、ヌルバイトは使用禁止。
2)キー名が『id』で終わる場合は、数値のみを利用。
3)キー名が『path』で終わる場合、URLもしくはファイルなどのパスを指定できる。ただし、日本語使用不可。
4)キー名が『text』で終わる場合、ヌルバイト以外なら何でも使用可。
5)上のどれにも当てはまらない場合、英数字、ピリオド、ハイフン、アンダースコア、スラッシュおよび日本語のみが使用可能。
6)URIに『#』および2つ以上の『?』を含むものを禁止。
(080208 改定)
キー名が『binary』で終わる場合に、ヌルバイトを受け付けるようにした。また、6)の条件を追加した。
デストラクタの利用に関する規約 [Regulations]
2008年1月10日
デストラクタ処理ルーチンがほぼ完成。デストラクタは、次の規約に沿って利用するようにする。それぞれのクラスでオブジェクトのインスタンスが一つだけ必要な場合、$objという名でスタティックに作成する。
1)プラグイン
基本的に、プラグインのデストラクタは、他のプラグインのオブジェクトに依存しないこと。もし依存する場合は、個々のデストラクタ内で適切に処理すること。ただし、ライブラリの各機能は使用可能。
2)ライブラリ(sqlクラス・coreクラスを除く)
基本的に、ライブラリオブジェクトのデストラクタは、他のライブラリオブジェクトに依存しないこと。もし依存する場合は、個々のデストラクタ内で適切に処理すること。ただし、sqlクラス・coreクラスは利用可能。
3)sqlクラス
coreクラス以外のライブラリのオブジェクトに依存しないこと。
4)coreクラス
いかなるオブジェクトにも依存しないこと。
1)プラグイン
基本的に、プラグインのデストラクタは、他のプラグインのオブジェクトに依存しないこと。もし依存する場合は、個々のデストラクタ内で適切に処理すること。ただし、ライブラリの各機能は使用可能。
2)ライブラリ(sqlクラス・coreクラスを除く)
基本的に、ライブラリオブジェクトのデストラクタは、他のライブラリオブジェクトに依存しないこと。もし依存する場合は、個々のデストラクタ内で適切に処理すること。ただし、sqlクラス・coreクラスは利用可能。
3)sqlクラス
coreクラス以外のライブラリのオブジェクトに依存しないこと。
4)coreクラス
いかなるオブジェクトにも依存しないこと。
規約 [Regulations]
2007年12月26日
Jeans CMSで、コア・プラグインを書くときの規約(案)
1)グローバル変数、グローバル関数は利用しない(スーパーグローバルは除く)。
2)include, require, include_once, require_once は使用しない(index.php, config.php, core.php を除く)。
3)echo, print は使用しない(core.php を除く)。HTMLタブを出力するときは『core::echohtml()』を、タブ以外を出力するときは『echo::p()』を利用する。
4)SQLクエリーを作成するときは、『sql::fill()』もしくは、『sql::query()』の、フィリング機能を利用する。
5)『sqlite_query()』などのデータベース関連関数は直接利用せず、代わりに『sql::query()』などを利用する(sqlite.phpは除く)。
6)SQLiteでクエリー用の関数を作成する場合、原則としてMySQLやPostgreSQLなどでも利用できるものを使う。ただし、SQLiteの機能を最大限に利用するようなプラグインを作成する場合はこの限りではない。
7)プラグイン名は『jp_』から始まり、英数字のみ(アンダースコアは含まない)。『jp_プラグイン名_クラス名』という名のクラスを『jp_プラグイン名_クラス名.php』というファイル名で記述し、このphpファイルをプラグイン管理領域におけば、インクルードはコアが自動的に実行してくれる。
1)グローバル変数、グローバル関数は利用しない(スーパーグローバルは除く)。
2)include, require, include_once, require_once は使用しない(index.php, config.php, core.php を除く)。
3)echo, print は使用しない(core.php を除く)。HTMLタブを出力するときは『core::echohtml()』を、タブ以外を出力するときは『echo::p()』を利用する。
4)SQLクエリーを作成するときは、『sql::fill()』もしくは、『sql::query()』の、フィリング機能を利用する。
5)『sqlite_query()』などのデータベース関連関数は直接利用せず、代わりに『sql::query()』などを利用する(sqlite.phpは除く)。
6)SQLiteでクエリー用の関数を作成する場合、原則としてMySQLやPostgreSQLなどでも利用できるものを使う。ただし、SQLiteの機能を最大限に利用するようなプラグインを作成する場合はこの限りではない。
7)プラグイン名は『jp_』から始まり、英数字のみ(アンダースコアは含まない)。『jp_プラグイン名_クラス名』という名のクラスを『jp_プラグイン名_クラス名.php』というファイル名で記述し、このphpファイルをプラグイン管理領域におけば、インクルードはコアが自動的に実行してくれる。