グローバル関数と定数

CodeIgniterは、グローバルに定義されており、いつでも使用できるいくつかの関数と変数を提供します。これらを使用するために、追加のライブラリやヘルパーを読み込む必要はありません。

グローバル関数

サービスアクセッサ

cache([$key])
パラメータ:
  • $key (string) – キャッシュから取得するアイテムのキャッシュ名(オプション)

戻り値:

キャッシュオブジェクト、またはキャッシュから取得されたアイテム

戻り値の型:

mixed

$keyが指定されていない場合、Cacheエンジンインスタンスを返します。$keyが指定されている場合、現在キャッシュに保存されている$keyの値を返します。値が見つからない場合はnullを返します。

<?php

$foo   = cache('foo');
$cache = cache();
config(string $name[, bool $getShared = true])
パラメータ:
  • $name (string) – 設定クラス名。

  • $getShared (bool) – 共有インスタンスを返すかどうか。

戻り値:

設定インスタンス。

戻り値の型:

object|null

ファクトリから設定インスタンスを取得するより簡単な方法。

詳細は設定ファクトリを参照してください。

config()は内部的にFactories::config()を使用します。最初の параметр $nameの詳細については、クラスの読み込みを参照してください。

パラメータ:
  • $name (string) – クッキー名

  • $value (string) – クッキー値

  • $options (array) – クッキーオプション

戻り値の型:

Cookie

戻り値:

Cookieインスタンス

スロー:

CookieException

新しいCookieインスタンスを作成するより簡単な方法。

cookies([array $cookies = [][, bool $getGlobal = true]])
パラメータ:
  • $cookies (array) – getGlobalfalseの場合、これはCookieStoreのコンストラクタに渡されます。

  • $getGlobal (bool) – falseの場合、CookieStoreの新しいインスタンスを作成します。

戻り値の型:

CookieStore

戻り値:

現在のResponseに保存されているCookieStoreのインスタンス、または新しいCookieStoreインスタンス。

Responseによって保持されているグローバルCookieStoreインスタンスを取得します。

env($key[, $default = null])
パラメータ:
  • $key (string) – 取得する環境変数の名前

  • $default (mixed) – 値が見つからない場合に返すデフォルト値。

戻り値:

環境変数、デフォルト値、またはnull。

戻り値の型:

mixed

以前に環境に設定された値を取得したり、値が見つからない場合はデフォルト値を返したりするために使用されます。ブール値は文字列表現ではなく、実際のブール値に変換されます。

特に、データベース設定、APIキーなど、環境固有の値を設定するための**.env**ファイルと組み合わせて使用する場合に便利です。

esc($data[, $context = 'html'[, $encoding]])
パラメータ:
  • $data (string|array) – エスケープする情報。

  • $context (string) – エスケープコンテキスト。デフォルトは 'html' です。

  • $encoding (string) – 文字列の文字エンコーディング。

戻り値:

エスケープされたデータ。

戻り値の型:

mixed

XSS攻撃を防ぐために、ウェブページへの組み込みデータをエスケープします。Laminas Escaperライブラリを使用して、データの実際のフィルタリングを行います。

$dataが文字列の場合、単純にエスケープして返します。$dataが配列の場合、キーと値のペアの各「値」をループしてエスケープします。

有効なコンテキスト値: htmljscssurlattrraw

helper($filename)
パラメータ:
  • $filename (string|array) – 読み込むヘルパーファイルの名前、または名前の配列。

ヘルパーファイルを読み込みます。

詳細は、ヘルパー関数ページを参照してください。

lang($line[, $args[, $locale]])
パラメータ:
  • $line (string) – 取得するテキストの行。

  • $args (array) – プレースホルダーを置き換えるデータの配列。

  • $locale (string) – デフォルトのロケールではなく、使用する異なるロケールを指定します。

エイリアス文字列に基づいて、ロケール固有のファイルを取得します。

詳細は、ローカライゼーションページを参照してください。

model($name[, $getShared = true[, &$conn = null]])
パラメータ:
  • $name (string) – モデルのクラス名。

  • $getShared (boolean) – 共有インスタンスを返すかどうか。

  • $conn (ConnectionInterface|null) – データベース接続。

戻り値:

モデルインスタンス

戻り値の型:

オブジェクト

モデルインスタンスを取得するより簡単な方法。

model()は内部的にFactories::models()を使用します。最初の引数$nameの詳細については、クラスの読み込みを参照してください。

CodeIgniterのモデルの使用も参照してください。

