SlideShare una empresa de Scribd logo
1 de 18
sfWebDebugToolbarを
    拡張してみる

          symfony勉強会/懇親会
     OGAWA Katsuhiro a.k.a. fivestar



                                1
自己紹介
• HN: fivestar
• 名前: 小川雄大(OGAWA Katsuhiro)
• 所属: アシアル株式会社

  http://d.hatena.ne.jp/Fivestar/
  http://wassr.jp/user/fivestar



                                    2
アジェンダ
• sfWebDebugToolbarの内部
• sfWebDebugToolbarの拡張方法
• 拡張実践




                           3
sfWebDebugToolbarの
       内部


                4
sfWebDebugToolbar


• Symfoniansお馴染みの開発ツール
• symfonyやPHPの設定、ログの確認など




                           5
symfony 1.2 で変わったこと
• それぞれのパネルがクラス化
 – sfWebDebugPanel
   •   sfWebDebugPanelSymfonyVersion
   •   sfWebDebugPanelConfig
   •   sfWebDebugPanelLogs
   •   などなど
• 拡張が容易に


                                       6
sfWebDebugPanel
• getTitle()
  – Toolbarに表示されるHTML
• getPanelContent()
  – クリックされた時に表示されるHTML
• getPanelTitle()
  – クリックされた時に表示されるHTMLのタイト
    ル


                                 7
sfWebDebugPanelTimer
• 処理にかかった時間を計測し表示




                          8
sfTimerManager
• getTimer($name)
  – sfTimerの取得
     • なければ作成し、自動的に計測を開始
  – $name => Panelのtype
  – sfTimerManager::getTimer(‘Database (Doctrine)’)




                                                 9
sfTimer
• addTime()
  – sfTimerManager::getTimer()を最初に実行してか
    らの経過時間を記録
  – 呼び出された回数 => Panelのcalls




                                 10
sfTimerの追加
• 計測を開始したいタイミングで
  sfTimerManager::getTimer($name)を実行
• 後は経過時間を記録したいタイミングで
   sfTimerManager::getTimer($name)
     ->addTime() を実行
• 上記を任意の場所に記述しておけばOK



                                  11
sfWebDebugToolbarの
     拡張方法


                12
パネルの拡張
• 基本的なことはThe symfony Cookbookに
 – 日本語翻訳済み
• 上記とほぼ同じ内容です




                            13
パネルの拡張
• sfEventDispatcherを使用
  – $this->dispatcher->connect(
     'debug.web.load_panels',
       array($this, 'configureWebDebugToolbar'))
• Configurationクラスのconfigure()に上記を
  記述すると、configureWebDebugToolbar()
  で拡張が可能に


                                              14
パネルの拡張
• configureWebDebugToolbar(sfEvent $event)
  – $event->getSubject()
     • sfWebDebugオブジェクトを取得
  – このメソッド名は任意
     • 変更する場合はdispatcher->connectの引数も変更




                                       15
sfWebDebug
• setPanel($name, sfWebDebugPanel $panel)
  – パネルを追加/変更
  – $webDebug->setPanel(‘assets’,
     new sfWebDebugPanelAssets($webDebug))
• removePanel($name)
  – パネルを削除
  – $webDebug->removePanel(‘assets’)


                                         16
拡張実践


       17
ご清聴ありがとうございました




          End

Más contenido relacionado

La actualidad más candente

新作業系統的蛻變
新作業系統的蛻變新作業系統的蛻變
新作業系統的蛻變jerrychiang
 
碳酸会 图片列表讨论
碳酸会 图片列表讨论碳酸会 图片列表讨论
碳酸会 图片列表讨论碳酸饮料会
 
Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)龍一 田中
 
การสร้าง Banner ให้ wordpress
การสร้าง Banner ให้ wordpressการสร้าง Banner ให้ wordpress
การสร้าง Banner ให้ wordpresskrunareerat
 
การตั้งค่าภาษาไทยให้กับเมนู
การตั้งค่าภาษาไทยให้กับเมนูการตั้งค่าภาษาไทยให้กับเมนู
การตั้งค่าภาษาไทยให้กับเมนูkrunareerat
 
