Soporte de fachadas de Laravel para componentes de aplicación YII 2. Justo lo que quiera: simple, extenso y con un soporte de finalización automático IDE a través de PHPDOC para que no se sentirá decepcionado.
La forma preferida de instalar esta extensión es a través del compositor.
O CORRE
composer require " sergeymakinen/yii2-facades:^1.0 "o agregar
"sergeymakinen/yii2-facades" : " ^1.0 " a la sección Requerir su archivo composer.json .
Básicamente, instala la extensión y comienza a usarla como lo hace con todos los componentes normales de la aplicación YII 2, pero con una sintaxis más simple más corta, echemos un vistazo (en caso de que se pregunte, todas las fachadas predeterminadas, incluida una Facade de base abstracta, residen bajo un espacio de nombres sergeymakinenfacades ):
Antes:
$ random = Yii:: $ app -> security -> generateRandomString ( 128 );Después:
$ random = Security:: generateRandomString ( 128 );Antes:
$ users = Yii:: $ app -> db -> createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Después:
$ users = Db:: createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Antes:
$ price = Yii:: $ app -> formatter -> asCurrency ( 123456.78 , ' USD ' );Después:
$ price = Formatter:: asCurrency ( 123456.78 , ' USD ' ); Cualquier propiedad pública de clase $foo puede obtener a través de un accesor:
$ value = YourFacadeName:: getFoo ()Y establecer:
YourFacadeName:: setFoo ( $ value )| Nombre | Alias componentes facaded | Componente/interfaz |
|---|---|---|
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 |
Algunas fachadas también contienen ayudantes útiles para hacer que un desarrollo sea más rápido y elegante.
public static function cache( $ key , $ default , $ duration = 0 , $ dependency = null )Recupera un valor utilizando la clave proporcionada o el valor predeterminado especificado si el valor no se almacena en caché. Si el valor no está en el caché, se almacenará en caché. El valor predeterminado también puede ser un cierre:
$ users = Cache:: cache ( ' users ' , function () {
return app models Users:: findAll ();
}, 3600 ); public static function get( $ key , $ default = false )Recupera un valor utilizando la clave proporcionada y la devuelve o el valor predeterminado especificado que también puede ser un cierre:
$ options = Cache:: get ( ' options ' , function () {
return [
' option1 ' => false ,
' option2 ' => true
];
}); public static function bare( $ statusCode = 204 , array $ headers = [])Devuelve una respuesta vacía con encabezados opcionales:
public function actionCreate ()
{
// ...
return Response:: bare ( 201 );
} public static function html( $ data , array $ headers = [])Devuelve una respuesta HTML con encabezados opcionales:
public function actionIndex ()
{
// ...
return Response:: html ( $ this -> render ( ' index ' ), [
' Cache-Control ' => ' no-cache '
]);
} public static function json( $ data , array $ headers = [])Devuelve una respuesta JSON con encabezados opcionales:
public function actionList ()
{
// ...
return Response:: json (Db:: createCommand ( ' SELECT * FROM users ' )-> all ());
} public static function jsonp( $ data , $ callback = ' callback ' , array $ headers = [])Devuelve una respuesta JSONP con encabezados opcionales:
public function actionApi ( $ callback )
{
// ...
return Response:: jsonp ([
' success ' => true ,
' response ' => $ data
], $ callback );
} public static function raw( $ data , array $ headers = [])Devuelve una respuesta con los datos "tal cual" con encabezados opcionales:
public function actionCreate ()
{
// ...
return Response:: raw ( $ binary , [
' Content-Type ' => ' application/octet-stream '
]);
} public static function xml( $ data , array $ headers = [])Devuelve una respuesta XML con encabezados opcionales:
public function actionCreate ()
{
// ...
return Response:: xml ([
' success ' => true ,
' response ' => $ data
]);
} Si quieres una fachada nueva, es rápido y fácil, imagina que quieres traer una fachada YourFacadeName :
class YourFacadeName extends Facade
{
/**
* @inheritdoc
*/
public static function getFacadeComponentId ()
{
return ' yourFacadeComponentName ' ; // Yii::$app->yourFacadeComponentName
}
}Entonces cada vez que llamas
YourFacadeName:: hello ( ' world ' );se ejecutará como
Yii:: $ app -> get ( ' yourFacadeComponentName ' )-> hello ( ' world ' );