old($key[, $default = null[, $escape = 'html']])
パラメータ:
  • $key (string) – 確認する古いフォームデータの名前。

  • $default (string|null) – $keyが存在しない場合に返すデフォルト値。

  • $escape (false|string) – エスケープコンテキスト、または無効にする場合はfalse。

戻り値:

定義されたキーの値、またはデフォルト値。

戻り値の型:

array|string|null

フォームの送信からの「古い入力データ」に簡単にアクセスするための方法を提供します。

<?php

// in controller, checking form submittal
if (! $model->save($user)) {
    // 'withInput()' is what specifies "old data" should be saved.
    return redirect()->back()->withInput();
}

?>

<!-- In your view file: -->
<input type="email" name="email" value="<?= old('email') ?>">

<!-- Or with arrays: -->
<input type="email" name="user[email]" value="<?= old('user.email') ?>">

注記

set_value()set_select()set_checkbox()、およびset_radio()関数(フォームヘルパー内)を使用している場合、この機能は組み込まれています。フォームヘルパーを使用していない場合にのみ、この関数を使用する必要があります。

session([$key])
パラメータ:
  • $key (string) – 確認するセッション項目の名前。

戻り値:

$keyがない場合はSessionオブジェクトのインスタンス、$keyに対してセッションで見つかった値、またはnull。

戻り値の型:

mixed

セッションクラスにアクセスし、保存された値を取得するための便利な方法を提供します。詳細は、セッションページを参照してください。

timer([$name])
パラメータ:
  • $name (string) – ベンチマークポイントの名前。

戻り値:

Timerインスタンス

戻り値の型:

CodeIgniterDebugTimer

Timerクラスにすばやくアクセスできる便利なメソッドです。唯一のパラメータとしてベンチマークポイントの名前を渡すことができます。これにより、このポイントからタイミングが開始されるか、同じ名前のタイマーが既に実行されている場合はタイミングが停止します。

<?php

// Get an instance
$timer = timer();

// Set timer start and stop points
timer('controller_loading');    // Will start the timer
// ...
timer('controller_loading');    // Will stop the running timer
view($name[, $data[, $options]])
パラメータ:
  • $name (string) – 読み込むファイルの名前。

  • $data (array) – ビュー内で使用できるようにするキーと値のペアの配列。

  • $options (array) – レンダリングクラスに渡されるオプションの配列。

戻り値:

ビューからの出力。

戻り値の型:

文字列

現在のRendererInterface互換クラスを取得し、指定されたビューのレンダリングを指示します。コントローラー、ライブラリ、およびルーティングされたクロージャで使用できる便利なメソッドを提供します。

現在、これらのオプションは$options配列内で使用できます。

  • saveDataは、同じリクエスト内のview()への複数の呼び出し間でデータが永続することを指定します。データを永続化しない場合は、falseを指定します。

  • cacheは、ビューをキャッシュする秒数を指定します。詳細は、ビューのキャッシュを参照してください。

  • debugをfalseに設定して、デバッグツールバーのデバッグコードの追加を無効にすることができます。

$option配列は、主にTwigなどのライブラリとのサードパーティ統合を容易にするために提供されています。

<?php

$data = ['user' => $user];

echo view('user_profile', $data);

詳細は、ビューページを参照してください。

view_cell($library[, $params = null[, $ttl = 0[, $cacheName = null]]])
パラメータ:
  • $library (string) –

  • $params (null) –

  • $ttl (integer) –

  • $cacheName (string|null) –

戻り値:

ビューセルは、他のクラスによって管理されるHTMLチャンクを挿入するためにビュー内で使用されます。

戻り値の型:

文字列

詳細は、ビューセルページを参照してください。

その他の関数

app_timezone()
戻り値:

アプリケーションの日付表示設定タイムゾーン。

戻り値の型:

文字列

アプリケーションの日付表示設定タイムゾーンを返します。

csp_script_nonce()
戻り値:

スクリプトタグのCSP nonce属性。

戻り値の型:

文字列

スクリプトタグのnonce属性を返します。例: nonce="Eskdikejidojdk978Ad8jf"コンテンツセキュリティポリシーを参照してください。

csp_style_nonce()
戻り値:

スタイルタグのCSP nonce属性。

戻り値の型:

文字列

スタイルタグのnonce属性を返します。例:nonce="Eskdikejidojdk978Ad8jf"。詳細はコンテンツセキュリティポリシーを参照してください。

csrf_token()
戻り値:

現在のCSRFトークンの名前。

戻り値の型:

文字列

現在のCSRFトークンの名前を返します。

csrf_header()
戻り値:

現在のCSRFトークンのヘッダー名。

