この記事では、PHP フレームワーク Laravel の 2 つのヒントを主に紹介します。困っている友達は参考にしてください
私はPHP開発フレームワークとしてLaravelを長い間使ってきましたが、公式ドキュメントに載っていないことがいくつかあり、時々忘れてしまいます。最近簡単な整理をしてメモを取りました。
1. Route::controller ルート命名:
Route::controller を使用すると、ルートのカスタマイズの多くの作業を軽減できますが、場合によっては、使用する特定のルートに名前を付ける必要があります。ただし、Route::controller メソッドは、コントローラー内のすべてのメソッドのルートをバッチ処理します。名前付けはどうすればよいでしょうか?controller($uri, $controller, $names = array()) の 3 番目のパラメータは配列のメソッドです。という名前です。
コードは次のとおりです:
// この関数の署名:
パブリック関数コントローラー($uri, $controller, $names = array())
// 通常、名前を付けずに使用されます:
Route::controller('admin', 'AdminController');
// いくつかのメソッドに名前を付ける必要がある場合:
Route::controller('admin', 'AdminController', array(
)'getIndex' => 'admin.index',
'getLogin' => 'admin.login',
'postLogin' => 'admin.login'
));
2. システム変数に基づいて現在の動作環境を決定します
ローカル環境かどうかを判断するシステムのデフォルトの方法は、「ローカル」配列でローカル環境としてホスト名のセットを指定することです。たとえば、オフィスのコンピューターまたは Macbook で開発を行っている場合は、次のようにする必要があります。両方のホスト名を書きますが、非常に面倒です。 $_SERVER['LARAVEL_ENV'] に基づいて判断するように変更しました。これにより、すべての開発マシンで 'LARAVEL_ENV' の環境変数を 'local' の値で定義できるようになり、開発マシンが自動的に 'ローカル」環境、その他の場合は「実稼働」環境。
コードは次のとおりです:
// デフォルトの書き方ではホスト名に基づいてローカル環境かどうかを判断します
$env = $app->detectEnvironment(array(
)'local' => array('homestead');
));
// 最初にシステム変数が指定されているかどうかを判断し、指定されていない場合はホスト名を判断するように修正
$env = $app->detectEnvironment(function(){
)$_env = getenv('LARAVEL_ENV') ? getenv('LARAVEL_ENV') : array(
)'local' => array('homestead')
);
$_envを返す;
});
// これは実際には $_SERVER['LARAVEL_ENV'] の値を読み取るためのものです
// Apache では、SetEnv を使用して設定できます、
// Nginx では、fastcgi_param を使用して
を設定できます