ProfilerToolbar рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓

рдпрджрд┐ рдЖрдк рдХреЛрд╣рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдбрд┐рдмрдЧрдЯреВрд▓рдмрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдЖрдорддреМрд░ рдкрд░ рдмреЗрдХрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд░реНрдпрд╛рдкреНрдд рдЦрд╛рд▓реА рд╕рдордп рдФрд░ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдХреЛ рд▓рд╛рдареА рдФрд░ рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЧрд░реНрднрдирд┐рд░реЛрдзрдХ рдерд╛:

ProfilerToolbar


рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рди рдХреЗрд╡рд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдЙрдирдХреА рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рднреАред

ProfilerToolbar Tab: SQL Queries

рдореИрдВ рднреА рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

ProfilerToolbar Tab: Cache

рд╡рд░реНрддрдорд╛рди рдорд╛рд░реНрдЧ рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рджреЗрдЦреЗрдВред

ProfilerToolbar Tab: Route

рдЕрдХреНрд╕рд░ рдЖрдкрдХреЛ var_dump(); рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ var_dump(); рдФрд░ рдкреГрд╖реНрда рдХрд╛ рдХреЛрдб рд╕реНрд╡рдпрдВ рдЦрд░рд╛рдм рди рдХрд░реЗрдВред

ProfilerToolbar Tab: Your

рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ ( $_GET , $_POST , $_SESSION , рдЖрджрд┐) рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдХреЛ рд░реЛрдХрдирд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреГрд╖реНрда рдкрд░ рдПрдХ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝рддрд╛ рд╣реВрдВред


рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╛рдпрд░рдмрдЧ рдореЗрдВ рд╕рднреА рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред


рд╡рд┐рд╕реНрддреГрдд рд╕рдореВрд╣ рджреЗрдЦреЗрдВ


рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрдирд╛


рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, bootstrap.php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╕реНрдерд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВред рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЙрдирдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдЗрд╕рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХреИрд╢ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

 Kohana::modules(array( ... 'profilertoolbar' => MODPATH.'profilertoolbar', 'cache' => MODPATH.'cache', 'database' => MODPATH.'database', ... )); 


рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдкреИрдирд▓

рдкреИрдирд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрд╕ рдкреГрд╖реНрда рдХреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: ProfilerToolbar::render(true);
рдореИрдВ рдЗрд╕реЗ рдореБрдЦреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рд╣рд░ рдЬрдЧрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред

 <html> <body> ... content ... <?php ProfilerToolbar::render(true); ?> </body> </html> 

FireBug рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ

рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╛рдпрд░рдмрдЧ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд┐рд╕реА рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд░реЗрдВ:
1. рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ showEverywhere рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЬрдЧрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рджрд┐рдЦрд╛рдПрдВ

  ... // firebug data settings 'firebug'=>array( 'enabled' => true, // if set FALSE, panel don't ... 'showEverywhere' => FALSE, // if set TRUE you don't need ... ... 


2. рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ, ProfilerToolbar::firebug(); рд▓рд┐рдЦреЗрдВ ProfilerToolbar::firebug();
рдпрд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдЬреЛ рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:

  class Controller_Ajax extends Controller { public function after(){ ... ProfilerToolbar::firebug(); parent::after(); } ... } 


рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдирд╛

рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдЪрд░ рдХреЗ рдбрдВрдк рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВ:
  ProfilerToolbar::addData('first tab','test string'); ProfilerToolbar::addData('first tab',rand(1, 1000)/ rand(1, 1000)); ProfilerToolbar::addData('first tab',$user); ProfilerToolbar::addData('first tab',$this->request->headers()); ProfilerToolbar::addData('second tab','other data'); 

рд╣рдо рдЗрд╕ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред

config


рдпрд╣рд╛рдБ рд╕реВрдЪреАрдмрджреНрдз рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣рд╛рдБ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред
рдЗрд╕рдореЗрдВ, рдЖрдк рд╕реНрд╡рдпрдВ рдкреИрдирд▓ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдлрд╛рдпрд░рдмрдЧ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреМрди рд╕реА рдлрд╛рдЗрд▓реЗрдВ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдк showIncFiles рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ showIncFiles рдЬреЛ рдЙрддреНрдкрдиреНрди HTML рдХреЛрдб рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрдЧрд╛ред

database рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ profiling рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛, рдЕрдиреНрдпрдерд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд┐рдХрд╛рд╕


рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдорд╛рдВрдЧ рдореЗрдВ рд╣реИ, рддреЛ рдореИрдВ рдХреЛрд╣рдирд╛ рд╢реИрд▓реА рдФрд░ рдирд┐рдпрдорд┐рдд рдпреВрдЬрд╝рд░рдЧрд╛рдЗрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдб рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реЗ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореИрдВ рд▓реЙрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдлреЗрдВрдХ рджреЗрдВрдЧреЗ :)

рдирд┐рд╖реНрдХрд░реНрд╖


рдореЙрдбреНрдпреВрд▓ рдкреГрд╖реНрда рдФрд░ рдбреЗрдореЛ: alertdevelop.ru/projects/profilertoolbar
рдЧрд┐рдердм рдкреНрд░реЛрдЬреЗрдХреНрдЯ: github.com/Alert/profilertoolbar

ps рдбреЗрдореЛ рдкреЗрдЬ рдкрд░, рдлрд╛рдпрд░рдмрдЧ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рд╕реНрдереИрддрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓рд╛ рдкреИрдирд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдХрдареЛрд░ рдЖрд▓реЛрдЪрдирд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ :)

Source: https://habr.com/ru/post/In137710/


All Articles