it-swarm-vi.tech

Làm thế nào để bạn gỡ lỗi các plugin?

Tôi khá mới với việc tạo plugin và gặp khó khăn trong việc gỡ lỗi.

Tôi đã sử dụng rất nhiều tiếng vang và nó là cẩu thả và xấu xí.

Tôi chắc chắn có một cách tốt hơn để làm điều này, có thể là IDE với trình gỡ lỗi mà tôi có thể chạy toàn bộ trang web trong đó có plugin?

47
Sruly

Đi vào wp-config.php và thay đổi define('WP_DEBUG', false); thành define('WP_DEBUG', true);. Ngoài ra, cài đặt Andrew Nacinin Thông báo không được đăng nhập plugin.

21
John P Bloch

Nếu bạn đang gặp lỗi in, thì x-debug là một phần mở rộng PHP tuyệt vời có thêm backtraces hiện đại cho PHP.

Nếu bạn đang cố gắng tìm ra những gì đang diễn ra ở nơi không có lỗi, cách tiếp cận yêu thích của tôi là xác định một chức năng ghi lại đầu ra của nó vào một tệp. Vì vậy, tôi làm plog (biến $) và nó xuất hiện trong tệp nhật ký mà sau đó tôi có thể kiểm tra. Điều này đặc biệt hữu ích khi bạn đang cố gắng tìm hiểu những gì đã xảy ra trước khi tiêu đề () được gọi hoặc các tình huống khác mà bạn không thể in ra STDOUT.

12
tomdxw

Sử dụng xdebug + NetBeans IDE. Khi được định cấu hình đầy đủ - dễ thực hiện - bạn có thể đặt điểm dừng trong plugin và xem các biến tại điểm dừng. Tôi nghĩ đó là cách tốt nhất để gỡ lỗi các plugin hoặc bất kỳ ứng dụng php nào cho vấn đề đó.

10
Raj

