theofidry/psysh

此包已被废弃且不再维护。作者建议使用theofidry/psysh-bundle 包。

PHP REPL PsySH 的 Symfony 版本。

资助包维护!
theofidry

安装: 438

依赖者: 0

建议者: 0

安全: 0

星级: 174

关注者: 4

分支: 25

开放问题: 2

类型: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 为自定义 Psysh 命令服务提供自动配置,只要它们继承自 Psy\Command\ReflectingCommandPsy\Command\Command

添加自定义变量

可以通过配置将自定义变量添加到 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 开发。该项目得以实现归功于