戻り値の型:

文字列

現在のCSRFトークンのヘッダー名。

csrf_hash()
戻り値:

現在のCSRFハッシュの値。

戻り値の型:

文字列

現在のCSRFハッシュ値を返します。

csrf_field()
戻り値:

必要なCSRF情報を含む隠し入力のHTML文字列。

戻り値の型:

文字列

CSRF情報が既に挿入された隠し入力を返します。

<input type="hidden" name="{csrf_token}" value="{csrf_hash}">
csrf_meta()
戻り値:

必要なCSRF情報を含むメタタグのHTML文字列。

戻り値の型:

文字列

CSRF情報が既に挿入されたメタタグを返します。

<meta name="{csrf_header}" content="{csrf_hash}">
force_https($duration = 31536000[, $request = null[, $response = null]])
パラメータ:
  • $duration (int) – ブラウザがリソースへのリンクをHTTPSに変換する秒数。

  • $request (RequestInterface) – 現在のRequestオブジェクトのインスタンス。

  • $response (ResponseInterface) – 現在のResponseオブジェクトのインスタンス。

ページが現在HTTPS経由でアクセスされているかどうかを確認します。HTTPSの場合、何も起こりません。そうでない場合、ユーザーは現在のURIにHTTPS経由でリダイレクトされます。$durationの間、HTTP Strict Transport Security (HTST) ヘッダーを設定します。これは、最新のブラウザにHTTPリクエストをHTTPSリクエストに自動的に変更するよう指示します。

注記

この関数は、Config\App:$forceGlobalSecureRequestsをtrueに設定した場合にも使用されます。

function_usable($function_name)
パラメータ:
  • $function_name (string) – チェック対象の関数。

戻り値:

関数が存在し、安全に呼び出せる場合はtrue、そうでない場合はfalse。

戻り値の型:

bool

is_cli()
戻り値:

スクリプトがコマンドラインから実行されている場合はtrue、そうでない場合はfalse。

戻り値の型:

bool

is_really_writable($file)
パラメータ:
  • $file (string) – チェック対象のファイル名。

戻り値:

ファイルに書き込める場合はtrue、そうでない場合はfalse。

戻り値の型:

bool

is_windows([$mock = null])
パラメータ:
  • $mock (bool|null) – 指定した場合、ブール値であれば戻り値として使用されます。

戻り値の型:

bool

プラットフォームがWindowsで実行されているかどうかを検出します。

注記

$mockに提供されたブール値は、後続の呼び出しで保持されます。このモック値をリセットするには、関数呼び出しに明示的にnullを渡す必要があります。これにより、関数は自動検出を使用するようにリフレッシュされます。

<?php

is_windows(true);

// some code ...

if (is_windows()) {
    // do something ..
}

is_windows(null); // reset
log_message($level, $message[, $context])
パラメータ:
  • $level (string) – 重大度のレベル。

  • $message (string) – ログに記録するメッセージ。

  • $context (array) – $message内で置き換えられるタグとその値の連想配列。

戻り値:

正常にログに記録された場合はtrue、ログに記録中に問題が発生した場合はfalse。

戻り値の型:

bool

app/Config/Logger.phpで定義されているログハンドラーを使用してメッセージをログに記録します。

レベルは、emergencyalertcriticalerrorwarningnoticeinfo、またはdebugのいずれかの値にすることができます。

コンテキストを使用して、メッセージ文字列の値を置換できます。詳細については、ログ情報ページを参照してください。

redirect(string $route)
パラメータ:
  • $route (string) – ユーザーをリダイレクトするルート名またはController::method。

戻り値の型:

RedirectResponse

リダイレクトを簡単に作成できるRedirectResponseインスタンスを返します。詳細はリダイレクトを参照してください。

remove_invisible_characters($str[, $urlEncoded = true])
パラメータ:
  • $str (string) – 入力文字列。

  • $urlEncoded (bool) – URLエンコードされた文字も削除するかどうか。

戻り値:

サニタイズされた文字列。

戻り値の型:

文字列

この関数は、Java\0scriptのように、ASCII文字間にヌル文字を挿入するのを防ぎます。

<?php

remove_invisible_characters('Java\\0script');
// Returns: 'Javascript'
request()

バージョン4.3.0の新機能。

戻り値:

共有Requestオブジェクト。

戻り値の型:

IncomingRequest|CLIRequest

この関数はServices::request()のラッパーです。

response()

バージョン4.3.0の新機能。

戻り値:

共有Responseオブジェクト。

戻り値の型:

Response

この関数はServices::response()のラッパーです。

