Laravel -ähnliche Fassaden unterstützen YII 2 -Anwendungskomponenten. Genau das, was Sie wollen: Einfach, umfangreich und mit einer IDE Auto Completion -Unterstützung über PHPDOC, damit Sie nicht enttäuscht sind.
Die bevorzugte Möglichkeit, diese Erweiterung zu installieren, ist über Komponist.
Entweder rennen
composer require " sergeymakinen/yii2-facades:^1.0 "oder hinzufügen
"sergeymakinen/yii2-facades" : " ^1.0 " zum Fordern -Abschnitt Ihrer Datei composer.json .
Grundsätzlich installieren Sie die Erweiterung und verwenden sie wie alle normalen YII -2 -Anwendungskomponenten, aber mit einer kürzeren einfacheren Syntax. Schauen wir uns an (falls Sie sich fragen, dass alle Standardfassaden, einschließlich einer abstrakten Facade , unter einem sergeymakinenfacades -Namespace liegt):
Vor:
$ random = Yii:: $ app -> security -> generateRandomString ( 128 );Nach:
$ random = Security:: generateRandomString ( 128 );Vor:
$ users = Yii:: $ app -> db -> createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Nach:
$ users = Db:: createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Vor:
$ price = Yii:: $ app -> formatter -> asCurrency ( 123456.78 , ' USD ' );Nach:
$ price = Formatter:: asCurrency ( 123456.78 , ' USD ' ); Jedes öffentliche Grundstück $foo kann über einen Accessor erhalten werden:
$ value = YourFacadeName:: getFoo ()Und set:
YourFacadeName:: setFoo ( $ value )| Name | Faserkomponenten -Alias | Komponente/Schnittstelle |
|---|---|---|
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 |
Einige Fassaden enthalten auch nützliche Helfer, um eine Entwicklung schneller und eleganter zu gestalten.
public static function cache( $ key , $ default , $ duration = 0 , $ dependency = null )Ruft einen Wert mit dem angegebenen Schlüssel oder dem angegebenen Standardwert ab, wenn der Wert nicht zwischenstrahlt wird. Wenn der Wert nicht im Cache liegt, wird er zwischengespeichert. Der Standardwert kann auch eine Schließung sein:
$ users = Cache:: cache ( ' users ' , function () {
return app models Users:: findAll ();
}, 3600 ); public static function get( $ key , $ default = false )Ruft einen Wert mithilfe des bereitgestellten Schlüssels ab und gibt ihn oder den angegebenen Standardwert zurück, der ebenfalls eine Schließung sein kann:
$ options = Cache:: get ( ' options ' , function () {
return [
' option1 ' => false ,
' option2 ' => true
];
}); public static function bare( $ statusCode = 204 , array $ headers = [])Gibt eine leere Antwort mit optionalen Header zurück:
public function actionCreate ()
{
// ...
return Response:: bare ( 201 );
} public static function html( $ data , array $ headers = [])Gibt eine HTML -Antwort mit optionalen Headern zurück:
public function actionIndex ()
{
// ...
return Response:: html ( $ this -> render ( ' index ' ), [
' Cache-Control ' => ' no-cache '
]);
} public static function json( $ data , array $ headers = [])Gibt eine JSON -Antwort mit optionalen Headern zurück:
public function actionList ()
{
// ...
return Response:: json (Db:: createCommand ( ' SELECT * FROM users ' )-> all ());
} public static function jsonp( $ data , $ callback = ' callback ' , array $ headers = [])Gibt eine JSONP -Antwort mit optionalen Headern zurück:
public function actionApi ( $ callback )
{
// ...
return Response:: jsonp ([
' success ' => true ,
' response ' => $ data
], $ callback );
} public static function raw( $ data , array $ headers = [])Gibt eine Antwort mit Daten "wie ist" mit optionalen Headern zurück:
public function actionCreate ()
{
// ...
return Response:: raw ( $ binary , [
' Content-Type ' => ' application/octet-stream '
]);
} public static function xml( $ data , array $ headers = [])Gibt eine XML -Antwort mit optionalen Headern zurück:
public function actionCreate ()
{
// ...
return Response:: xml ([
' success ' => true ,
' response ' => $ data
]);
} Wenn Sie eine neue Fassade wollen, ist sie schnell und einfach, stellen Sie sich vor, Sie möchten eine YourFacadeName -Fassade mitbringen:
class YourFacadeName extends Facade
{
/**
* @inheritdoc
*/
public static function getFacadeComponentId ()
{
return ' yourFacadeComponentName ' ; // Yii::$app->yourFacadeComponentName
}
}Dann wann immer du anrufst
YourFacadeName:: hello ( ' world ' );es wird ausgeführt als
Yii:: $ app -> get ( ' yourFacadeComponentName ' )-> hello ( ' world ' );