abahrami13/yii2-facades

支持 Yii 2 应用组件和类如 Laravel 的 Facades

安装: 3

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

1.0.0 2024-03-25 20:26 UTC

This package is auto-updated.

Last update: 2024-09-25 21:50:41 UTC


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 类、自定义类等)都受支持