Laravel مثل واجهات دعم لمكونات التطبيق yii 2. فقط ما تريد: بسيط ، واسع النطاق ومع دعم إكمال IDE ADIO عبر 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 ' );