การเขียนบทความ การแทรกภาพใน Wordpress
การเขียนบทความ การแทรกภาพใน Wordpressการเขียนบทความ การแทรกภาพใน Wordpress
การเขียนบทความ การแทรกภาพใน Wordpresskrunareerat
 
Web Refactoring
Web RefactoringWeb Refactoring
Web RefactoringJace Ju
 
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇Jace Ju
 
PHP 物件導向 - 基礎觀念篇
PHP 物件導向 - 基礎觀念篇PHP 物件導向 - 基礎觀念篇
PHP 物件導向 - 基礎觀念篇Jace Ju
 
หน่วยการเรียนรู้ที่ 2 การทำงานของคอมพิวเตอร์
หน่วยการเรียนรู้ที่ 2 การทำงานของคอมพิวเตอร์หน่วยการเรียนรู้ที่ 2 การทำงานของคอมพิวเตอร์
หน่วยการเรียนรู้ที่ 2 การทำงานของคอมพิวเตอร์krunareerat
 
TracWysiwygPlugin
TracWysiwygPluginTracWysiwygPlugin
TracWysiwygPluginJun Omae
 
CSS 排版 - 基礎觀念篇
CSS 排版 - 基礎觀念篇CSS 排版 - 基礎觀念篇
CSS 排版 - 基礎觀念篇Jace Ju
 
Vidi Now產品簡介
Vidi Now產品簡介Vidi Now產品簡介
Vidi Now產品簡介Natasha Lin
 

La actualidad más candente (20)

新作業系統的蛻變
新作業系統的蛻變新作業系統的蛻變
新作業系統的蛻變
 
訪璇 Mixer
訪璇 Mixer訪璇 Mixer
訪璇 Mixer
 
碳酸会 图片列表讨论
碳酸会 图片列表讨论碳酸会 图片列表讨论
碳酸会 图片列表讨论
 
1000speakers-sendai
1000speakers-sendai1000speakers-sendai
1000speakers-sendai
 
Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)
 
การสร้าง Banner ให้ wordpress
การสร้าง Banner ให้ wordpressการสร้าง Banner ให้ wordpress
การสร้าง Banner ให้ wordpress
 
การตั้งค่าภาษาไทยให้กับเมนู
การตั้งค่าภาษาไทยให้กับเมนูการตั้งค่าภาษาไทยให้กับเมนู
การตั้งค่าภาษาไทยให้กับเมนู
 
Test 134
Test 134Test 134
Test 134
 
Mac玩家特區X目錄
Mac玩家特區X目錄Mac玩家特區X目錄
Mac玩家特區X目錄
 
การเขียนบทความ การแทรกภาพใน Wordpress
การเขียนบทความ การแทรกภาพใน Wordpressการเขียนบทความ การแทรกภาพใน Wordpress
การเขียนบทความ การแทรกภาพใน Wordpress
 
Web Refactoring
Web RefactoringWeb Refactoring
Web Refactoring
 
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
 
Cotizacion 2 pc
Cotizacion 2 pcCotizacion 2 pc
Cotizacion 2 pc
 
PHP 物件導向 - 基礎觀念篇
PHP 物件導向 - 基礎觀念篇PHP 物件導向 - 基礎觀念篇
PHP 物件導向 - 基礎觀念篇
 
หน่วยการเรียนรู้ที่ 2 การทำงานของคอมพิวเตอร์
หน่วยการเรียนรู้ที่ 2 การทำงานของคอมพิวเตอร์หน่วยการเรียนรู้ที่ 2 การทำงานของคอมพิวเตอร์
หน่วยการเรียนรู้ที่ 2 การทำงานของคอมพิวเตอร์
 
Eenadu55
Eenadu55Eenadu55
Eenadu55
 
TracWysiwygPlugin
TracWysiwygPluginTracWysiwygPlugin
TracWysiwygPlugin
 
CSS 排版 - 基礎觀念篇
CSS 排版 - 基礎觀念篇CSS 排版 - 基礎觀念篇
CSS 排版 - 基礎觀念篇
 
