Laravel aime les façades support pour les composants d'application YII 2. Juste ce que vous voulez: simple, étendu et avec un support de réalisation automatique de l'IDE via PHPDOC afin que vous ne soyez pas déçu.
La façon préférée d'installer cette extension est via le compositeur.
Soit courir
composer require " sergeymakinen/yii2-facades:^1.0 "ou ajouter
"sergeymakinen/yii2-facades" : " ^1.0 " à la section requise de votre fichier composer.json .
Fondamentalement, vous installez l'extension et commencez à l'utiliser comme vous le faites avec tous les composants d'application YII 2 normaux, mais avec une syntaxe plus courte plus simple, jetons un coup d'œil (au cas où vous vous demandez, toutes les façades par défaut, y compris une Facade de base abstraite réside sous un espace de noms sergeymakinenfacades ):
Avant:
$ random = Yii:: $ app -> security -> generateRandomString ( 128 );Après:
$ random = Security:: generateRandomString ( 128 );Avant:
$ users = Yii:: $ app -> db -> createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Après:
$ users = Db:: createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Avant:
$ price = Yii:: $ app -> formatter -> asCurrency ( 123456.78 , ' USD ' );Après:
$ price = Formatter:: asCurrency ( 123456.78 , ' USD ' ); Toute propriété publique de classe $foo peut être obtenue via un accessoire:
$ value = YourFacadeName:: getFoo ()Et définir:
YourFacadeName:: setFoo ( $ value )| Nom | Alias composante facade | Composant / 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 |
Certaines façades contiennent également des aides utiles pour rendre un développement plus rapide et élégant.
public static function cache( $ key , $ default , $ duration = 0 , $ dependency = null )Récupère une valeur à l'aide de la touche fournie ou de la valeur par défaut spécifiée si la valeur n'est pas mise en cache. Si la valeur n'est pas dans le cache, elle sera mise en cache. La valeur par défaut peut également être une fermeture:
$ users = Cache:: cache ( ' users ' , function () {
return app models Users:: findAll ();
}, 3600 ); public static function get( $ key , $ default = false )Récupère une valeur à l'aide de la touche fournie et le renvoie ou la valeur par défaut spécifiée qui peut également être une fermeture:
$ options = Cache:: get ( ' options ' , function () {
return [
' option1 ' => false ,
' option2 ' => true
];
}); public static function bare( $ statusCode = 204 , array $ headers = [])Renvoie une réponse vide avec des en-têtes facultatifs:
public function actionCreate ()
{
// ...
return Response:: bare ( 201 );
} public static function html( $ data , array $ headers = [])Renvoie une réponse HTML avec des en-têtes en option:
public function actionIndex ()
{
// ...
return Response:: html ( $ this -> render ( ' index ' ), [
' Cache-Control ' => ' no-cache '
]);
} public static function json( $ data , array $ headers = [])Renvoie une réponse JSON avec des en-têtes en option:
public function actionList ()
{
// ...
return Response:: json (Db:: createCommand ( ' SELECT * FROM users ' )-> all ());
} public static function jsonp( $ data , $ callback = ' callback ' , array $ headers = [])Renvoie une réponse JSONP avec des en-têtes en option:
public function actionApi ( $ callback )
{
// ...
return Response:: jsonp ([
' success ' => true ,
' response ' => $ data
], $ callback );
} public static function raw( $ data , array $ headers = [])Renvoie une réponse avec des données "en tant que" avec des en-têtes facultatifs:
public function actionCreate ()
{
// ...
return Response:: raw ( $ binary , [
' Content-Type ' => ' application/octet-stream '
]);
} public static function xml( $ data , array $ headers = [])Renvoie une réponse XML avec des en-têtes en option:
public function actionCreate ()
{
// ...
return Response:: xml ([
' success ' => true ,
' response ' => $ data
]);
} Si vous voulez une nouvelle façade, c'est rapide et facile, imaginez que vous voulez apporter une façade YourFacadeName :
class YourFacadeName extends Facade
{
/**
* @inheritdoc
*/
public static function getFacadeComponentId ()
{
return ' yourFacadeComponentName ' ; // Yii::$app->yourFacadeComponentName
}
}Alors chaque fois que vous appelez
YourFacadeName:: hello ( ' world ' );il sera exécuté comme
Yii:: $ app -> get ( ' yourFacadeComponentName ' )-> hello ( ' world ' );