PHPフレームワークLaravelの小さなテクニック2つ

1915 ワード

LaravelをPHPの開発フレームワークとして使って久しいのですが、公式文書ではカバーされていないところもあり、時間ごとに忘れてしまうこともあります.最近簡単な整理をしたついでにメモしておきます.
1.Route::controllerルーティングの名前:
Route::controllerを使用すると、ルーティングのカスタマイズで多くの作業を減らすことができますが、使用するために特定のルーティングに名前を付ける必要がある場合がありますが、Route::controllerメソッドは、1つのController内のすべてのメソッドのルーティングを一括指定します.これはどのように名前を付けますか.コントロール($uri,$コントロール,$names=array()の3番目のパラメータを使用できます.これは配列であり、配列のkeyはメソッドであり、配列のvalueは名前です.
 
  
// :
public function controller($uri, $controller, $names = array())
 
// :
Route::controller('admin', 'AdminController');
 
// :
Route::controller('admin', 'AdminController', array(
    'getIndex' => 'admin.index',
    'getLogin' => 'admin.login',
    'postLogin' => 'admin.login'
  ));

2.システム変数から現在の運転環境を判断する
システムのデフォルトのローカル環境かどうかを判断する方法は、「local」配列にローカル環境としてのホスト名のセットを指定することです.例えば、オフィス、Macbookで開発するなど、2つのホスト名を書き込むのは面倒だと思います.$によって変更されましたSERVER['LARAVEL_ENV']で判断すると、私はすべての開発機で'LARAVEL_を定義することができます.ENV'の環境変数は、値が「local」であるため、開発機では自動的に「local」環境と認識され、他の場合は「production」と認識されます.
 
  
//
$env = $app->detectEnvironment(array(
    'local' => array('homestead');
));
 
// ,
$env = $app->detectEnvironment(function(){
    $_env = getenv('LARAVEL_ENV') ? getenv('LARAVEL_ENV') : array(
      'local' => array('homestead')
    );
    return $_env;
});
 
// $_SERVER['LARAVEL_ENV']
// Apache , SetEnv ,
// Nginx , fastcgi_param