vasadibt/yii2-action-resolver
Composer 安装命令:
composer require vasadibt/yii2-action-resolver
包简介
Extension for Yii Framework 2.0 what extending the controllers and you can use simply the action resolvers.
关键字:
README 文档
README
Extend Yii2 controller actions with custom resolved classes
Installation
Package is available on Packagist, you can install it using Composer.
composer require vasadibt/yii2-action-resolver "^1.0"
or add to the require section of your composer.json file.
"vasadibt/yii2-action-resolver": "^1.0"
Dependencies
- PHP 7.4+
- yiisoft/yii2
Usage
You need to add ActionResolveTrait trait to your controller.
THis will be extending your bindInjectedParams method with a new event trigger.
After that you can use easily the behavior:
use vasadibt\actionresolver\ActionResolveTrait; use vasadibt\actionresolver\ResolvableActionBehavior; class CashregisterApiController extends \yii\web\Controller { use ActionResolveTrait; public function behaviors() { return [ 'resolver' => [ 'class' => ResolvableActionBehavior::class, 'resolvers' => [ // Define a new resolvable [ 'resolvable' => User::class, // User class need to implement `\vasadibt\actionresolver\ResolvableInterface` // Optional you can filter the fiering action // 'actions' => ['*'], // 'actions' => ['view', 'update', 'delete'], ], // or a simple way User::class, // or you can use callable resolving [ 'resolvable' => Post::class, 'actions' => ['update'], 'callable' => function(Request $request, Action $action){ $post = static::findOne($request->post('id')); if($post === null){ throw new NotFoundHttpException(Yii::t('yii', 'Page not found.')); } if (!Yii::$app->user->can('updatePost', ['post' => $post])) { throw new ForbiddenHttpException(Yii::t('yii', 'You are not allowed to perform this action.')); } return $post; }, ], ], ], ]; } public function actionView(User $user) { return $this->render('view', ['user' => $user]); } public function actionUpdate(Request $request, Post $post) { if($post->load($request->post())){ $post->save(); return $this->redirect(['index']); } return $this->render('update', ['model' => $post]); } public function actionDelete(Post $post) { $post->delete(); return $this->redirect(['index']); } }
use vasadibt\actionresolver\ResolvableInterface; class User implements ResolvableInterface { public function resolve($request, $action) { if($model = static::findOne($request->post('id'))){ return $model; } throw new NotFoundHttpException(Yii::t('yii', 'Page not found.')); } }
vasadibt/yii2-action-resolver 适用场景与选型建议
vasadibt/yii2-action-resolver 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 04 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「extension」 「resolver」 「yii」 「yii2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 vasadibt/yii2-action-resolver 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 vasadibt/yii2-action-resolver 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 vasadibt/yii2-action-resolver 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Type transformers, normalizers and resolvers.
A custom URL rule class for Yii 2 which allows to create translated URL rules
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
resolve openapi keywords
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
PhpPlaisio: Company Resolver
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-04-19