摘要:前言以往寫過倆篇文章積德篇如何少寫爛代碼舉槍消滅爛代碼的實(shí)戰(zhàn)案例感覺文章中對(duì)的操作沒有一個(gè)規(guī)范性的調(diào)用及編寫??梢赃x擇不聲明方法。
前言
以往寫過倆篇文章
[積德篇] 如何少寫PHP "爛"代碼 https://segmentfault.com/a/11...
舉槍消滅"爛代碼"的實(shí)戰(zhàn)案例 https://segmentfault.com/a/11...
感覺文章中對(duì)Action的操作沒有一個(gè)規(guī)范性的調(diào)用及編寫。特此寫了一個(gè)laravel-action包
https://github.com/CrazyCodes...
希望可以幫到你。
下載composer包: composer require crazycodes/laravel-action
注入提供者到 config/app.php
"providers" => [ // [...] CrazyCodesActionServiceProvider::class, ],
注冊(cè) Action facade:
"aliases" => [ // [...] "Action" => CrazyCodesFacadesAction::class, ],
發(fā)布配置文件
php artisan vendor:publish --provider=CrazyCodesActionServiceProvider
配置項(xiàng)就一個(gè)
actionNamespace //設(shè)置你的action所在的命名空間使用
繼承Action方法獲取規(guī)范的命名
namespace CrazyCodesAction; class CreateUser extends Action { }
繼承的Action準(zhǔn)備了兩個(gè)方法
beforepublic function before($request) { return $request; }
Action被調(diào)用的同時(shí)會(huì)直接調(diào)用before方法執(zhí)行。
afterpublic function after($request) { return []; }
可以選擇不聲明after方法。after主要用于調(diào)用其他Action
成員變量public $beforeResultName = "beforeResult"; public $afterResultName = "afterResult";
用于獲取返回的結(jié)果
調(diào)用可以通過Facade調(diào)用
Action::use("YourAction",發(fā)送的參數(shù));
或者使用全局函數(shù)
laravel_action("YourAction",發(fā)送的參數(shù));獲取結(jié)果
得到的結(jié)果默認(rèn)是對(duì)象??梢赞D(zhuǎn)換格式
function toJson(); function toArray();
結(jié)果展示
Array
array:2 [ "beforeResult" => array:1 [ 0 => "aaa" ] "afterResult" => [] ]
JSON
{"beforeResult":["aaa"],"afterResult":[]}Demo
依舊以創(chuàng)建用戶為例
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"]; } }致謝
感謝你看到這里,希望這篇文章讓你的代碼更優(yōu)雅。謝謝
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29261.html
摘要:文章地址在網(wǎng)站開始對(duì)靜態(tài)博客收費(fèi)后,各個(gè)第三方的評(píng)論系統(tǒng)也相繼無法使用的情況下,于是就產(chǎn)生了對(duì)博客進(jìn)行改造的想法。于是在下班的休息時(shí)間之余,在基本不改變博客外觀的情況下,對(duì)博客進(jìn)行里改造。 文章地址: https://www.xiabingbao.com/blog/2017/08/22/new-blog.html 在coding網(wǎng)站開始對(duì)靜態(tài)博客收費(fèi)后,各個(gè)第三方的評(píng)論系統(tǒng)也相繼無...
摘要:文章地址在網(wǎng)站開始對(duì)靜態(tài)博客收費(fèi)后,各個(gè)第三方的評(píng)論系統(tǒng)也相繼無法使用的情況下,于是就產(chǎn)生了對(duì)博客進(jìn)行改造的想法。于是在下班的休息時(shí)間之余,在基本不改變博客外觀的情況下,對(duì)博客進(jìn)行里改造。 文章地址: https://www.xiabingbao.com/blog/2017/08/22/new-blog.html 在coding網(wǎng)站開始對(duì)靜態(tài)博客收費(fèi)后,各個(gè)第三方的評(píng)論系統(tǒng)也相繼無...
摘要:為對(duì)象字符串時(shí),表示模塊的接口就是該對(duì)象字符串。我們來看一個(gè)實(shí)際的例子支付寶的登陸頁面。在網(wǎng)頁支付寶收銀臺(tái)中的運(yùn)用很直觀的就能看到插模塊的合并,這個(gè)合并的工作就是構(gòu)建工具的功勞了。 前言 一月份的時(shí)候,臨近放假,拿到一個(gè)需求,新增一個(gè)產(chǎn)品,我一個(gè)前端對(duì)一個(gè)java后端,兩個(gè)星期的開發(fā)時(shí)間。 因?yàn)榇蟛糠止δ茉趧e的產(chǎn)品都已經(jīng)有了,基本都是簡(jiǎn)單處理一下拿過來,再添加一下額外需要的功能,比如選...
摘要:好了,項(xiàng)目啟動(dòng)了,目錄結(jié)構(gòu)也清楚了,接下來就是整個(gè)現(xiàn)有項(xiàng)目的遷移了目前正在改造項(xiàng)目,文章尚未寫完,會(huì)抽時(shí)間不定期的繼續(xù)更新項(xiàng)目的改造過程及分享改造過程中遇到的問題 公司項(xiàng)目,最初只為了實(shí)現(xiàn)前后端分離式開發(fā),直接選擇了vue框架進(jìn)行開發(fā),然而現(xiàn)在項(xiàng)目基本完成了,發(fā)現(xiàn)蜘蛛根本就抓取不到網(wǎng)站數(shù)據(jù),搜索引擎搜出來,都是一片空白沒有數(shù)據(jù),需要對(duì)項(xiàng)目做SEO優(yōu)化。 本人第一次接觸SEO的優(yōu)化,完全...
閱讀 3288·2021-09-30 09:47
閱讀 2305·2021-09-10 10:51
閱讀 1910·2021-09-08 09:36
閱讀 2939·2019-08-30 12:56
閱讀 3044·2019-08-30 11:16
閱讀 2634·2019-08-29 16:40
閱讀 3004·2019-08-29 15:25
閱讀 1642·2019-08-29 11:02