Blog學習單
Blog學習單Blog學習單
Blog學習單
 
Vidi Now產品簡介
Vidi Now產品簡介Vidi Now產品簡介
Vidi Now產品簡介
 

Destacado

Destacado (9)

AFT_Nicaragua
AFT_NicaraguaAFT_Nicaragua
AFT_Nicaragua
 
United Streaming
United StreamingUnited Streaming
United Streaming
 
Colegio_España
Colegio_EspañaColegio_España
Colegio_España
 
Power Point
Power PointPower Point
Power Point
 
Ordenagailuen zatiak
Ordenagailuen zatiakOrdenagailuen zatiak
Ordenagailuen zatiak
 
Desejos conteporâneos aula 1 - mercadológica 2
Desejos conteporâneos   aula 1 - mercadológica 2Desejos conteporâneos   aula 1 - mercadológica 2
Desejos conteporâneos aula 1 - mercadológica 2
 
United Streaming Ppt2
United Streaming Ppt2United Streaming Ppt2
United Streaming Ppt2
 
Symfony updates
Symfony updatesSymfony updates
Symfony updates
 
United Streaming Ppt2
United Streaming Ppt2United Streaming Ppt2
United Streaming Ppt2
 

Más de Katsuhiro Ogawa

20120327 phpstudy58-phake
20120327 phpstudy58-phake20120327 phpstudy58-phake
20120327 phpstudy58-phakeKatsuhiro Ogawa
 
オレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいましたオレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいましたKatsuhiro Ogawa
 
Twigエクステンションの作り方
Twigエクステンションの作り方Twigエクステンションの作り方
Twigエクステンションの作り方Katsuhiro Ogawa
 
Symfony2のフォームフレームワーク
Symfony2のフォームフレームワークSymfony2のフォームフレームワーク
Symfony2のフォームフレームワークKatsuhiro Ogawa
 
日本電子卒業生とPHPとsymfony
日本電子卒業生とPHPとsymfony日本電子卒業生とPHPとsymfony
日本電子卒業生とPHPとsymfonyKatsuhiro Ogawa
 
symfony 1.2を支えるサブフレームワーク
symfony 1.2を支えるサブフレームワークsymfony 1.2を支えるサブフレームワーク
symfony 1.2を支えるサブフレームワークKatsuhiro Ogawa
 
Doctrineではじめるsymfony1.2開発
Doctrineではじめるsymfony1.2開発Doctrineではじめるsymfony1.2開発
Doctrineではじめるsymfony1.2開発Katsuhiro Ogawa
 

Más de Katsuhiro Ogawa (10)

20120327 phpstudy58-phake
20120327 phpstudy58-phake20120327 phpstudy58-phake
20120327 phpstudy58-phake
 
オレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいましたオレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいました
 
Twigエクステンションの作り方
Twigエクステンションの作り方Twigエクステンションの作り方
Twigエクステンションの作り方
 
Symfony Update 2011
Symfony Update 2011Symfony Update 2011
Symfony Update 2011
 
Symfony2のフォームフレームワーク
Symfony2のフォームフレームワークSymfony2のフォームフレームワーク
Symfony2のフォームフレームワーク
 
Contribute to Symfony
Contribute to SymfonyContribute to Symfony
Contribute to Symfony
 
究極のPHP本完成
究極のPHP本完成究極のPHP本完成
究極のPHP本完成
 
日本電子卒業生とPHPとsymfony
日本電子卒業生とPHPとsymfony日本電子卒業生とPHPとsymfony
日本電子卒業生とPHPとsymfony
 
symfony 1.2を支えるサブフレームワーク
symfony 1.2を支えるサブフレームワークsymfony 1.2を支えるサブフレームワーク
symfony 1.2を支えるサブフレームワーク
 
Doctrineではじめるsymfony1.2開発
Doctrineではじめるsymfony1.2開発Doctrineではじめるsymfony1.2開発
Doctrineではじめるsymfony1.2開発
 

sfWebDebugToolbarを 拡張してみる