smart-core/ladybug-bundle

Ladybug 库(简单且可扩展的 PHP Dumper)的 Symfony2 扩展包

安装: 525

依赖者: 3

建议者: 0

安全: 0

星星: 0

观察者: 2

分支: 49

类型:symfony-bundle

v1.0.6 2014-10-10 06:09 UTC

This package is auto-updated.

Last update: 2024-08-29 01:16:04 UTC


README

Build Status

此扩展包为 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