博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel-Action 对代码的改造
阅读量:6148 次
发布时间:2019-06-21

本文共 1778 字,大约阅读时间需要 5 分钟。

clipboard.png

前言

以往写过俩篇文章

[积德篇] 如何少写PHP "烂"代码
举枪消灭"烂代码"的实战案例

感觉文章中对Action的操作没有一个规范性的调用及编写。特此写了一个laravel-action包

希望可以帮到你。

安装

下载composer包: composer require crazycodes/laravel-action

注入提供者到 config/app.php

'providers' => [    // [...]   CrazyCodes\ActionServiceProvider::class,],

注册 Action facade:

'aliases' => [    // [...]    'Action' => CrazyCodes\Facades\Action::class,],

发布配置文件

php artisan vendor:publish --provider=CrazyCodes\ActionServiceProvider

配置项就一个

actionNamespace //设置你的action所在的命名空间

使用

继承Action方法获取规范的命名

namespace CrazyCodes\Action;class CreateUser extends Action{}

继承的Action准备了两个方法

before

public function before($request){    return $request;}

Action被调用的同时会直接调用before方法执行。

after

public function after($request){    return [];}

可以选择不声明after方法。after主要用于调用其他Action

成员变量

public $beforeResultName = 'beforeResult';public $afterResultName = 'afterResult';

用于获取返回的结果

调用

可以通过Facade调用

Action::use('YourAction',发送的参数);

或者使用全局函数

laravel_action('YourAction',发送的参数);

获取结果

得到的结果默认是对象。可以转换格式

function toJson();function toArray();

结果展示

Array

array:2 [  "beforeResult" => array:1 [    0 => "aaa"  ]  "afterResult" => []]

JSON

{"beforeResult":["aaa"],"afterResult":[]}

Demo

依旧以创建用户为例

UserController

'test', 'password' => 'test', ]; $result = Action::use ('CreateUser', $request); //全局方法 //laravel_action ('CreateUser', $request);// return $result->toArray(); return $result->toJson (); } }

CreateUser

'success']; } public function after($request) { var_dump ($request); return Action::use ('CreateWallet', $request); } }

CreateWallet

'success']; } }

致谢

感谢你看到这里,希望这篇文章让你的代码更优雅。谢谢

转载地址:http://agmya.baihongyu.com/

你可能感兴趣的文章
Webpack入门教程十五
查看>>
Memcached命令解析
查看>>
用LogExplorer恢复数据库过程 .
查看>>
robot framework环境搭建
查看>>
rlwrap解决 Oracle sqlplus 在linux 上下文切换乱码问题
查看>>
[故障解决]Ssh连接port 22: Connection refused
查看>>
超级鹰打码平台
查看>>
shell文本操作的实际应用
查看>>
各种加解密算法简介
查看>>
awk 对列数据求和
查看>>
grep时间点之间的log
查看>>
不小心中了个奖,发个首博报个到!!
查看>>
Linux命令篇之du命令和read命令
查看>>
我的友情链接
查看>>
Shell脚本批量创建用户并随机生成密码
查看>>
shell脚本中把txt文件中空格换成,逗号
查看>>
python发邮件实例(包括:文本、html、图片、附件、SSL、群邮件)
查看>>
HAProxy+Keepalived实现Web服务器负载均衡
查看>>
产品介绍:数据集成总线 - CDC for Kettle 典型应用场景
查看>>
hadoop技术在传统银行业务中的应用
查看>>