theofidry / psysh
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
- dev-master
- 4.5.0
- 4.4.0
- 4.3.0
- v4.2.0
- v4.1.0
- 4.0.0
- v3.5.1
- v3.5.0
- v3.4.0
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.0
- v3.0.1
- v3.0.0
- v2.0.2
- v2.0.1
- v2.0.0
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- v1.0.0-beta
- dev-bugfix/help
- dev-refactoring/code
- dev-bugfix/phpunit
- dev-feature/symfony6
- dev-feature/adapt-constraints
- dev-feature/github-actions
This package is auto-updated.
Last update: 2021-12-29 22:26:10 UTC
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 为自定义 Psysh 命令服务提供自动配置,只要它们继承自
Psy\Command\ReflectingCommand
或Psy\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 开发。该项目得以实现归功于
- Justin Hileman:PsySH 的作者以及 PsySH 项目所有贡献者
- Adrian Palmer:负责将 PsySH 移植到 Symfony 上