リファレンス

フレームワークから提供される命令

import()

ファイルを読み込みます。ファイルは内部的には require_once で読み込まれますが、第2引数を false にすると require で読み込まれます。ファイルが見つからなければエラーになりますが、第3引数を true にするとエラーにならずに処理を続けます。

import('app/config.php')  // 「app/config.php」を読み込む
import('app/views/header.php')  // 「app/views/header.php」を読み込む
import('app/views/parts.php', false)  // ファイルを require で読み込む
import('app/views/parts.php', false, true)  // ファイルが見つからなくてもエラーにしない

convert()

文字コードを変換します。第2引数のデフォルト引数は UTF-8、第3引数のデフォルト引数は UTF-8,EUCJP-WIN,SJIS-WIN です。

$converted = convert($data, 'UTF-8', 'EUCJP-WIN');  // 「EUCJP-WIN」から「UTF-8」に変換

alt()

代替文字を設定します。

$data = alt($data, '-');  // $dataがnullか空文字なら「-」が設定される

truncate()

長い文字列を省略します。省略されると ... が付加されますが、第3引数で任意の文字列に変更できます。

$data = truncate($data, 20);  // $dataが20文字以上なら省略される
$data = truncate($data, 20, '…');  // 省略時に付加される文字を「…」にする

e()

テキストを出力します。(echo() でそのまま表示されます。)

e('テキスト')  // テキストを出力

n()

改行コードを改行タグにしてテキストを出力します。(nl2br() が適用されます。)

n('テキスト')  // テキストを出力
$text = n('テキスト', true)  // テキストを作成

t()

入力欄用のテキストを作成&出力します。(htmlspecialchars() が適用されます。)

t('テキスト')  // テキストを出力
$text = t('テキスト', true)  // テキストを作成

h()

表示用のテキストを作成&出力します。(htmlspecialchars()nl2br() が適用されます。)

h('テキスト')  // テキストを出力
$html = h('テキスト', true)  // テキストを作成

language()

多言語化させた文言を取得できます。(この機能はVer8.4以降で対応しています。Ver8.10で関数名が現在のものに変更されました。)

具体的な使用方法は、「多言語に対応させる」を参照してください。

localdate()

日時を取得します。

localdate()  // タイムスタンプを取得
localdate('Y-m-d H:i:s')  // フォーマットして取得
localdate('Y年m月d日 H時i分s秒', 1375335520)  // タイムスタンプからフォーマットして取得
localdate('Y年m月d日 H時i分s秒', '2013-08-01 14:38:40')  // 文字列からフォーマットして取得

この関数の時差は config.phpMAIN_TIME に数値を代入する、もしくは $GLOBALS['_time'] に数値を代入することで調整できます。(第二引数を指定しなかったとき。)

clientip()

アクセス元のIPアドレスを取得します。

clientip()  // IPアドレスを取得
clientip(true)  // プロキシを考慮してIPアドレスを取得

ssl()

SSL接続か否かを判定します。

if (ssl()) {  // SSL接続か否かを判定
    // SSL接続である
} else {
    // SSL接続でない
}
if (ssl(true)) {  // プロキシを考慮してSSL接続か否かを判定
    // SSL接続である
} else {
    // SSL接続でない
}

token()

ワンタイムトークンを扱います。token('create') でトークンを発行し、フォームなどから送信し、$_REQUEST['_token'] で受信して、token('check') で確認できます。

二重投稿防止機能としてではなく、CSRF対策として実装しています。

$token = token('create')  // ワンタイムトークンを発行
$flag = token('check')  // ワンタイムトークンを確認

redirect()

リダイレクトします。

redirect('http://www.example.com/sample.html')  // 外部ページへリダイレクト
redirect('/message/list')  // 内部ページヘリダイレクト

forward()

処理を転送します。リダイレクトとは異なり、移動の際にHTTPリクエストは発生しません。

forward('/message/post')

debug()

配列の内容を表示します。

debug(表示したい配列)
$array = debug(表示したい配列, true)

benchmark()

ベンチマークテスト用に、処理時間とメモリ使用量を表示します。DEBUG_LEVEL2 のときに使用できます。(Ver8.5以降。)

benchmark()

以下のようにすると、ベントマーク表示の際に任意のラベル付きで表示されます。

