Laravel, como fachadas, suporte para componentes de aplicativos YII 2. Exatamente o que você deseja: simples, extenso e com um suporte de conclusão automática do IDE via PHPDOC para que você não fique desapontado.
A maneira preferida de instalar esta extensão é através do compositor.
Correr
composer require " sergeymakinen/yii2-facades:^1.0 "ou adicione
"sergeymakinen/yii2-facades" : " ^1.0 " para a seção requisito do seu arquivo composer.json .
Basicamente, você instala a extensão e começa a usá -la como faz com todos os componentes normais de aplicativos YII 2, mas com uma sintaxe mais curta mais curta, vamos dar uma olhada (caso você se pergunte, todas as fachadas padrão, incluindo uma Facade base abstrata residem sob um nome de nome de sergeymakinenfacades ):
Antes:
$ random = Yii:: $ app -> security -> generateRandomString ( 128 );Depois:
$ random = Security:: generateRandomString ( 128 );Antes:
$ users = Yii:: $ app -> db -> createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Depois:
$ users = Db:: createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Antes:
$ price = Yii:: $ app -> formatter -> asCurrency ( 123456.78 , ' USD ' );Depois:
$ price = Formatter:: asCurrency ( 123456.78 , ' USD ' ); Qualquer propriedade pública de classe $foo pode ser obtido por meio de um acessador:
$ value = YourFacadeName:: getFoo ()E conjunto:
YourFacadeName:: setFoo ( $ value )| Nome | Alias de componentes fachados | Componente/interface |
|---|---|---|
Asset | Yii::$app->assetManager | yiiwebAssetManager |
Auth | Yii::$app->auth | yiirbacManagerInterface |
Cache | Yii::$app->cache | yiicachingCache |
Db | Yii::$app->db | yiidbConnection |
Error | Yii::$app->errorHandler | yiiconsoleErrorHandler |
yiiwebErrorHandler | ||
Formatter | Yii::$app->formatter | yiii18nFormatter |
Http | Yii::$app->httpClient | yiihttpclientClient |
I18n | Yii::$app->i18n | yiii18nI18N |
Log | Yii::$app->log | yiilogDispatcher |
Mailer | Yii::$app->mailer | yiiswiftmailerMailer |
Redis | Yii::$app->redis | yiiredisConnection |
Request | Yii::$app->request | yiiconsoleRequest |
yiiwebRequest | ||
Response | Yii::$app->response | yiiconsoleResponse |
yiiwebResponse | ||
Router | Yii::$app->urlManager | yiiwebUrlManager |
Security | Yii::$app->security | yiibaseSecurity |
Session | Yii::$app->session | yiiwebSession |
Url | Yii::$app->urlManager | yiiwebUrlManager |
User | Yii::$app->user | yiiwebUser |
View | Yii::$app->view | yiiwebView |
Algumas fachadas também contêm ajudantes úteis para tornar um desenvolvimento mais rápido e elegante.
public static function cache( $ key , $ default , $ duration = 0 , $ dependency = null )Recupera um valor usando a chave fornecida ou o valor padrão especificado se o valor não estiver em cache. Se o valor não estiver no cache, ele será armazenado em cache. O valor padrão também pode ser um fechamento:
$ users = Cache:: cache ( ' users ' , function () {
return app models Users:: findAll ();
}, 3600 ); public static function get( $ key , $ default = false )Recupera um valor usando a chave fornecida e o retorna ou o valor padrão especificado que também pode ser um fechamento:
$ options = Cache:: get ( ' options ' , function () {
return [
' option1 ' => false ,
' option2 ' => true
];
}); public static function bare( $ statusCode = 204 , array $ headers = [])Retorna uma resposta vazia com cabeçalhos opcionais:
public function actionCreate ()
{
// ...
return Response:: bare ( 201 );
} public static function html( $ data , array $ headers = [])Retorna uma resposta HTML com cabeçalhos opcionais:
public function actionIndex ()
{
// ...
return Response:: html ( $ this -> render ( ' index ' ), [
' Cache-Control ' => ' no-cache '
]);
} public static function json( $ data , array $ headers = [])Retorna uma resposta JSON com cabeçalhos opcionais:
public function actionList ()
{
// ...
return Response:: json (Db:: createCommand ( ' SELECT * FROM users ' )-> all ());
} public static function jsonp( $ data , $ callback = ' callback ' , array $ headers = [])Retorna uma resposta JSONP com cabeçalhos opcionais:
public function actionApi ( $ callback )
{
// ...
return Response:: jsonp ([
' success ' => true ,
' response ' => $ data
], $ callback );
} public static function raw( $ data , array $ headers = [])Retorna uma resposta com dados "como está" com cabeçalhos opcionais:
public function actionCreate ()
{
// ...
return Response:: raw ( $ binary , [
' Content-Type ' => ' application/octet-stream '
]);
} public static function xml( $ data , array $ headers = [])Retorna uma resposta XML com cabeçalhos opcionais:
public function actionCreate ()
{
// ...
return Response:: xml ([
' success ' => true ,
' response ' => $ data
]);
} Se você quer uma nova fachada, é rápido e fácil, imagine que você deseja trazer uma fachada YourFacadeName :
class YourFacadeName extends Facade
{
/**
* @inheritdoc
*/
public static function getFacadeComponentId ()
{
return ' yourFacadeComponentName ' ; // Yii::$app->yourFacadeComponentName
}
}Então sempre que você ligar
YourFacadeName:: hello ( ' world ' );será executado como
Yii:: $ app -> get ( ' yourFacadeComponentName ' )-> hello ( ' world ' );