smart-core / ladybug-bundle
Ladybug 库(简单且可扩展的 PHP Dumper)的 Symfony2 扩展包
Requires
- php: >=5.3.2
- raulfraile/ladybug: ~1.0.0
- raulfraile/ladybug-plugin-symfony2: ~1.0.0
- symfony/framework-bundle: >=2.0.0
Requires (Dev)
- mockery/mockery: @stable
- phpunit/phpunit: @stable
Replaces
- raulfraile/ladybugbundle: dev-master
README
此扩展包为 Symfony2 项目提供了一个简单且可扩展的 var_dump/print_r 替代方案,适用于控制器或 Twig 模板。例如,使用此扩展包,可以实现以下功能
<?php class UserController extends Controller { public function userAction($username) { ladybug_dump($username); // or just ld($username) } }
{{ user.username|ladybug_dump }}
得到以下结果
string(10) "raulfraile"
安装
步骤 1: 安装依赖库
要安装此扩展包,您需要 Ladybug 库和此扩展包。安装方式取决于您的 Symfony 版本
Symfony 2.0.x: bin/vendors.php
方法
如果您使用 bin/vendors.php
方法来管理您的依赖库,请将以下条目添加到项目根目录下的 deps
文件中
[Ladybug]
git=http://github.com/raulfraile/Ladybug.git
target=Ladybug
[RaulFraileLadybugBundle]
git=http://github.com/raulfraile/LadybugBundle.git
target=/bundles/RaulFraile/Bundle/LadybugBundle
接下来,通过运行以下命令更新您的依赖库
$ ./bin/vendors
最后,将以下条目添加到您的自动加载器中
<?php // app/autoload.php $loader->registerNamespaces(array( // ... 'Ladybug' => __DIR__.'/../vendor/Ladybug/lib', 'RaulFraile' => __DIR__.'/../vendor/bundles', ));
Symfony 2.1.x: Composer
Composer 是 PHP 项目的依赖管理器。您必须在 composer.json
文件中列出您的依赖项
{ "require": { "raulfraile/ladybug-bundle": "v0.7" } }
要实际安装 Ladybug,请下载 composer 二进制文件并运行它
wget https://getcomposer.org.cn/composer.phar
# or
curl -O https://getcomposer.org.cn/composer.phar
php composer.phar install
步骤 2: 启用扩展包
最后,在内核中启用扩展包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new RaulFraile\Bundle\LadybugBundle\RaulFraileLadybugBundle(), ); }
示例
可以转储任何变量,包括数组、对象和资源
转储一个数组
<?php $var = array(1, 2, 3); ladybug_dump($var)
转储一个对象
<?php $var = new Foo(); ladybug_dump($var)
转储一个 GD 图像
<?php $img = imagecreatefrompng(__DIR__ . '/images/ladybug.png'); ladybug_dump($img);
可以使用 Twig 过滤器 ladybug_dump
实现相同的功能。
辅助函数
有 5 个辅助函数可以在任何控制器中使用
ladybug_dump($var1[, $var2[, ...]])
: 转储一个或多个变量
ladybug_dump_die($var1[, $var2[, ...]])
: 转储一个或多个变量并终止当前脚本
ladybug_dump_return($format, $var1[, $var2[, ...]])
: 转储一个或多个变量并返回转储结果,可以是以下格式之一
- yml: 返回 YAML 格式的转储
- json: 返回 JSON 格式的转储
- xml: 返回 XML 格式的转储
- php: 返回 PHP 数组格式的转储
ladybug_dump_ini([$extension])
: 转储所有配置选项
ladybug_dump_ext()
: 转储已加载的扩展
如果未使用这些函数名,也有一些快捷方式
ld($var1[, $var2[, ...]])
: ladybug_dump 的快捷方式
ldd($var1[, $var2[, ...]])
: ladybug_dump_die 的快捷方式
ldr($format, $var1[, $var2[, ...]])
: ladybug_return 的快捷方式
只有 ladybug_dump
可以在 Twig 模板内部使用。
Symfony 命令
有两个 Symfony 命令可以用于转储给定类的实例或将其实际导出到文件,支持 JSON、YAML 或 XML 格式。
# php app/console ladybug:dump class_name [--all] # php app/console ladybug:export class_name target [--format=yaml] php app/console ladybug:dump "Symfony\Component\HttpFoundation\Request" php app/console ladybug:export "Symfony\Component\HttpFoundation\Request" export.json --format=json
Symfony 性能分析集成
您可以使用 Ladybug 日志记录器而不是在 HTML 文档内部打印出转储树,并在 Symfony 性能分析器的一个标签中查看结果
要使用 Ladybug 日志记录器,从 DIC 中获取 ladybug
服务并调用 log
方法
<?php class TestController { public function testAction() { $var = 1; $this->get('ladybug')->log($var); }
API 参考
Ladybug 会自动检测 Symfony、Doctrine、Twig 和 Silex 类,并将它们链接到官方文档。
配置
您可以直接在 config.yml
文件中配置 ladybug 库。以下是默认配置
raul_fraile_ladybug: general: expanded: false object: max_nesting_level: 3 show_data: true show_classinfo: true show_constants: true show_methods: true show_properties: true array: max_nesting_level: 8 processor: active: true bool: html_color: #008 cli_color: blue float: html_color: #800 cli_color: red int: html_color: #800 cli_color: red string: html_color: #080 cli_color: green show_quotes: true css: path: /Asset/tree.min.css