benchmark('表示したいラベル')

第2引数を true にすると、DEBUG_LEVEL に関わらず使用できます。

logging()

ログを記録します。記録先は config.phpLOGGING_PATH で指定します。

logging('記録したいメッセージ')

ok()

処理完了ページ(正常終了)を表示します。画面はHTMLで表示されますが、GETかPOSTのリクエストで _type=xml を指定するとXML形式で、_type=json を指定するとJSON形式で表示します。(関数の第1引数で、xmljson を指定することもできます。)

app/views/ok.php があるとHTML画面のビューとして使われます。

また、/test1/test1/test2 へのリクエストの場合、app/views/ok_test1.php があると優先してHTML画面のビューとして使われます。

ok()
ok('json')

warning()

処理完了ページ(警告あり)を表示します。画面はHTMLで表示されますが、GETかPOSTのリクエストで _type=xml を指定するとXML形式で、_type=json を指定するとJSON形式で表示します。(関数の第2引数で、xmljson を指定することもできます。)

警告メッセージは文字列と配列のどちらでも渡すことができます。入力チェックエラーなど、問題があっても引き続きチェックを行ってまとめてエラーを表示する用途を想定しています。

app/views/warning.php があるとHTML画面のビューとして使われ、$_view['messages'] にエラー内容が格納されます。

また、/test1/test1/test2 へのリクエストの場合、app/views/warning_test1.php があると優先してHTML画面のビューとして使われます。

warning('警告メッセージ')
warning('警告メッセージ', 'json')

error()

処理完了ページ(エラーあり)を表示します。画面はHTMLで表示されますが、GETかPOSTのリクエストで _type=xml を指定するとXML形式で、_type=json を指定するとJSON形式で表示します。(関数の第2引数で、xmljson を指定することもできます。)

エラーメッセージは文字列のみ渡すことができます。不正アクセスエラーなど、問題があった時に即座に処理を停止してエラーを表示する用途を想定しています。

app/views/error.php があるとHTML画面のビューとして使われ、$_view['message'] にエラー内容が格納されます。

また、/test1/test1/test2 へのリクエストの場合、app/views/error_test1.php があると優先してHTML画面のビューとして使われます。

error('エラーメッセージ')
error('エラーメッセージ', 'json')

db_query()

データベースに命令を渡します。

$resource = db_query('SELECT * FROM members;');

db_result()

データベースから結果を受け取ります。

$resource = db_query('SELECT * FROM members;');
$results = db_result($resource);
print_r($results);

db_count()

データベースから結果件数を受け取ります。

$resource = db_query('SELECT * FROM members;');
$count = db_count($resource);

db_escape()

データベースに渡す値をエスケープします。

$string = db_escape('Whats\'s New!');

db_unescape()

エスケープした値を元に戻します。

$string = db_unescape($string);

db_placeholder()

プレースホルダを展開します。

$queries = db_placeholder(array(
    'where' => array('id >= :? AND id <= :?', array(1, 10)),
));

db_error()

エラーを表示します。

echo db_error();

db_select()

テーブルからデータを取得します。モデルによって自動作成される select_xxx() は、内部ではこの関数が呼ばれます。

$resource = db_select(array(
    'select'   => 'username',
    'from'     => 'users',
    'order_by' => 'sort, id',
));
$resource = db_select(array(
    'select'   => 'gender, COUNT(*)',
    'from'     => 'users',
    'where'    => 'deleted IS NULL',
    'group_by' => 'gender',
    'having'   => 'COUNT(*) > 10',
    'order_by' => 'sort, id',
    'offset'   => '20', // PostgreSQL使用時のみ
    'limit'    => '100',
    'option'   => 'FOR UPDATE',
));

db_insert()

テーブルにデータを追加します。モデルによって自動作成される insert_xxx() は、内部ではこの関数が呼ばれます。

db_update()

テーブルのデータを更新します。モデルによって自動作成される update_xxx() は、内部ではこの関数が呼ばれます。

db_delete()

テーブルのデータを削除します。モデルによって自動作成される delete_xxx() は、内部ではこの関数が呼ばれます。

db_last_insert_id()

テーブルに追加した最後のデータの主キーを取得します。

db_transaction()

トランザクションを開始します。

db_transaction()

db_commit()

トランザクションをコミットします。

