PHP Debugbar là gì?
PHP Debugbar là một thư viện giúp bạn có thể debug PHP như console của Dev Tools khi debug JavaScript. Trong bài này mình sẽ hướng dẫn các bạn cách tích hợp thư viện tuyệt vời này vào CodeIgniter.Cách tích hợp PHP Debugbar trong CodeIgniter
Trước tiên, hãy chắc chắn rằng bạn đã cài đặt Composer. Việc cài đặt Composer khá đơn giản, các bạn tự thực hiện nhé!Sau đó, mở một Cửa sổ dòng lệnh (Command Prompt - CMD) và gõ 2 lệnh sau:
cd <PATH_TO_YOUR_PROJECT>\application\Và:
composer require maximebf/debugbar
Sau khi Composer tải thư viện về thì trong thư mục application của bạn sẽ có thêm một thư mục vendor. Tiếp theo, mở tập tin
application\config\config.php
và tìm chuỗi sau:$config['composer_autoload']
Sửa giá trị từ
FALSE
thành TRUE
để CI tự động nạp các thư viện mà ta đã tải bằng Composer. Giờ thì bạn đã có thể sử dụng PHP Debugbar được rồi, khởi tạo class trong Controller bất kỳ:<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use DebugBar\StandardDebugBar;
class Homepage extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$debugbar = new StandardDebugBar();
$debugbarRenderer = $debugbar->getJavascriptRenderer();
$debugbar['messages']->addMessage('hello world!');
$data['debugbarRenderer'] = $debugbarRenderer;
$this->load->view('homepage', $data);
}
}
Và trong View:
<!DOCTYPE html>
<html>
<head>
<?php echo $debugbarRenderer->renderHead() ?>
</head>
<body>
...
<?php echo $debugbarRenderer->render() ?>
</body>
</html>
Tuy nhiên khi chạy thử thì các bạn sẽ chưa thấy Debugbar đâu cả. Lý do là các resource (css/js) không nạp được. Chúng ta cần làm thêm một công đoạn nhỏ!
Các bạn vào đường dẫn:
<PATH_TO_YOUR_PROJECT>\application\vendor\maximebf\debugbar\src\DebugBar\
Và copy thư mục Resources ra ngoài thư mục root (ngang hàng thư mục application và system), tạo một thư mục tên là assets, paste thư mục Resources vào và đổi tên thư mục này thành debugbar (bạn có thể giữ nguyên nếu muốn).
Cuối cùng, chúng ta cần cho PHP Debugbar biết nơi cần nạp tài nguyên bằng cách sử dụng method setBaseUrl(), sửa lại trong Controller như sau:
public function index()
{
$debugbar = new StandardDebugBar();
$debugbarRenderer = $debugbar->getJavascriptRenderer();
$debugbarRenderer->setBaseUrl(base_url('assets/debugbar/'));
$debugbar['messages']->addMessage('hello world!');
$data['debugbarRenderer'] = $debugbarRenderer;
$this->load->view('homepage', $data);
}
Tận hưởng thành quả nào!