目次

Apricot ユーティリティ

y2sunlight 2020-07-29

Apricot ドキュメント に戻る

目次


ボイラープレート

ボイラープレートは良く使うフレームワークのコードパターンを関数として使用できるようにしたヘルパー関数です。

環境と設定

関数概要
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 の形式で保存されています。詳細は 環境設定 を参照して下さい。

$value = env('APP_NAME', $default);

app() は、アプリケーション変数を取得する関数です。第1引数にはドット表記キーを指定します。。第2引数はオプションでデフォルト値を指定することができます。アプリケーション変数は /your-project/app.php ファイルの中に連想配列で保存されています。詳細は app.phpファイル を参照して下さい。

$value = app('auth.expires_sec', $default);

config() は、構成変数を取得する関数です。第1引数にはドット表記キーを指定します。第2引数はオプションでデフォルト値を指定することができます。この設定ファイルは /your-project/config/setting の下に機能毎に保存されます。構成変数の設定については 設定管理 を参照して下さい。

$value = config('monolog.level', $default);


例外

関数概要
abort(int $code, string $message=null)HTTP例外(400,500番台)をスローします

abort() は、HttpException をスローする関数です。通常はこの例外が発生すると集約例外ハンドラーが補足してエラーページを表示します。この関数については「コアの例外クラス」を参照して下さい。

abort(400);


ディレクトリー

関数概要
project_dir($path = null):stringプロジェクトディレクトリーまたはその子ディレクトリーの完全パス名を返します。
config_dir($path = null):stringconfigディレクトリーまたはその子ディレクトリーの完全パス名を返します。
assets_dir($path = null):stringアセットディレクトリーまたはその子ディレクトリーの完全パス名を返します。
var_dir($path = null):stringvarディレクトリーまたはその子ディレクトリーの完全パス名を返します。
public_dir($path = null):stringパブリックディレクトリーまたはその子ディレクトリーの完全パス名を返します。

project_dir() は、第1引数が省略された場合、プロジェクトディレクトリーの完全パス名を返します。第1引数にその子ディレクトリーを指定すると、子ディレクトリーまでを含めた完全パス名を返します。

$dir = project_dir();       // '/your-project' を返します。
$dir = project_dir('temp'); // '/your-project/temp' を返します。

他の関数も同様に、Apricotの特定のディレクトリーを、またはその子ディレクトリーの完全パス名を返します。各ディレクトリーに関しては 「ディレクトリー構成」を参照して下さい。


URLとパス

関数概要
url($path = null):stringアプリケーションのURLまたはその子のURLを返します。
url_ver(string $filename)アプリケーションのバージョンを含むファイルURLを返します。
route($path = null):stringルーティングパスを返します。

url() は、第1引数が省略された場合、アプリケーションのURLを返します。第1引数にパスを指定すると、パスまでを含めたURLを返します。アプリケーションのURLは、環境変数 APP_URL から取得されますが、それを設定していない場合は、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引数にサブパスを指定すると、サブパスまでを含めたルーティングパスを返します。ルーティングパスのルートは、publicディレクトリーのURLのパス部分と同じです。

$path = route(); // ルートパス({your-app-path})を返します。
$path = route('User/{$id}/edit'); // '{your-app-path}/User/1/edit' を返します。


アクション

関数概要
controllerName():string現在のコントローラー名を返します。
actionName():string現在のアクション名を返します。

controllerName()actionName() は、それぞれ現在のコントローラー名とアクション名を返します。例えば、ユーザコントローラーのindexアクションがインボークされている場合は、以下のような結果になります。

$controller = controllerName(); // 'UserController' を返します。
$action = actionName();         // 'index' を返します。


トランスレーション

関数概要
__($key, $params = [])翻訳されたメッセージを返します。
inputLabels (string $message_key):array入力変数のラベル配列を返します。

__() は、各言語用のメッセージを取得する関数です。第1引数にはドット表記キーを指定します。パラメータ付きのメッセージの場合は、第2引数に [':param'=>'value'] の形式の連想配列を指定します。詳しくは「多言語化」を参照して下さい。

$message = __('messages.home.msg');
 
// パラメータ付きメッセージの取得
$message = __('messages.home.hello', [':name'=>'Scott']);

inputLabels() は、入力変数のラベル配列を返します。第1引数には言語メッセージのドット表記キーを指定します。この関数は、バリデーション失敗時のメッセージを作成することを手助けします。詳しくは、「バリデーションの使用例の入力変数のラベリング」を参照して下さい。

$labels = inputLabels('messages.user.create');


リクエスト

関数機能
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引数はオプションでデフォルト値を指定することができます。リクエスト変数に関しては 「リクエスト」を参照して下さい。


前回値

関数概要
old(string $key, $default = null):stringキーを指定して前回の入力値を取得します
back():string前回のURIを取得します
errors():Apricot\Foundation\ErrorBag前回のエラーバッグを取得します

old() は、フラッシュで渡された前回の入力値を取得する関数です。第1引数は入力変数と同じキーを、第2引数はオプションでデフォルト値を指定します。以下はHTMLテンプレート内での old() の例です。このように、データ編集ページの場合、通常は第2引数にはモデルから取得したテンプレート変数を渡します。

<input type="text" name="account" id="account" value="{{old('account',$user->account)}}">

back() は、前回のURIを取得する関数です。通常は以下のように redirect() 関数と共に使用し送信元のページに戻ります。

return redirect(back());

errors() は、前ページからフラッシュで渡されたエラーバッグを取得する関数です。以下はHTMLテンプレート内での errors() の例です。エラーバッグのcount()メソッドでエラーの数を取得し、エラーがあれば、その内容を出力しています。

@if($errors->count())
    @foreach($errors as $key=>$value)
        <div class="alert">{{$value}}</div>
    @endforeach
@endif


レスポンス

関数概要
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"));

これらの関数の詳細は「レスポンスのボイラープレート」を参照して下さい。