นี่คือแพ็คเกจสำหรับการรวม PHP Debug Bar กับ Laravel มันมีผู้ให้บริการเพื่อลงทะเบียน debugbar และแนบเข้ากับผลลัพธ์ คุณสามารถเผยแพร่สินทรัพย์และกำหนดค่าผ่าน Laravel มัน bootstraps นักสะสมบางคนเพื่อทำงานกับ Laravel และใช้ดาต้าคูลเลคเตอร์แบบกำหนดเองสองคู่โดยเฉพาะสำหรับ Laravel มันถูกกำหนดค่าให้แสดงการเปลี่ยนเส้นทางและคำขอ AJAX (jQuery) (แสดงในแบบเลื่อนลง) อ่านเอกสารสำหรับตัวเลือกการกำหนดค่าเพิ่มเติม

คำเตือน
ใช้ debugbar เฉพาะในการพัฒนา อย่าใช้ debugbar บนเว็บไซต์ที่เข้าถึงได้สาธารณะเนื่องจากจะรั่วไหลข้อมูลจากคำขอที่เก็บไว้ (โดยการออกแบบ)
คำเตือน
นอกจากนี้ยังสามารถชะลอแอปพลิเคชันลง (เพราะต้องรวบรวมและแสดงข้อมูล) ดังนั้นเมื่อประสบความเชื่องช้าลองปิดการใช้งานนักสะสมบางคน
แพ็คเกจนี้มีนักสะสมที่กำหนดเอง:
bootstraps นักสะสมต่อไปนี้สำหรับ laravel:
และนักสะสมเริ่มต้น:
นอกจากนี้ยังมีอินเทอร์เฟซด้านหน้า ( Debugbar ) สำหรับข้อความการบันทึกได้ง่ายข้อยกเว้นและเวลา
ต้องการแพ็คเกจนี้ด้วยนักแต่งเพลง ขอแนะนำให้ต้องใช้แพ็คเกจเพื่อการพัฒนาเท่านั้น
composer require barryvdh/laravel-debugbar --devLaravel ใช้การค้นพบแบบอัตโนมัติแพ็คเกจดังนั้นคุณไม่จำเป็นต้องเพิ่มผู้ให้บริการด้วยตนเอง
debugbar จะเปิดใช้งานเมื่อ APP_DEBUG เป็น true
หากคุณใช้เส้นทาง Catch-all/Fallback ให้แน่ใจว่าคุณโหลด Debugbar ServiceProvider ก่อนที่แอพ ServiceProviders ของคุณเอง
หากคุณไม่ได้ใช้การค้นพบอัตโนมัติให้เพิ่มผู้ให้บริการในรายการผู้ให้บริการ สำหรับ Laravel 11 หรือใหม่กว่านี้เพิ่ม ServiceProvider ใน Bootstrap/Providers.php สำหรับ Laravel 10 ขึ้นไปเพิ่ม ServiceProvider ใน config/app.php
Barryvdh Debugbar ServiceProvider::class, หากคุณต้องการใช้ Facade เพื่อบันทึกข้อความให้เพิ่มสิ่งนี้ภายในวิธี register ของ app/Providers/AppServiceProvider.php คลาส:
public function register (): void
{
$ loader = Illuminate Foundation AliasLoader:: getInstance ();
$ loader -> alias ( ' Debugbar ' , Barryvdh Debugbar Facades Debugbar::class);
} Profiler ถูกเปิดใช้งานโดยค่าเริ่มต้นหากคุณมี app_debug = true คุณสามารถแทนที่ว่าใน config ( debugbar.enabled ) หรือโดยการตั้ง DEBUGBAR_ENABLED ใน .env ของคุณ ดูตัวเลือกเพิ่มเติมใน config/debugbar.php คุณสามารถตั้งค่าในการกำหนดค่าของคุณหากคุณต้องการรวม/ยกเว้นไฟล์ผู้ขายด้วย (fontawesome, highlight.js และ jQuery) หากคุณใช้พวกเขาในเว็บไซต์ของคุณแล้วให้ตั้งค่าเป็นเท็จ นอกจากนี้คุณยังสามารถแสดงเฉพาะผู้ขาย JS หรือ CSS โดยตั้งค่าเป็น 'JS' หรือ 'CSS' (highlight.js ต้องการทั้ง CSS + JS ดังนั้นตั้งค่าเป็น true สำหรับการไฮไลต์ไวยากรณ์)
php artisan vendor:publish --provider= " BarryvdhDebugbarServiceProvider " ตรวจสอบให้แน่ใจว่าได้เพิ่ม laraveldebugbar ในรายการล้างของคุณใน config/octane.php
' flush ' => [
Barryvdh Debugbar LaravelDebugbar::class,
], สำหรับลูเมนลงทะเบียนผู้ให้บริการอื่นใน bootstrap/app.php :
if ( env ( ' APP_DEBUG ' )) {
$ app -> register ( Barryvdh Debugbar LumenServiceProvider::class);
}หากต้องการเปลี่ยนการกำหนดค่าให้คัดลอกไฟล์ไปยังโฟลเดอร์ config ของคุณและเปิดใช้งาน:
$ app -> configure ( ' debugbar ' );ตอนนี้คุณสามารถเพิ่มข้อความโดยใช้ด้านหน้า (เมื่อเพิ่ม) โดยใช้ระดับ PSR-3 (การดีบักข้อมูลการแจ้งเตือนคำเตือนข้อผิดพลาดวิกฤตการแจ้งเตือนฉุกเฉิน):
Debugbar:: info ( $ object );
Debugbar:: error ( ' Error! ' );
Debugbar:: warning ( ' Watch out… ' );
Debugbar:: addMessage ( ' Another message ' , ' mylabel ' );และเริ่ม/หยุดเวลา:
Debugbar:: startMeasure ( ' render ' , ' Time for rendering ' );
Debugbar:: stopMeasure ( ' render ' );
Debugbar:: addMeasure ( ' now ' , LARAVEL_START , microtime ( true ));
Debugbar:: measure ( ' My long operation ' , function () {
// Do something…
});หรือบันทึกข้อยกเว้น:
try {
throw new Exception ( ' foobar ' );
} catch ( Exception $ e ) {
Debugbar:: addThrowable ( $ e );
}นอกจากนี้ยังมีฟังก์ชั่นผู้ช่วยสำหรับการโทรที่พบบ่อยที่สุด:
// All arguments will be dumped as a debug message
debug ( $ var1 , $ someString , $ intValue , $ object );
// `$collection->debug()` will return the collection and dump it as a debug message. Like `$collection->dump()`
collect ([ $ var1 , $ someString ])-> debug ();
start_measure ( ' render ' , ' Time for rendering ' );
stop_measure ( ' render ' );
add_measure ( ' now ' , LARAVEL_START , microtime ( true ));
measure ( ' My long operation ' , function () {
// Do something…
});หากคุณต้องการคุณสามารถเพิ่มข้อมูลของคุณเองผ่านคอนเทนเนอร์หรือด้านหน้า:
Debugbar:: addCollector ( new DebugBar DataCollector MessagesCollector ( ' my_messages ' ));
//Or via the App container:
$ debugbar = App:: make ( ' debugbar ' );
$ debugbar -> addCollector ( new DebugBar DataCollector MessagesCollector ( ' my_messages ' )); โดยค่าเริ่มต้น debugbar จะถูกฉีดก่อน </body> หากคุณต้องการฉีด debugbar ด้วยตัวคุณเองให้ตั้งค่าตัวเลือกการกำหนดค่า 'ฉีด' เป็นเท็จและใช้ตัวแสดงตัวเองและติดตาม http://phpdebugbar.com/docs/rendering.html
$ renderer = Debugbar:: getJavascriptRenderer ();หมายเหตุ: ไม่ใช้การฉีดอัตโนมัติจะปิดใช้งานข้อมูลคำขอเนื่องจากเพิ่มหลังจากการตอบกลับ คุณสามารถเพิ่ม datacollector default_request ในการกำหนดค่าเป็นทางเลือก
คุณสามารถเปิดหรือปิดการใช้งาน debugbar ในช่วงเวลาทำงาน
Debugbar:: enable ();
Debugbar:: disable ();NB เมื่อเปิดใช้งานแล้วนักสะสมจะถูกเพิ่ม (และสามารถผลิตค่าใช้จ่ายเพิ่มเติม) ดังนั้นหากคุณต้องการใช้ debugbar ในการผลิตปิดการใช้งานในการกำหนดค่าและเปิดใช้งานเฉพาะเมื่อจำเป็น
Debugbar จดจำคำขอก่อนหน้านี้ซึ่งคุณสามารถดูได้โดยใช้ปุ่มเรียกดูทางด้านขวา สิ่งนี้จะใช้ได้เฉพาะในกรณีที่คุณเปิดใช้งาน debugbar.storage.open ในการกำหนดค่า ตรวจสอบให้แน่ใจว่าคุณทำสิ่งนี้เกี่ยวกับการพัฒนาในท้องถิ่นเท่านั้นเพราะมิฉะนั้นคนอื่น ๆ จะสามารถดูคำขอก่อนหน้านี้ได้ โดยทั่วไปแล้ว Debugbar ควรใช้เฉพาะในพื้นที่หรืออย่างน้อยก็ จำกัด โดย IP เป็นไปได้ที่จะผ่านการโทรกลับซึ่งจะได้รับวัตถุคำขอดังนั้นคุณสามารถกำหนดการเข้าถึงที่เก็บข้อมูล OpenHandler
Laravel Debugbar มาพร้อมกับส่วนขยายของกิ่งสองตัว เหล่านี้ถูกทดสอบด้วย rcrowe/twigbridge 0.6.x
เพิ่มส่วนขยายต่อไปนี้ไปยัง twigbridge config/extensions.php ของคุณ (หรือลงทะเบียนส่วนขยายด้วยตนเอง)
' BarryvdhDebugbarTwigExtensionDebug ' ,
' BarryvdhDebugbarTwigExtensionDump ' ,
' BarryvdhDebugbarTwigExtensionStopwatch ' , ส่วนขยายการถ่ายโอนข้อมูลจะแทนที่ฟังก์ชั่นการถ่ายโอนข้อมูลเป็นตัวแปรเอาต์พุตโดยใช้ DataFormatter ส่วนขยายการดีบักจะเพิ่มฟังก์ชั่น debug() ซึ่งส่งผ่านตัวแปรไปยังตัวรวบรวมข้อความแทนที่จะแสดงโดยตรงในเทมเพลต มันทิ้งข้อโต้แย้งหรือเมื่อว่างเปล่า; ตัวแปรบริบททั้งหมด
{{ debug() }}
{{ debug( user , categories ) }}ส่วนขยายนาฬิกาจับเวลาเพิ่มแท็กนาฬิกาจับเวลาคล้ายกับแท็กใน Symfony/Silex Twigbridge
{% stopwatch " foo " %}
…some things that gets timed
{% endstopwatch %}