====== Apricot ユーティリティ ======
--- //[[http://www.y2sunlight.com|y2sunlight]] 2020-07-29//
[[apricot:usage:ja|Apricot ドキュメント に戻る]]
目次
* [[apricot:usage:ja:features|Apricot 特徴と概要]]
* [[apricot:usage:ja:config|Apricot 配置と構成]]
* [[apricot:usage:ja:errors-logging|Apricot ログとエラー処理]]
* [[apricot:usage:ja:http|Apricot リクエストとレスポンス]]
* [[apricot:usage:ja:frontend|Apricot フロントエンド]]
* [[apricot:usage:ja:database|Apricot データベース]]
* [[apricot:usage:ja:model|Apricot モデルとサービス]]
* [[apricot:usage:ja:middleware|Apricot ミドルウェア]]
* [[apricot:usage:ja:controller|Apricot コントローラ]]
* [[apricot:usage:ja:validation|Apricot バリデーション]]
* [[apricot:usage:ja:provider|Apricot サービスプロバイダー]]
* [[apricot:usage:ja:authentication|Apricot ユーザ認証]]
* Apricot ユーティリティ
----
===== ボイラープレート =====
ボイラープレートは良く使うフレームワークのコードパターンを関数として使用できるようにしたヘルパー関数です。
==== 環境と設定 ====
{{tablelayout?colwidth="250px"}}
^関数^概要^
|env($key, $default = null)|環境変数を返します。|
|app($dot = null, $default=null)|ドット表記キーで指定されたアプリケーション設定の値を返します。|
|app_has($dot = null)|アプリケーション設定キーが存在するかどうかを確認します。|
|config($key, $default = null)|ドット表記キーで指定された構成変数の値を返します。|
''env()'' は、環境変数を取得する関数です。第1引数にはキーを指定して下さい。第2引数はオプションでデフォルト値を指定することができます。環境変数は ''/your-project/.env'' ファイルの中に ''key=value'' の形式で保存されています。詳細は [[apricot:usage:ja:config#環境設定]] を参照して下さい。
$value = env('APP_NAME', $default);
''app()'' は、アプリケーション変数を取得する関数です。第1引数にはドット表記キーを指定します。。第2引数はオプションでデフォルト値を指定することができます。アプリケーション変数は ''/your-project/app.php'' ファイルの中に連想配列で保存されています。詳細は [[apricot:usage:ja:config#appphpファイル|app.phpファイル]] を参照して下さい。
$value = app('auth.expires_sec', $default);
''config()'' は、構成変数を取得する関数です。第1引数にはドット表記キーを指定します。第2引数はオプションでデフォルト値を指定することができます。この設定ファイルは ''/your-project/config/setting'' の下に機能毎に保存されます。構成変数の設定については [[apricot:usage:ja:config#設定管理]] を参照して下さい。
$value = config('monolog.level', $default);
\\
==== 例外 ====
{{tablelayout?colwidth="300px"}}
^関数^概要^
|abort(int $code, string $message=null)|HTTP例外(400,500番台)をスローします|
''abort()'' は、''HttpException'' をスローする関数です。通常はこの例外が発生すると[[apricot:usage:ja:errors-logging#集約例外ハンドラー]]が補足してエラーページを表示します。この関数については「[[apricot:usage:ja:errors-logging#コアの例外クラス]]」を参照して下さい。
abort(400);
\\
==== ディレクトリー ====
{{tablelayout?colwidth="250px"}}
^関数^概要^
|project_dir($path = null):string|プロジェクトディレクトリーまたはその子ディレクトリーの完全パス名を返します。|
|config_dir($path = null):string|configディレクトリーまたはその子ディレクトリーの完全パス名を返します。|
|assets_dir($path = null):string|アセットディレクトリーまたはその子ディレクトリーの完全パス名を返します。|
|var_dir($path = null):string|varディレクトリーまたはその子ディレクトリーの完全パス名を返します。|
|public_dir($path = null):string|パブリックディレクトリーまたはその子ディレクトリーの完全パス名を返します。|
''project_dir()'' は、第1引数が省略された場合、プロジェクトディレクトリーの完全パス名を返します。第1引数にその子ディレクトリーを指定すると、子ディレクトリーまでを含めた完全パス名を返します。
$dir = project_dir(); // '/your-project' を返します。
$dir = project_dir('temp'); // '/your-project/temp' を返します。
他の関数も同様に、Apricotの特定のディレクトリーを、またはその子ディレクトリーの完全パス名を返します。各ディレクトリーに関しては
「[[apricot:usage:ja:config#ディレクトリー構成]]」を参照して下さい。
\\
==== URLとパス ====
{{tablelayout?colwidth="250px"}}
^関数^概要^
|url($path = null):string|アプリケーションのURLまたはその子のURLを返します。|
|url_ver(string $filename)|アプリケーションのバージョンを含むファイルURLを返します。|
|route($path = null):string|ルーティングパスを返します。|
''url()'' は、第1引数が省略された場合、アプリケーションのURLを返します。第1引数にパスを指定すると、パスまでを含めたURLを返します。アプリケーションのURLは、環境変数 ''APP_URL'' から取得されますが、それを設定していない場合は、[[apricot:usage:ja:config#publicディレクトリー]]のURLのパス部分になります。
$url = url(); // アプリケーションのURL({your-app-url})を返します。
$url = url('js'); // '{your-app-url}/js' を返します。
$url = url('js/jquery-3.3.1.min.js'); // '{your-app-url}/js/jquery-3.3.1.min.js' を返します。
''url_ver()'' は、アプリケーションのバージョンを含むファイルURLを返します。URLの末尾にアプリケーションのバージョン番号を付加する点を除いて ''url()'' と同じです。バージョン番号は、環境変数 ''APP_VERSION'' から取得します。この関数は、アセットファイル用のURLを取得する場合に使用して下さい。
$url = url('js/main.js'); // '{your-app-url}/js/main.js?v=1.0.0' を返します。
''route()'' は、第1引数が省略された場合、ルーティングパスのルートを返します。第1引数にサブパスを指定すると、サブパスまでを含めたルーティングパスを返します。ルーティングパスのルートは、[[apricot:usage:ja:config#publicディレクトリー]]のURLのパス部分と同じです。
$path = route(); // ルートパス({your-app-path})を返します。
$path = route('User/{$id}/edit'); // '{your-app-path}/User/1/edit' を返します。
\\
==== アクション ====
{{tablelayout?colwidth="250px"}}
^関数^概要^
|controllerName():string|現在のコントローラー名を返します。|
|actionName():string|現在のアクション名を返します。|
''controllerName()'' と ''actionName()'' は、それぞれ現在のコントローラー名とアクション名を返します。例えば、ユーザコントローラーのindexアクションがインボークされている場合は、以下のような結果になります。
$controller = controllerName(); // 'UserController' を返します。
$action = actionName(); // 'index' を返します。
\\
==== トランスレーション ====
{{tablelayout?colwidth="350px"}}
^関数^概要^
|__($key, $params = [])|翻訳されたメッセージを返します。|
|inputLabels (string $message_key):array|入力変数のラベル配列を返します。|
''__()'' は、各言語用のメッセージを取得する関数です。第1引数にはドット表記キーを指定します。パラメータ付きのメッセージの場合は、第2引数に ''[':param'=>'value']'' の形式の連想配列を指定します。詳しくは「[[apricot:usage:ja:frontend#多言語化]]」を参照して下さい。
$message = __('messages.home.msg');
// パラメータ付きメッセージの取得
$message = __('messages.home.hello', [':name'=>'Scott']);
''inputLabels()'' は、入力変数のラベル配列を返します。第1引数には言語メッセージのドット表記キーを指定します。この関数は、バリデーション失敗時のメッセージを作成することを手助けします。詳しくは、「バリデーションの使用例の[[apricot:usage:ja:validation#入力変数のラベリング]]」を参照して下さい。
$labels = inputLabels('messages.user.create');
\\
==== リクエスト ====
{{tablelayout?colwidth="300px"}}
^関数^機能^
|input (string $key, $default=null)|フォームデータを取得。''Input::get()'' と同じ。|
|queryString (string $key, $default=null)|クエリ文字列を取得取得。''QueryString::get()'' と同じ。|
|session (string $key, $default=null)|セッション変数を取得取得。''Session::get()'' と同じ。|
|flash (string $key, $default=null)|フラッシュ変数を取得取得。''Flash::get()'' と同じ。|
|cookie (string $key, $default=null)|クッキー変数を取得取得。''Cookie::get()'' と同じ。|
''input()'' は、フォームの送信データ(入力変数)を取得する関数です。第1引数には変数のキーを指定します。第2引数はオプションでデフォルト値を指定することができます。
$account = input('account');
他の関数も同様に、第1引数には変数のキーを、第2引数はオプションでデフォルト値を指定することができます。リクエスト変数に関しては 「[[apricot:usage:ja:http#リクエスト]]」を参照して下さい。
\\
==== 前回値 ====
{{tablelayout?colwidth="300px"}}
^関数^概要^
|old(string $key, $default = null):string|キーを指定して前回の入力値を取得します|
|back():string|前回のURIを取得します|
|errors():Apricot\Foundation\ErrorBag|前回のエラーバッグを取得します|
''old()'' は、フラッシュで渡された前回の入力値を取得する関数です。第1引数は入力変数と同じキーを、第2引数はオプションでデフォルト値を指定します。以下はHTMLテンプレート内での ''old()'' の例です。このように、データ編集ページの場合、通常は第2引数にはモデルから取得したテンプレート変数を渡します。
''back()'' は、前回のURIを取得する関数です。通常は以下のように ''redirect()'' 関数と共に使用し送信元のページに戻ります。
return redirect(back());
''errors()'' は、前ページからフラッシュで渡された[[apricot:usage:ja:errors-logging#エラーバッグ]]を取得する関数です。以下はHTMLテンプレート内での ''errors()'' の例です。エラーバッグのcount()メソッドでエラーの数を取得し、エラーがあれば、その内容を出力しています。
@if($errors->count())
@foreach($errors as $key=>$value)
{{$value}}
@endforeach
@endif
\\
==== レスポンス ====
{{tablelayout?colwidth="400px"}}
^関数^概要^
|render(string $view=null, array $variables=[])\\ :Apricot\Foundation\Response\RenderResponse|RenderResponseを返します。|
|redirect(string $url)\\ :Apricot\Foundation\Response\RedirectResponse|RedirectResponseを返します。|
''render()'' は、テンプレート名(string)とテンプレート変数(array)を指定してHTMLをレンダリングして''RenderResponse''オブジェクトを返す関数です。
return render("user.index", ["users"=>$users]);
''redirect()'' は、リダイレクト先URIを指定して ''RedirectResponse'' オブジェクトを返す関数です。
return redirect(route("user/{$id}/edit"));
これらの関数の詳細は「[[apricot:usage:ja:http#ボイラープレート1|レスポンスのボイラープレート]]」を参照して下さい。
\\