Laravel seperti dukungan fasad untuk komponen aplikasi YII 2. Apa yang Anda inginkan: Sederhana, luas dan dengan dukungan penyelesaian otomatis IDE melalui PHPDOC sehingga Anda tidak akan kecewa.
Cara yang disukai untuk menginstal ekstensi ini adalah melalui komposer.
Baik lari
composer require " sergeymakinen/yii2-facades:^1.0 "atau tambahkan
"sergeymakinen/yii2-facades" : " ^1.0 " ke bagian yang diperlukan dari file composer.json Anda.
Pada dasarnya Anda menginstal ekstensi dan mulai menggunakannya seperti yang Anda lakukan dengan semua komponen aplikasi Yii 2 normal tetapi dengan sintaksis lebih sederhana yang lebih pendek, mari kita lihat (jika Anda bertanya -tanya, semua fasad default, termasuk Facade dasar abstrak berada di bawah namespace sergeymakinenfacades ):
Sebelum:
$ random = Yii:: $ app -> security -> generateRandomString ( 128 );Setelah:
$ random = Security:: generateRandomString ( 128 );Sebelum:
$ users = Yii:: $ app -> db -> createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Setelah:
$ users = Db:: createCommand ( ' SELECT * FROM users; ' )-> queryAll ();Sebelum:
$ price = Yii:: $ app -> formatter -> asCurrency ( 123456.78 , ' USD ' );Setelah:
$ price = Formatter:: asCurrency ( 123456.78 , ' USD ' ); Properti publik kelas mana pun $foo dapat didapat melalui aksesor:
$ value = YourFacadeName:: getFoo ()Dan mengatur:
YourFacadeName:: setFoo ( $ value )| Nama | Alias komponen facaded | Komponen/antarmuka |
|---|---|---|
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 |
Beberapa fasad juga mengandung pembantu yang bermanfaat untuk membuat pengembangan lebih cepat dan elegan.
public static function cache( $ key , $ default , $ duration = 0 , $ dependency = null )Mengambil nilai menggunakan tombol yang disediakan atau nilai default yang ditentukan jika nilai tidak di -cache. Jika nilainya tidak ada dalam cache, itu akan di -cache. Nilai default juga bisa menjadi penutupan:
$ users = Cache:: cache ( ' users ' , function () {
return app models Users:: findAll ();
}, 3600 ); public static function get( $ key , $ default = false )Mengambil nilai menggunakan tombol yang disediakan dan mengembalikannya atau nilai default yang ditentukan yang juga bisa menjadi penutupan:
$ options = Cache:: get ( ' options ' , function () {
return [
' option1 ' => false ,
' option2 ' => true
];
}); public static function bare( $ statusCode = 204 , array $ headers = [])Mengembalikan respons kosong dengan header opsional:
public function actionCreate ()
{
// ...
return Response:: bare ( 201 );
} public static function html( $ data , array $ headers = [])Mengembalikan respons HTML dengan header opsional:
public function actionIndex ()
{
// ...
return Response:: html ( $ this -> render ( ' index ' ), [
' Cache-Control ' => ' no-cache '
]);
} public static function json( $ data , array $ headers = [])Mengembalikan respons JSON dengan header opsional:
public function actionList ()
{
// ...
return Response:: json (Db:: createCommand ( ' SELECT * FROM users ' )-> all ());
} public static function jsonp( $ data , $ callback = ' callback ' , array $ headers = [])Mengembalikan respons JSONP dengan header opsional:
public function actionApi ( $ callback )
{
// ...
return Response:: jsonp ([
' success ' => true ,
' response ' => $ data
], $ callback );
} public static function raw( $ data , array $ headers = [])Mengembalikan respons dengan data "sebagaimana adanya" dengan header opsional:
public function actionCreate ()
{
// ...
return Response:: raw ( $ binary , [
' Content-Type ' => ' application/octet-stream '
]);
} public static function xml( $ data , array $ headers = [])Mengembalikan respons XML dengan header opsional:
public function actionCreate ()
{
// ...
return Response:: xml ([
' success ' => true ,
' response ' => $ data
]);
} Jika Anda menginginkan fasad baru, itu cepat dan mudah, bayangkan Anda ingin membawa fasad YourFacadeName :
class YourFacadeName extends Facade
{
/**
* @inheritdoc
*/
public static function getFacadeComponentId ()
{
return ' yourFacadeComponentName ' ; // Yii::$app->yourFacadeComponentName
}
}Lalu kapan pun Anda menelepon
YourFacadeName:: hello ( ' world ' );itu akan dieksekusi sebagai
Yii:: $ app -> get ( ' yourFacadeComponentName ' )-> hello ( ' world ' );