Lựa chọn PHPStorm để lập trình Joomla

Thực ra, ở đây tôi không định so sánh các IDE với nhau để rồi chọn ra cái phù hợp nhất. Kinh nghiệm của tôi cũng không đủ để làm điều đó. Thay vào đó, tôi muốn chia sẻ rằng PHPStorm là một IDE tuyệt vời để lập trình Joomla.

Hỗ trợ Joomla

PHPStorm có sẵn plugin hỗ trợ Joomla, nó nhận biết các lớp của Joomla và từ đó cung cấp tính năng auto-complete rất tốt. Nó cũng cung cấp thông tin về các lớp, các phương thức đã/đang bị loại bỏ (deprecate); nếu trong đoạn mã có những lớp, những phương thức như thế thì sẽ bị gạch ngang. Nhân nói về deprecation thì tôi muốn lưu ý rằng người lập trình không cần phải quá lo ngại khi sử dụng các lớp, các phương thức như thế, bởi ngay trong mã của Joomla cũng có sử dụng chúng.

Debug

Trong thời gian tìm hiểu về lập trình Joomla vừa qua, tôi đã phải sử dụng rất nhiều đến kỹ thuật đánh dấu phương thức [echo __METHOD__;] và [var_dump()] để thực hiện debug nhằm tìm hiểu về logic hoạt động của các MVC class của Joomla.
Nhưng rồi đến một lúc, do Joomla sử dụng mô hình Post/Redirect/Get nên việc debug các trang ứng với POST Request là rất khó khăn (bởi nó không hiển thị kết quả về phía browser mà thực hiện redirect sang trang GET), thế là tôi không thể đạt được mục đích của mình. Và rồi tôi ước mình có thể debug PHP web app của mình như là debug một chương trình C/C++ hay Java...
Tôi tin là ước mơ đó không hề xa vời. Sau một lúc tìm hiểu, tôi đã thành công trong việc cài đặt Xdebug cho PHP, cài đặt Xdebug Helper extension cho Chrome, cấu hình Xdebug trên PHPStorm và thực hiện debug Joomla như là debug một chương trình C/C++...
Trên trang của JetBrains có bài hướng dẫn cấu hình debugger ở đây: https://www.jetbrains.com/help/phpstorm/configuring-xdebug.html. Tuy nhiên, có thể tóm lược lại các bước (trên Windows) như sau:

Cập nhật ngày 15/05/2021: Nội dung hướng dẫn dưới đây chỉ đúng cho Xdebug 2.x.x (tên gọi các tham số cấu hình đã được thay đổi kể từ Xdebug 3.0), do vậy, thay vì cài đặt phiên bản Xdebug từ trình wizard như được mô tả dưới đây, hãy vào trang Xdebug: Historical Releases để tải về một phiên bản 2.x.x để sử dụng (và lưu ý chỉ tải về bản có hậu tố "TS"). Sau khi cài đặt xong, chạy lệnh "php -version" để chắc chắn là xdebug đã được nạp thành công.
  1. Cài đặt phiên bản Xdebug thích hợp với bản PHP theo hướng dẫn ở đây: https://xdebug.org/wizard. Thông tin cần thêm vào file cấu hình 'php.ini' gồm một section như sau (xem video https://www.youtube.com/watch?v=rqDDJfG6ip4):
    [xdebug]
    zend_extension = <filename>.dll
    xdebug.remote_enable=1
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    xdebug.idekey=PHPSTORM

    Khởi động lại Apache.
  2. Cài đặt Xdebug Helper extension cho browser theo hướng dẫn ở đây: https://www.jetbrains.com/help/phpstorm/browser-debugging-extensions.html. Cài đặt xong thì nhấn chuột phải vào biểu tượng của nó rồi chọn Options để xác định IDE là PHPStorm.
    .
  3. Ở phía PHPStorm, chỉ cần vào File\Settings... để xác định PHP CLI Interpreter

    Thông tin cấu hình debug thì để mặc định:
Để tiến hành debug một ứng dụng, thực hiện
  1. Bật chế độ debugging ở PHPStorm bằng cách nhấn vào "Start listening for PHP Debug connection" (trong menu Run hoặc trên thanh công cụ)
  2. Đặt các breakpoint cần thiết
  3. Ở phía trình duyệt, nhấn chuột vào biểu tượng của Xdebug Helper và chọn "Debug" rồi thực hiện duyệt web (lưu ý là nút XDebug Helper có tác dụng độc lập giữa các tabs của trình duyệt).
  4. Xong! Trở lại với PHPStorm thì sẽ thấy nó đã chộp được phiên debug và ứng dụng đang dừng ở breakpoint đầu tiên mà nó gặp.
Hi vọng rằng những chia sẻ trên đây sẽ hữu ích cho những ai bắt đầu tìm hiểu lập trình Joomla như tôi. Tất nhiên, dễ thấy rằng với những đặc điểm kể trên thì PHPStorm là rất tiện dụng để lập trình PHP nói chung, chứ không riêng gì Joomla.

Comments

Popular posts from this blog

Cài đặt Xdebug cho VSCode trên Windows

Lập trình tạo một MVC Component đơn giản cho Joomla. Phần 4. Chỉnh sửa một phần tử

Lập trình tạo một MVC Component đơn giản cho Joomla. Phần 1. Khởi tạo component