db_commit()

db_rollback()

トランザクションをロールバックします。

db_rollback()

rand_number()

乱数を作成します。

$count = rand_number();  // 0以上の乱数を作成します。
$count = rand_number(5, 10);  // 5以上10以下の乱数を作成します。

rand_string()

ランダムな文字列を作成します。

$string = rand_string()  // 32文字位内のランダムな文字列を作成します。
$string = rand_string(5)  // 5文字位内のランダムな文字列を作成します。

test_equals()

期待する値と等しいかテストします。(単体テスト用。)

test_not_equals()

期待する値と等しくないかテストします。(単体テスト用。)

test_greaterthan()

期待する値より大きかテストします。(単体テスト用。)

test_greaterthanorequal()

期待する値以上かテストします。(単体テスト用。)

test_lessthan()

期待する値より小さいかテストします。(単体テスト用。)

test_lessthanorequal()

期待する値以下かテストします。(単体テスト用。)

test_contains()

期待する値を含むかテストします。(単体テスト用。)

test_not_contains()

期待する値を含まないかテストします。(単体テスト用。)

test_regexp()

期待する値が正規表現にマッチするかテストします。(単体テスト用。)

test_not_regexp()

期待する値が正規表現にマッチしないかテストします。(単体テスト用。)

test_array_haskey()

期待する配列のキーが存在するかテストします。(単体テスト用。)

test_array_not_haskey()

期待する配列のキーが存在しないかテストします。(単体テスト用。)

test_array_subset()

期待する配列の値が存在するかテストします。(単体テスト用。)

test_array_not_subset()

期待する配列の値が存在しないかテストします。(単体テスト用。)

フレームワークから提供されるプラグイン

hash.php

ハッシュを扱う命令が提供されます。

hash_salt()

ハッシュ用のソルトを取得します。

echo hash_salt();
hash_crypt()

文字列のハッシュを取得します。

echo hash_crypt('文字列', 'ソルト');

string.php

文字列を扱う命令が提供されます。

string_autolink()

文字列内のURLをリンクします。

echo string_autolink('文字列');

file.php

ファイルを扱う命令が提供されます。

file_info()

ファイルのサイズ(幅・高さ・容量)を取得します。

list($width, $height, $size) = file_info('ファイルのパス');
file_mimetype()

ファイルのマイムタイプを取得します。

$mimetype = file_mimetype('ファイル名');
file_resize()

画像ファイルをリサイズします。

$result = file_resize('ファイルのパス', '出力先', '幅', '高さ');
file_getcsv()

CSVファイルから1行読み込みます。

$csv_data = file_getcsv('ファイルハンドル');

directory.php

ディレクトリを扱う命令が提供されます。

directory_info()

ディレクトリの容量を取得します。

$size = directory_info('ディレクトリのパス');
directory_mkdir()

ディレクトリを作成します。

$result = directory_mkdir('ディレクトリのパス', 'パーミッション');
directory_rmdir()

ディレクトリを削除します。

$result = directory_rmdir('ディレクトリのパス');

cookie.php

Cookieを扱う命令が提供されます。

cookie_set()

Cookieをセットします。

$result = cookie_set('キー', '値', '有効期限');

mail.php

メールを扱う命令が提供されます。

mail_send()

メールを送信します。

$result = mail_send('送信先アドレス', '題名', '本文', 'メールヘッダ', 'MTAへ渡すコマンドライン引数', '添付ファイル');

ui.php

ユーザーインターフェースを扱う命令が提供されます。

ui_pager()

ページャーを取得します。

$pager = ui_pager(array(
    'key'       => 'page', // ページ数を決定する変数
    'count'     => 200, // 表示しようとしているデータの件数
    'size'      => 10, // 1ページあたりの表示件数
    'width'     => 5, // ページャーの幅
    'query'     => '?class_id=' . $_GET['class_id'] . '&', // ページャーのリンクで引き継ぐ値
    'label'     => array( // 各種ラベル
        'first' => '<<', // 最初のページ
        'last'  => '>>', // 最後のページ
        'back'  => '<', // 前のページ
        'next'  => '>', // 次のページ
    ),
));
ui_datetime()

日時選択の入力フォームを取得します。

$input = ui_datetime('日時やタイムスタンプ', '取得形式', 'オプション');