Tôi gỡ lỗi theo cách cũ, error_log()ing và var_dumping. Tôi thấy đó là cách hiệu quả nhất đối với tôi, tôi có một vài hàm bao bọc để xử lý các loại dữ liệu khác nhau, vì các mảng và đối tượng error_loging có thể là một nỗi đau. Ngoài ra, sử dụng print_r() trong có thể khó đọc khi không ở trong <pre>. Tôi có tj_log() để ghi nhật ký lỗi và tj() để hiển thị đầu ra (về cơ bản hiển thị bất kỳ loại dữ liệu nào trong một mannor có thể trình bày:

function tj( $code ) {

    ?>
    <style>
        .tj_debug { Word-wrap: break-Word; white-space: pre; text-align: left; position: relative; background-color: rgba(0, 0, 0, 0.8); font-size: 11px; color: #a1a1a1; margin: 10px; padding: 10px; margin: 0 auto; width: 80%; overflow: auto; -moz-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -webkit-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -moz-border-radius: 5px; -webkit-border-radius: 5px; text-shadow: none; }
    </style>
    <br /><pre class="tj_debug">

    <?php
    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        var_dump( $code );

    else :
        print_r( $code );

    endif;

    echo '</pre><br />';

}

function tj_log( $code ) {

    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        $code = var_export( $code, true );

    else :
        $code = print_r( $code, true );

    endif;

    error_log( $code );

}

Vì vậy, sau đó tôi chỉ cần làm: tj( $current_user ); hoặc bất cứ điều gì.

6
Joe Hoyle

Tôi đã viết một lớp nhỏ để tạo một logfile, rất hữu ích khi bạn gỡ lỗi các cuộc gọi ajax.

http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php

Bạn chỉ cần làm một cái gì đó như:

Gỡ lỗi :: log ("Đây là thông báo gỡ lỗi");

Khi dòng đó được thực thi, thông báo sẽ được thêm vào tệp nhật ký và sau đó bạn có thể sử dụng lệnh tail (nếu bạn đang sử dụng một số hệ thống xử lý kiểu unix)

đuôi -f mylogfile.log

Nếu bạn có thể truyền cho hàm này một mảng hoặc một đối tượng là tốt.

lưu ý bạn cần thay đổi dòng 20 cho đường dẫn mà bạn muốn lưu tệp nhật ký của mình

5
Gnuget

Sau khi mày mò với một số IDE, tôi đã giải quyết thành cũ Notepad ++ với bảng phối màu nổi bật Syntax cực kỳ tùy chỉnh.

Tôi có một macro được thiết lập sao cho khi tôi nhấn Shift-Ctrl-X, đoạn mã sau sẽ xuất ra trong đó con trỏ của tôi là:

echo "<pre>";
var_dump($);
echo "</pre>";
exit();

Thật đơn giản, nhưng tôi thường có thể tìm ra 90% lỗi của mình với macro này cộng với WP_DEBUG được bật.

5
SethMerrick

Tôi sử dụng Aptane IDE trên Linux và UltraEdit trên Windows và cái này cũng có trình phân tích cú pháp PHP. Ngoài ra, tôi xem tất cả các gợi ý từ xDebug với hằng số WP_DEBUG được xác định trong wp-config.php.

Xem thêm đăng bài về chủ đề này và thoải mái bình luận và đưa ra phản hồi về các công cụ phát triển của bạn.

3
bueltge

Cũng không tệ lắm: Eclipse Nó gần với PhpStorm + miễn phí.

2
kaiser

Tôi khuyên bạn nên kiểm tra FirePHP . Bạn có thể gửi thông tin gỡ lỗi tới Firebird của Firefox qua các tiêu đề HTTP, điều này thường giúp cho đầu ra gỡ lỗi sạch hơn.

2
Annika Backstrom

Có hai IDE tôi có thể giới thiệu và tôi đã sử dụng rộng rãi cả: PhpED (chỉ dành cho Windows) và PhpStorm + XDEBUG (Mac, Windows và Linux.) Tôi hiện có thể sử dụng Mac cái sau.

Cả hai người ROCK! Tin vui rằng PhpStorm là $ 49 trước tháng 9 năm 2010 và chỉ $ 99 sau đó. Nếu tôi đã ở trên Windows và phải chọn lại, không chắc tôi sẽ chọn cái nào.

Thành thật mà nói tôi không thể không cảm thấy rằng bất kỳ nhà phát triển plugin nào không sử dụng một trong hai công cụ này đều bị khuyết tật nghiêm trọng, đặc biệt là nếu chúng còn khá mới để phát triển các plugin WordPress.

1
MikeSchinkel

Krumo - lớp gỡ lỗi php theo kiểu

Một điều thực sự thú vị khác là lớp php "krumo". Nó được triển khai trong ½ phút và cung cấp một cách dễ dàng để gỡ lỗi tất cả các loại biến:

  • các đối tượng,
  • mảng,
  • chuỗi/float/số nguyên/vv.

Plus nó giúp backtracing, hiển thị các lớp được tải hoặc các tệp được bao gồm và mọi thứ theo yêu cầu.

Plus MIỄN PHÍ!

Tải về

Krumo @sourceforge

1
kaiser

Đầu tiên tôi thêm define('WP_DEBUG', false); vào tệp wp-config.php (như hầu hết mọi người đã nói) vào bản cài đặt cục bộ của tôi, đây là bản sao gần đây của một trang sản xuất có liên quan (cả tệp và dữ liệu). Điều này làm cho công cụ nhanh chóng, an toàn, riêng biệt nhưng phản ánh tốt ít nhất một nơi mà plugin sẽ thực sự được sử dụng.

Tôi cũng thêm Debug Bar plugin cùng với một số tiện ích bổ sung của Debug Bar (ví dụ: Transents) - phù hợp với plugin của bạn.

Tôi cũng sử dụng tiện ích bổ sung Fireorms cho Firefox, một công cụ tuyệt vời để giúp theo dõi các vấn đề về html, css và JavaScript cũng rất tốt để xem xét sự kỳ lạ về bố cục.

Tôi viết mã bằng UltraEdit mà tôi đã sử dụng hơn 15 năm cho cả đống mã hóa (php thông qua SQL) cả ở nơi làm việc và ở nhà và vì vậy điều này hoạt động tốt với tôi nhưng có lẽ tôi không đủ để đánh giá là IDE cho nhiều người. Nó có tính năng tô sáng cú pháp, hoàn thành tự động và các tính năng bố trí mã và một loạt các công cụ phím tắt html và css có thể giúp tránh lỗi chính tả và giống nhau. Chủ yếu là điều này mang lại sự quen thuộc với tôi, đó là một khía cạnh quan trọng thường bị bỏ qua trong Rush to the new. Bộ nhớ cơ hỗ trợ khả năng lặp lại ngay cả trong mã hóa.

Và tất nhiên tôi thường có một số trang thích hợp từ codex mở trong một tab khác trên một ví dụ phù hợp.

Tất cả đều giúp theo các cách khác nhau để làm nổi bật các lỗi mã hóa, phân tích cú pháp, chức năng và bố cục và không can thiệp nhiều vào cách tôi viết mã hoặc nếu không có gì không ổn. Hầu hết có thể bị bỏ qua hoặc hủy kích hoạt một chút nếu bạn đang thử nghiệm hoặc làm việc xung quanh một cái gì đó bạn sẽ xem lại sau này.

Ồ, và không có gì sai với tiếng vang hoặc print_r được định vị tốt để kiểm tra một cái gì đó tại một phím (miễn là bạn loại bỏ chúng khi bạn hoàn thành).

0
Lunc

Kiểm tra Trình giám sát truy vấn kết hợp với Mở rộng màn hình truy vấn để gỡ lỗi toàn diện WordPress (lỗi/thông báo/cảnh báo/cảnh báo, truy vấn cơ sở dữ liệu, đường dẫn, hằng số, yêu cầu HTTP, tạm thời, biến phiên, biến var) .

Đồng thời kiểm tra Tất cả Meta PostLưu What plugin để biết thông tin cụ thể về bài đăng.

0
Caleb

PHPStorm và Xdebug là một trò chơi thay đổi cho tôi để phát triển WordPress. Rất khuyến khích bây giờ. Đặc biệt với các công cụ gỡ lỗi nội tuyến của họ.

0
Emanuel Rocha Costa

Tôi đang sử dụng phpED và xdebug nhưng đối với tôi (và dường như đối với người khác) không thể gỡ lỗi các plugin hoặc tệp của chủ đề! Trình gỡ lỗi chỉ dừng trên các điểm dừng trong các tệp "lõi" chính hoặc gốc! ai có thể giúp tôi

0
Kreker