route_to($method[, ...$params])
パラメータ:
  • $method (string) – ルート名またはController::method。

  • ...$params (int|string) – ルートに渡される1つ以上のパラメータ。最後のパラメータでロケールを設定できます。

戻り値:

ルートパス(baseURLに対する相対URIパス)。

戻り値の型:

文字列

注記

この関数は、コントローラー/メソッドにapp/Config/routes.phpで定義されたルートが必要です。

重要

route_to()は、サイトの完全なURIパスではなく、ルートパスを返します。baseURLにサブフォルダが含まれる場合、戻り値はリンクのURIと同じではありません。その場合は、代わりにurl_to()を使用してください。URL構造も参照してください。

コントローラー::メソッドの組み合わせに基づいてルートを生成します。パラメータが提供されている場合は、その効果も考慮します。

<?php

// The route is defined as:
$routes->get('users/(:num)/gallery/(:num)', 'Galleries::showUserGallery/$1/$2');

?>

<?php

// Generate the route with user ID 15, gallery 12:
route_to('Galleries::showUserGallery', 15, 12);
// Result: '/users/15/gallery/12'

ルート名に基づいてルートを生成します。

<?php

// The route is defined as:
$routes->get('users/(:num)/gallery/(:num)', 'Galleries::showUserGallery/$1/$2', ['as' => 'user_gallery']);

?>

<?php

// Generate the route with user ID 15, gallery 12:
route_to('user_gallery', 15, 12);
// Result: '/users/15/gallery/12'

v4.3.0以降、ルートで{locale}を使用する場合、ロケール値を最後のパラメータとしてオプションで指定できます。

<?php

// The route is defined as:
$routes->add(
    '{locale}/users/(:num)/gallery/(:num)',
    'Galleries::showUserGallery/$1/$2',
    ['as' => 'user_gallery']
);

?>

<?php

// Generate the route with user ID 15, gallery 12 and locale en:
route_to('user_gallery', 15, 12, 'en');
// Result: '/en/users/15/gallery/12'
service($name[, ...$params])
パラメータ:
  • $name (string) – 読み込むサービスの名前。

  • $params (mixed) – サービスメソッドに渡す1つ以上のパラメータ。

戻り値:

指定されたサービスクラスのインスタンス。

戻り値の型:

mixed

システムで定義されているサービスに簡単にアクセスできます。これは常にクラスの共有インスタンスを返すため、単一のリクエスト中に何回呼び出されても、クラスインスタンスは1つしか作成されません。

<?php

$logger   = service('logger');
$renderer = service('renderer', APPPATH . 'views/');
single_service($name[, ...$params])
パラメータ:
  • $name (string) – 読み込むサービスの名前。

  • $params (mixed) – サービスメソッドに渡す1つ以上のパラメータ。

戻り値:

指定されたサービスクラスのインスタンス。

戻り値の型:

mixed

上記のservice()関数と同一ですが、この関数のすべての呼び出しはクラスの新しいインスタンスを返し、serviceは毎回同じインスタンスを返します。

slash_item($item)
パラメータ:
  • $item (string) – 設定項目名。

戻り値:

設定項目、または項目が存在しない場合はnull。

戻り値の型:

string|null

スラッシュを追加した(空でない場合)設定ファイル項目を取得します。

stringify_attributes($attributes[, $js])
パラメータ:
  • $attributes (mixed) – 文字列、キーと値のペアの配列、またはオブジェクト。

  • $js (boolean) – 値に引用符が不要な場合(Javascriptスタイル)true。

戻り値:

属性のキーと値のペアを含む文字列(カンマ区切り)。

戻り値の型:

文字列

属性の文字列、配列、またはオブジェクトを文字列に変換するために使用されるヘルパー関数。

グローバル定数

以下の定数は、アプリケーション内のどこからでも常に使用できます。

コア定数

定数 APPPATH

app ディレクトリへのパスです。

定数 ROOTPATH

プロジェクトルートディレクトリへのパスです。APPPATH の一つ上の階層です。

定数 SYSTEMPATH

system ディレクトリへのパスです。

定数 FCPATH

フロントコントローラーを含むディレクトリへのパスです。

定数 WRITEPATH

書き込み可能なディレクトリへのパスです。

時間定数

定数 SECOND

1 に等しい。

定数 MINUTE

60 に等しい。

定数 HOUR

3600 に等しい。

定数 DAY

86400 に等しい。

定数 WEEK

604800 に等しい。

定数 MONTH

2592000 に等しい。

定数 YEAR

31536000 に等しい。

定数 DECADE

315360000 に等しい。