Laravel Like Facades поддерживает компоненты приложения YII 2. Как раз то, что вы хотите: простое, обширное и с помощью поддержки Auto завершения IDE через PHPDOC, чтобы вы не были разочарованы.
Предпочтительным способом установки этого расширения является композитор.
Либо беги
composer require " sergeymakinen/yii2-facades:^1.0 "или добавить
"sergeymakinen/yii2-facades" : " ^1.0 " в раздел «Требовать» вашего файла composer.json .
В основном вы устанавливаете расширение и начинаете использовать его, как это делаете со всеми обычными компонентами приложения YII 2, но с более коротким более простым синтаксисом давайте посмотрим (на случай, если вы задаетесь вопросом, все фасады по умолчанию, включая абстрактный базовый Facade , находятся под пространством имен sergeymakinenfacades ):
До:
$ random = Yii:: $ app -> security -> generateRandomString ( 128 );После:
$ random = Security:: generateRandomString ( 128 );До:
$ users = Yii:: $ app -> db -> createCommand ( ' SELECT * FROM users; ' )-> queryAll ();После:
$ users = Db:: createCommand ( ' SELECT * FROM users; ' )-> queryAll ();До:
$ price = Yii:: $ app -> formatter -> asCurrency ( 123456.78 , ' USD ' );После:
$ price = Formatter:: asCurrency ( 123456.78 , ' USD ' ); Любая классная общественная недвижимость $foo может быть получена через аксессу с помощью:
$ value = YourFacadeName:: getFoo ()И установить:
YourFacadeName:: setFoo ( $ value )| Имя | Переверенный псевдоним компонентов | Компонент/интерфейс |
|---|---|---|
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 |
Некоторые фасады также содержат полезных помощников, чтобы сделать разработку более быстрым и элегантным.
public static function cache( $ key , $ default , $ duration = 0 , $ dependency = null )Получает значение, используя предоставленную ключ или указанное значение по умолчанию, если значение не кэшируется. Если значение не в кеше, оно будет кэшировано. Значение по умолчанию также может быть закрытием:
$ users = Cache:: cache ( ' users ' , function () {
return app models Users:: findAll ();
}, 3600 ); public static function get( $ key , $ default = false )Получает значение, используя предоставленную ключ и возвращает его или указанное значение по умолчанию, которое также может быть закрытием:
$ options = Cache:: get ( ' options ' , function () {
return [
' option1 ' => false ,
' option2 ' => true
];
}); public static function bare( $ statusCode = 204 , array $ headers = [])Возвращает пустой ответ с дополнительными заголовками:
public function actionCreate ()
{
// ...
return Response:: bare ( 201 );
} public static function html( $ data , array $ headers = [])Возвращает ответ HTML с дополнительными заголовками:
public function actionIndex ()
{
// ...
return Response:: html ( $ this -> render ( ' index ' ), [
' Cache-Control ' => ' no-cache '
]);
} public static function json( $ data , array $ headers = [])Возвращает ответ JSON с дополнительными заголовками:
public function actionList ()
{
// ...
return Response:: json (Db:: createCommand ( ' SELECT * FROM users ' )-> all ());
} public static function jsonp( $ data , $ callback = ' callback ' , array $ headers = [])Возвращает ответ JSONP с дополнительными заголовками:
public function actionApi ( $ callback )
{
// ...
return Response:: jsonp ([
' success ' => true ,
' response ' => $ data
], $ callback );
} public static function raw( $ data , array $ headers = [])Возвращает ответ с данными «как есть» с дополнительными заголовками:
public function actionCreate ()
{
// ...
return Response:: raw ( $ binary , [
' Content-Type ' => ' application/octet-stream '
]);
} public static function xml( $ data , array $ headers = [])Возвращает ответ XML с дополнительными заголовками:
public function actionCreate ()
{
// ...
return Response:: xml ([
' success ' => true ,
' response ' => $ data
]);
} Если вам нужен новый фасад, это быстро и легко, представьте, что вы хотите принести фасад YourFacadeName :
class YourFacadeName extends Facade
{
/**
* @inheritdoc
*/
public static function getFacadeComponentId ()
{
return ' yourFacadeComponentName ' ; // Yii::$app->yourFacadeComponentName
}
}Затем, когда вы звоните
YourFacadeName:: hello ( ' world ' );он будет выполнен как
Yii:: $ app -> get ( ' yourFacadeComponentName ' )-> hello ( ' world ' );