给 Tinkerun 做了一个 Tinkerwell 没有的实验性功能,大家给点意见吧!

Intro

最近给 Tinkerun 捣腾了一个神奇的功能,其实也并不是什么神奇吧,这个功能最先是在 Tinkerun VSCode 插件中实现的,就是把你的 Tinker 代码变成表单,只要你做个简单修改

比如重置客户密码的代码

$user = User::where('email', 'pmoore@example.net')->first();
$user->password = bcrypt('your-new-secure-password');

$user->save();

现在我们把那些参数重构成变量,并且变量名用 field_ 开头(这个 field_ 可以在软件设置里面修改成你自己喜欢的,默认是这个设置)

$field_email = 'pmoore@example.net';
$field_password = 'your-new-secure-password';

$user = User::where('email', $field_email)->first();
$user->password = bcrypt($field_password);
$user->save();

switch to snippet form

接着我们就可以点击右上角的「Snippet Form」按钮 🌟,把 Tinker 代码切换成表单了

snippet form

现在你就可以直接通过这个表单来修改对应的变量并运行 Tinker 代码了

这个功能有什么软用?

大概,可能,作用,拿「手动修改密码」这事来说的话,就是有一天又有一个客户要让你手动修改密码了,本来你应该去 Tinkerun 软件的 snippet 里修改代码里的参数,现在你就不需要去读代码了,只要知道这段代码是干嘛的,并且照着表单参数名来修改,然后点击「Run」就能修改密码了,或者说你多了一个有「修改密码」的「后台管理」,整体外观看起来是这样的

style

是不是还是挺像一个「后台管理」那么回事儿的?

😂 这样以后老板让你做个啥后台的时候,你就可以给他下一个 Tinkerun 软件,然后写几行 Tinker 代码,一个简单的后台就做好了(just for fun)。

当然这个功能不只是支持 <input> 这样的输入框,还支持 <select/> <input type="checkbox"/> 这种,具体可以参考这份 Wiki,😉 如果你有更多想法也可以告诉我啊。

原理

这个功能的原理就是,Tinkerun 会去解析 PHP 代码,将 field_ 前缀的变量都解析成 JSON,Tinkerun 根据解析出来的 JSON,将之变成表单,最后运行的时候又根据表单的数据,重新组装成 PHP 代码,再输入到 Tinker 会话中,我把这部分东西抽出来变成了一个类库 php-form,欢迎品鉴。

其他

如果你用 Alfred 并且也用 Tinkerun 的话,可以试试 tinkerun-alfred 来帮你快速打开 Tinkerun 连接

Outro

👏🏻 欢迎大家试用交流反馈。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2

用这个做后台当场就领盒饭了吧

2年前 评论
billyct (楼主) 2年前

虽然不知道有什么用,但是帅 :see_no_evil:

2年前 评论
billyct (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!