abahrami13 / yii2-facades
支持 Yii 2 应用组件和类如 Laravel 的 Facades
Requires
- yiisoft/yii2: ~2.0.1
README
支持 Yii 2 应用组件和类如 Laravel 的 Facades
🟡 安装
步骤 1
运行 composer require abahrami13/yii2-facades
命令。
步骤 2
将 abahrami13\facades\RegisterFacadeAutoloader
添加到配置文件中的 bootstrap
数组(在基本模板中为 config/web.php
)。
🟡 使用方法
🔷 组件 Facades 命名空间
1) Yii2 组件
要使用组件 Facade,只需导入以 facades\
开头的类,后跟组件 ID。例如,要使用请求组件的 Facade,只需导入 facades\Request
use facades\Request;
2) 其他类
要使用其他类的 Facade,只需将 facades\
添加到类命名空间的开头。
例如,要使用 app\models\LoginForm
类的 Facade,只需导入 facades\app\models\LoginForm
类
🔷 利用 Facades
只需静态调用所需的方法即可享受 :)
对于组件
Request::get('foo')
等同于 Yii::$app->request->get('foo')
对于其他类
LoginForm::rules()
等同于
$loginForm = new LoginForm();
$loginForm->rules()
🟡 更多示例
🔷 Yii2 组件的 Facades
🔸 生成随机字符串
之前
$random = Yii::$app->security->generateRandomString(128);
之后
import: use facades\Security;
$random = Security::generateRandomString(128);
🔸 添加 Flash 到会话
之前
Yii::$app->session->addFlash('success', 'Wow, Yii is great');
之后
import: use facades\Session;
Session::addFlash('success', 'Wow, Yii is great');
🔸 获取所有用户
之前
Yii::$app->db->createCommand('SELECT * FROM user')->queryAll();
之后
import: use facades\Db;
Db::createCommand('SELECT * FROM user')->queryAll();
🔸 格式化货币
之前
Yii::$app->formatter->asCurrency(123456.78, 'USD');
之后
import: use facades\Formatter;
Formatter::asCurrency(123456.78, 'USD');
🔷 其他类的 Facades
🔸 调用其他类的非静态方法
之前
import: use app\classes\Greeting;
$obj = new Greeting();
$obj->sayHello('Mr. Mahan');
之后
import: use facades\app\classes\Greeting;
Greeting::sayHello('Mr. Mahan');
🔸 调用模型的非静态方法
之前
import: use app\models\Post;
$post = new Post();
$titleLabel = $post->getAttributeLabel('title');
之后
import: use facades\app\models\Post;
$titleLabel = Post::getAttributeLabel('title');
🟡 可用的 Facades
- 所有在配置文件 components 数组中定义的组件都受支持。
- 所有类(包括模型、Yii 类、自定义类等)都受支持