Gói thông báo lỗi code trong sublime text 3 năm 2024

Gỡ lỗi- công việc mà chúng ta đều phải làm rất nhiều lần. Viết được một Code hoàn hảo ngay lần đầu tiên là điều rất khó xảy ra đối với các lập trình viên. Khoảng hơn 1 năm trước, Shameer viết một bài báo trên SitePoint về cách sử dụng Xdebug và Netbeans để gỡ lỗi các ứng dụng. Trong bài viết này, chúng ta sẽ xem xét cách gỡ lỗi bằng Xdebug cùng với Sublime Text.

Bắt đầu

Đầu tiên, cần cài đặt PHP Xdebug mở rộng. Nếu chưa biết cách cài đặt, bạn hãy xem đường link cung cấp trong phần giới thiệu. Để chắc chắn rằng Xdebug đang làm việc bằng cách kiểm tra nếu nó được liệt kê trong Phpinfo() .

Tất nhiên, chúng ta cũng cần Sublime Text 3. Bài nghiên cứu này sẽ dùng phiên bản mới nhất Sublime Text 3. Mặc dù có thể dùng Sublime Text 2.

Thiết lập Xdebug

Chúng ta cần định cấu hình Xdebug bằng cách thêm các dòng lệnh sau vào file php.ini , hoặc tốt hơn là để một tệp tin X debug.ini như mô ta dưới đây How-to On Linux

xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_log="/var/log/xdebug/xdebug.log"

Nói chung, bạn sẽ sử dụng 127.0.0.1 như một máy chủ. Tuy nhiên, nếu bạn đang sử dụng Vagrant như bạn sẽ sử dụng một địa chỉ 10.0.2.2, dùy thuộc vào Xdebug tìm thấy hệ thống của bạn tại đâu. Không cần thiết đăng nhập từ xa, nhưng một vài trường hợp nghiêm trọng, thì đó là cách để bạn tìm ra thông tin về các lỗi đã xảy ra.

Đừng quên khởi động lại Webserver của bạn.

Thiết lập Sublime Text 3

Một trong số những thế mạnh của Sublime là việc bạn có thể mử rộng các packages một cách dễ dàng. Trong trường hợp này, chung ta sẽ cài đặt Xdebug Package. Nếu bạn chưa làm điều này, hãy chắc chắn rằng bạn có thể cái đặt các Package bằng cách cài đặt các Package kiểm soát. Khi bạn đã cài đặt Package control xong, bạn nên bắt đầu từ Sublime Text 3. Mở bảng lệnh từ các công cụ từ menu và tìm kiếm “install pakage”.

Gói thông báo lỗi code trong sublime text 3 năm 2024

Bây giờ bạn có thể tìm kiếm bất kỳ Package nào bạn muốn. Trong trương hợp này, chúng ta tìm “edebug client”.

Gói thông báo lỗi code trong sublime text 3 năm 2024

Việc cuối cùng chúng ta phải làm là thiết lập dự án trong Sublime. Các đơn giản nhất để thực hiện điều này là mở các thư mục gốc của ứng dụng, tới mục Project, click “save projects as”. Bạn nên lưu các tập tin trong thư mục gốc của ứng dụng, do đó, bạn có thể lưu nó trong hệ thống kiểm soát phiên bản của bạn. Nếu lúc ấy bạn đang sử dụng ứng dụng nào đó, bạn có thể cấu hình nó bất cứ khi nào một cách dễ dàng.

Mở file Project vừa tạo ra. Nôi dụng sẽ hiện thị như sau:

{

"folders":  
[  
    {  
       "follow_symlinks": true,  
       "path": "."  
    }  
]  
}

Ta sẽ gõ thêm một số dòng sau:

{

"folders":  
[  
    {  
        "follow_symlinks": true,  
        "path": "."  
    }  
],  
"settings": {  
    "xdebug": {  
         "url": "http://my.local.website/",  
    }  
}  
}

Bạn thấy đấy, chỉ cần thêm vào một URL vào ứng dụng web mà ta có, ta có thể thiết lập các cài đặt cho Xdebug. Chúng ta có thể bắt đầu. Ta cũng có thể thiết lập URL này trong các thiết lập Xdebug riêng của mình, khi đó chúng ta sẽ không làm việc trên nhiều dự án nếu không thay đổi cấu hình Xdebug mỗi lân.

Bắt đầu phiên Xdebug

Kiểm tra xem code có được thiết lập đúng hay không.

Menu click tools -> Xdebug, click Start debugging (khởi động trình duyệt).

