把你的 Laravel Tinker 变成一个简单的管理后台

差不多一个月之前,开发了一个 VSCode 插件 Tinkerun for Visual Studio Code,最近给这个插件增加了一个功能 表单模式,可以让你通过简单 PHP 数组来创建表单,并且通过表单来执行 Tinker 代码。

也就是说你可以通过插件在你的 VSCode 实现一个简单的管理后台。

插件截图

例子

比如在编辑器里面写入几行 PHP 代码

// `form_` 前缀是插件默认识别变量的前缀
$form_email = [
    // value 值,是必须的,用于告诉插件值的类型
    'value' => 'some@email.address',
];

$form_password = [
    'label' => '密码',
    'value' => 'new-password',
];

$user = User::where('email', $form_email['value'])->first();
$user->password = bcrypt($form_password['value']);
$user->save();

然后点击右上角的「表单」按钮,插件会自动识别 form_ 前缀的数组变量,并将之转换成相应的表单在第二栏,然后你就能通过该表单来修改相应的 value

把你的 Laravel Tinker 变成一个简单的管理后台

最后点击 Run 就能执行修改了相应值后的代码至 Tinker 命令中,这样你就能设计各种你所想的表单来运行 Tinker

下载

你可以在下面网站找到下载地址

源码地址 github.com/tinkerun/tinkerun-vscode
网站地址 tinke.run/vscode

如果你已经下载过 Tinkerun for Visual Studio Code 插件,那么你只要更新至 v0.2.x 版本就可以了

场景

比如 给客户手动重置密码,现在有了表单模式之后,你可以给各种不同的客户重置密码,只要点击「右上角的表单」按钮,就能根据你写的 PHP 代码打开一个表单页面,然后修改下你的客户信息,新密码等。

再比如,一些似乎不应该是写在应用里的「应用命令行」代码,你可以直接写在 Tinkerun 插件中,并且为他创建一个表单,这其实有点像 Invoker 软件的 Artisan Commands 功能,只是我把这些都放在了 Tinker 中执行。

原理

解析 PHP 代码,获取特定前缀变量名的数组内容,生成一个 JSON 的对象,通过前端把这个 JSON 对象变成表单,当你修改表单就相当于你在修改 PHP 代码,最后在你点击「Run」的时候,将修改后的 JSON 对象重新拼装成 PHP 代码,然后在 Tinker 命令行中执行。

我给这个解析和拼装 PHP 代码的部分拆分出了一个类库,php-form 这个类库,使用 Go 书写,并编译成 Webassembly,最后通过 Typescript 来封装并且打包成一个类库,可以直接调用,也可以自行调用 wasm 文件。也是第一次使用 Webassembly这个东西,🤔 感慨颇多。

结语

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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