gere-lajos/laravel-web-tinker

此包已被弃用且不再维护。作者建议使用luminarix/laravel-web-tinker包。

一个小型Laravel包,用于在浏览器中使用Tinker

资助包维护!
Gere Lajos

安装: 18

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

开放问题: 0

语言:TypeScript

v0.3.1 2024-05-15 19:29 UTC

This package is auto-updated.

Last update: 2024-07-08 10:42:08 UTC


README

注意

我们已经将此项目的持续开发转移到新的仓库。您可以通过luminarix/laravel-web-tinker访问它。请注意,此当前仓库将不再接收更新。

一个小型Laravel包,用于在浏览器中使用Tinker

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包允许您在浏览器中使用Tinker。深受Spatie的Laravel Web Tinker的启发,但增加了功能,并添加了React前端。

🚨 谨慎的话 🚨

此包可以运行任意代码。除非您知道自己在做什么,否则您不应该在生产环境中或任何处理真实世界数据的环境中安装或使用此包。

已知问题

  • 如果您使用ctrl+enter或cmd+enter运行代码,编辑器也会开始新的一行。
  • 历史记录在标签页之间共享,关闭标签页时不会清除。
  • 大输出处理得不好,可能会推送到网格而不是断行。
  • 我们必须验证存储的代码结构,以免破坏编辑器。

安装

您可以通过composer安装此包。

composer require gere-lajos/laravel-web-tinker --dev

接下来,您必须运行此命令以发布此包的资源。

php artisan web-tinker:install

可选地,您可以发布包的配置文件。

php artisan vendor:publish --provider="GereLajos\LaravelWebTinker\WebTinkerServiceProvider" --tag="config"

以下内容将被发布到config/web-tinker.php

如果您之前安装了Spatie的Web Tinker,您可能配置文件中存在冲突。您可以安全地从config目录中删除web-tinker.php文件。

return [

    /*
     * The web tinker page will be available on this path.
     */
    'path' => '/tinker',

    /*
     * By default this package will only run in local development.
     * Do not change this, unless you know what your are doing.
     */
    'enabled' => env('APP_ENV') === 'local',

   /*
    * This class can modify the output returned by Tinker. You can replace this with
    * any class that implements \Spatie\WebTinker\OutputModifiers\OutputModifier.
    */
    'output_modifier' => \GereLajos\LaravelWebTinker\OutputModifiers\PrefixDateTime::class,

    /*
    * These middleware will be assigned to every WebTinker route, giving you the chance
    * to add your own middlewares to this list or change any of the existing middleware.
    */
    'middleware' => [
        Illuminate\Cookie\Middleware\EncryptCookies::class,
        Illuminate\Session\Middleware\StartSession::class,
        GereLajos\LaravelWebTinker\Http\Middleware\Authorize::class,
    ],

    /*
     * If you want to fine-tune PsySH configuration specify
     * configuration file name, relative to the root of your
     * application directory.
     */
    'config_file' => env('PSYSH_CONFIG', null),
];

用法

默认情况下,此包只会在本地环境中运行。

访问您的应用本地环境中的/tinker来查看Tinker页面。

授权

如果您想在其他环境中运行此包(我们不推荐这样做),您必须执行以下两个步骤。

  1. 您必须在AuthServiceProvider中注册一个viewWebTinker权限。一个好的地方是在Laravel附带的AuthServiceProvider中做这件事。
public function boot()
{
    $this->registerPolicies();

    Gate::define('viewWebTinker', function ($user = null) {
        // return true if access to web tinker is allowed
    });
}
  1. 您必须将web-tinker配置文件中的enabled变量设置为true

修改输出

您可以通过在web-tinker配置文件的output_modifier键中指定输出修改器来修改tinker的输出。输出修改器是任何实现\GereLajos\LaravelWebTinker\OutputModifiers\OutputModifier的类。

接口看起来是这样的。

namespace GereLajos\LaravelWebTinker\OutputModifiers;

interface OutputModifier
{
    public function modify(string $output = ''): string;
}

默认安装的此包将使用PrefixDataTime输出修改器,它将当前日期时间作为前缀添加到Tinker的输出中。

测试

composer test

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件