Trang web được mở ra và XDEBUG_SESSION_START = sublime.xdebug? được thêm vào cuối URL. Phiên Xdebug bắt đầu. Trong Sublime, một số bảng phụ xuất hiện để hiển thị các thông tin gỡ lỗi, sau khi ta đã thiết lập một hoặc nhiều điểm ngắt.

Điểm ngắt

Hãy đặt điểm dừng đầu tiên- một điểm dừng đánh dấu bằng 1 lá cờ, ứng dụng sẽ tạm dừng khi soát đến đó. Tại điểm dừng này, ta có thể kiểm tra tất cả các giá trị của biến để biết những gì thực sự đang xảy ra.

Thêm điểm dừng bằng cách click chuột phải trên một dòng, tới Xdebug click Add/remove breakpoint. Một điểm đánh dấu sẽ được thêm vào các dòng rãnh để chỉ ra một điểm dừng đã được thiết lập.

Gói thông báo lỗi code trong sublime text 3 năm 2024

Mở trình duyệt lần nữa, và tiếp tục phiên ta mới bắt đầu. Khi chạy đến trang có điểm Breakpoint thì trang sẽ ngừng tải. Giờ, mở Sublime, bạn sẽ thấy hiển thị rất nhiều thông tin trong bản Xdebug. Xdebug stack và Xdebug Context rất thú vị. Trong stack, bạn có thể nhìn thấy toàn bộ stacktrace trong quá trình đã chạy qua.

Trong Context, bạn sẽ thấy tất cả các biến toàn cầu và cả những biến do bạn tự đặt ra. Bạn có thể click vào các biến này để xem chính xác các biến đang nắm giữ. Trong VD, nhấp vào biến $_SERVER

Gói thông báo lỗi code trong sublime text 3 năm 2024
Mũi tên màu vàng là chỉ vào dòng ứng dụng hiện đang tạm dừng

Do đó ứng dụng tạm ngưng, ta có thể xem xét thông tin qua các biến xác định. Tuy nhiên khi chúng ta xem xét xong, chúng ta muốn tiếp tục cho chạy thì thế nào? –Nhấp chuột phải một lần nữa và di chuột qua Xdebug menu, bạn sẽ có một vài quyền chọn:

  • Run: chạy ứng dụng cho đến điểm dừng tiếp theo hoặc đến điểm kết
  • Run to line: chạy cho đến khi bạn click vào
  • Step into: sẽ bước vào các chức năng hiện tại và dừng lại ngay sau đó
  • Step over: bước qua chức năng hiện tại và dừng lại ngay sau đó
  • Step out: Bước ra khỏi chức năng hiện tại và dừng lại ngay sau đó
  • Stop: Dừng lại gỡ lỗi.
  • Detach: Cũng dừng lại và gỡ lỗi.

Run và Stop khá đơn giản dễ hiểu. Phương phap step có thể có một chút khó hiểu hơn. Hãy xem ví dụ sau.

Class Foo() {

public function bar(Array $arr)  
{  
    $arr = self::fooBar($arr); // Breakpoint  
    return $arr;  
}
public function fooBar(Array $arr)  
{  
    return array_values($arr);  
}  
}

Giả sử bạn them một Breakpoint vào dòng đầu tiên của thanh Method trên dòng breakpoint comment ( //breakpoint ).

Step into: Việc gỡ lỗi sẽ bước vào phương pháp Foodbar và sẽ dừng lại ử dòng đầu tiên. Vì vậy, trong trường hợp này, các trình gỡ lỗi sẽ dừng lại ở dòng return array_values($arr)

Step over: sẽ gọi phương thức, nhưng không dừng lại. Nó sẽ dừng lại ở dòng tiếp theo khả dụng sau khi gọi phương thức. Vì vậy, trong trường hợp này, nó sẽ dừng lại ở Return $arr;

Step out: sẽ chạy qua toàn bộ thanh Method và trở về phát lệnh gọi. Trong trường hợp này, nó thoát ra khỏi đối tượng, và trở về điểm phát lệnh ban đầu.

Nếu bạn chỉ quyết định chạy, ứng dụng sẽ chạy them cho đến khi thời điểm nó được thực hiện xong, hoặc đến một điểm dừng kế tiếp.

Kết luận

Bài viết này trình bày cách tích hợp Xdebug với Sublime và giúp chúng ta hiểu làm thế nào để gỡ lỗi? Nếu bạn quan tâm đến việc gỡ lỗi như bài viết của Netbeans, hãy xem kỹ cả 2 bài chia sẻ. Bạn có đang sử dụng các điểm dừng hoặc các chức năng của PHP như var_dumpt để nhận các dữ liệu gỡ rối code hay là không?