theofidry/psysh-bundle

此软件包已被废弃,不再维护。没有建议的替代软件包。

PHP REPL PsySH 的 Symfony 版本。

资助软件包维护!
theofidry

安装量: 3,029,054

依赖者: 10

建议者: 0

安全: 0

星标: 209

关注者: 6

分支: 31

公开问题: 10

类型:symfony-bundle

4.5.0 2021-12-29 22:21 UTC

README

Package version Build Status Scrutinizer Code Quality License

这是一个用于使用 Symfony 与 php REPL PsySH 的软件包。在 psysh.org 上了解更多信息,并查看 Presentate 上的 PHP 脚本交互式调试 讲座。

它具体做什么?

  • 使用应用程序依赖项加载 PsySH
  • 提供以下变量的访问权限
变量 描述
$container Symfony ServiceContainer 的实例
$kernel Symfony Kernel 的实例
$parameters Symfony 参数的实例

除此之外,它就是普通的 PsySH!您也可以 自定义它 以添加您自己的变量。

文档

  1. 安装
  2. 使用
    1. PsySH 作为调试器
    2. 像老板一样反射
    3. PsySH 断点
  3. 自定义 PsySH
  4. 鸣谢

安装

您可以使用 Composer 将此软件包安装到项目中

composer require --dev theofidry/psysh-bundle

然后,通过更新您的 app/AppKernel.php 文件来启用软件包
(在 symfony 5 中不需要,软件包会自动注册在 config/bundles.php 中)

<?php
// app/AppKernel.php

public function registerBundles()
{
    //...

    if (in_array($this->getEnvironment(), ['dev', 'test'])) {
        //...
        $bundles[] = new Fidry\PsyshBundle\PsyshBundle();
    }

    return $bundles;
}

使用

# Symfony > 4.0
bin/console psysh

或者

use function psysh

class X
{
    function foo()
    {
        psysh(get_defined_vars(), $this);   // Debug with the current context
    }
}

PsySH Shell

更进一步.

自定义 PsySH

添加自定义命令

为 PsySH 添加自定义命令就像定义一个带有 psysh.command 标签的服务一样简单!

services:
    my_psysh_command:
        class: Acme\Shell\MyCommand
        tags:
            - { name: psysh.command }

如果您使用 Symfony 3.3+,则更简单

services:
    _defaults:
        autoconfigure: true
        autowire: true
        public: false

    Acme\Shell\MyCommand: ~

PsyshBundle 为继承自 Psy\Command\ReflectingCommandPsy\Command\Command 的自定义 Psysh 命令服务提供自动配置。

添加自定义变量

您可以通过配置将自定义变量添加到 shell 中。变量可以是任何类型,容器参数引用(例如 %kernel.debug%)或服务(以 @ 为前缀,例如 "@my_service")。

# app/config/config_dev.yml

psysh:
    variables:
        foo: bar
        router: "@router"
        some: [thing, else]
        debug: "%kernel.debug%"

现在,如果您运行 php app/console psysh 然后运行 ls,您将看到变量 $foo$router$some$debug,以及已定义的变量

>>> ls
Variables: $foo, $router, $some, $debug...

默认变量包括

  • $container(服务容器)
  • $kernel
  • $parameters(所有容器参数)
  • $self(PsySH shell 本身)

鸣谢

此软件包由 Théo FIDRY 开发。此项目得以实现得益于