theofidry / psysh-bundle
此软件包已被废弃,不再维护。没有建议的替代软件包。
PHP REPL PsySH 的 Symfony 版本。
4.5.0
2021-12-29 22:21 UTC
Requires
- php: >=8.0
- psy/psysh: ^0.11
- symfony/error-handler: ^5.4|^6.0
- symfony/expression-language: ^5.4|^6.0
- symfony/framework-bundle: ^5.4|^6.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/symfony: ^5.4|^6.0
README
这是一个用于使用 Symfony 与 php REPL PsySH 的软件包。在 psysh.org 上了解更多信息,并查看 Presentate 上的 PHP 脚本交互式调试 讲座。
它具体做什么?
- 使用应用程序依赖项加载 PsySH
- 提供以下变量的访问权限
变量 | 描述 |
---|---|
$container |
Symfony ServiceContainer 的实例 |
$kernel |
Symfony Kernel 的实例 |
$parameters |
Symfony 参数的实例 |
除此之外,它就是普通的 PsySH!您也可以 自定义它 以添加您自己的变量。
文档
安装
您可以使用 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
添加自定义命令
为 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\ReflectingCommand
或Psy\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 开发。此项目得以实现得益于
- Justin Hileman:作者 PsySH 和 PsySH 项目的所有贡献者
- Adrian Palmer:领导将 PsySH 移植到 Symfony