シムノート

PHPフレームワークSymfonyの学習帳

ユーザ用ツール

サイト用ツール


サイドバー

メニュー



このエントリーをはてなブックマークに追加

blog:2015-12-07:デバッグ

デバッグ

シンプルで便利なデバッグ方法を3つ紹介します。

  • Profiler
  • Dump
  • Logger

Profiler

画面の下に表示されているやつです。

profiler_bar.jpg

展開すると各種情報が見れます。

profiler.jpg

Dump

dump()でオブジェクトのダンプが見れます。var_dump()はもう必要ありません。

    public function indexAction(Request $request)
    {
        dump($request);

        return $this->render('default/index.html.twig', array(
            'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
        ));
    }

ダンプはプロファイラーバーで見れます。

profiler_dump1.jpg

プロファイラーを展開した中でも見れます。

profiler_dump2.jpg

dumpの後で、dieやexitすると、その場でブラウザ画面に表示されます。

    public function indexAction(Request $request)
    {
        dump($request);
        die;

        return $this->render('default/index.html.twig', array(
            'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
        ));
    }

profiler_dump3.jpg

dumpはtwigの中でも使えます。

{# app/Resources/views/article/recent_list.html.twig #}

{{ dump(articles) }}

{% for article in articles %}
    <a href="/article/{{ article.slug }}">
        {{ article.title }}
    </a>
{% endfor %}

Logger

Loggerでファイルにログを出力することができます。

    public function indexAction(Request $request)
    {
        $logger = $this->get('logger');
        $logger->info("incoming ".__METHOD__);

        return $this->render('default/index.html.twig', array(
            'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
        ));
    }

$ tail -f var/logs/dev.log | grep app.INFO

[2015-12-09 00:12:39] app.INFO: incoming AppBundle\Controller\DefaultController::indexAction [] []

ログはプロファイラーで見ることもできます。

profiler_log.jpg

ダンプやログもプロファイラーから見ることが出来るSymfonyはとても親切です。

Comments



51᠎ +2​ = ?
blog/2015-12-07/デバッグ.txt · 最終更新: 2015/12/10 01:31 by tsubo