2010-08-13 35 views
8

CẬP NHẬT - làm việc để nhận WAMP với phpDeveloper/Xdebug. Tôi vẫn muốn NetBeans - Tôi chỉ muốn so sánh, xem tôi có hiểu rõ không.NetBeans-Xdebug hoạt động, nhưng sẽ không hiển thị một số biến PHP


Tôi sử dụng NetBeans 6.9 với ĐÈNXdebug để làm việc trên mã PHP. Màn hình Biến hoạt động tốt, nhưng gần đây nó hoạt động kém hơn. Ví dụ bên dưới, $authorized sẽ hiển thị trong ngăn biến bên dưới mã và nên hiển thị giá trị của nó. Nhưng nó không hiển thị, cũng không phải giá trị của nó, và mousing qua mã không giúp đỡ. (Các đối tượng $this được hiển thị và nó đi và về, nhưng $authorized không có trong đó, và nó sẽ không có ý nghĩa nếu nó được.)

Hành vi này là nhất quán. Có lẽ đó là một chức năng của sự phức tạp của mã? Hoặc sử dụng đối tượng tràn lan? nó dường như đã bắt đầu khi tôi lấy CodeIgniter.

Tất nhiên các biến được ẩn khi tôi cần chúng nhất ... hoặc vì vậy có vẻ như người nghèo. Tôi đang thiếu gì?

NetBeans debugger http://themanthursday.com/wiki/Debugger_Display.png

Có ví dụ tốt hơn bên dưới. Khi tôi duyệt qua mã này, Biến chỉ hiển thị Superglobals$ số này, giống như trong hình. Tôi không thể thấy bất kỳ giá trị nào, thậm chí chỉ là các chuỗi.

(suy nghĩ Nagging: Tôi đặt cược $ CI SuperObject có cái gì để làm với tất cả điều này ...)

class Product_documents { 
    function getProductImage_all($id) 
//Return an array of all documents for this product 
{ 
    $imgPath = $this->_getProductImage_folder($id); 
    $arrayPossibleFilenames = $this->_getProductImage_possible_files($id); 
    foreach ($arrayPossibleFilenames as $imgFile) { 
    $imgPathFull = $imgPath.$imgFile; 

    $file_exists = get_file_info($imgPathFull); 
    if ($file_exists) 
    { 
    $arrayFilesPresent[] = $imgPathFull; 
    } 
    } 
    return $arrayFilesPresent;   
} 
} 

Trả lời

8

Nhấp chuột phải vào ngăn biến. Chọn "Bộ lọc". Bạn sẽ tìm thấy bí mật.

+0

Cảm ơn Kamal. Trớ trêu thay, tôi đã xóa NetBeans ngày hôm nay, đã chuyển về phpDesigner Pro ... và đã từ bỏ CodeIgniter một thời gian trước đây. Tôi sẽ tiếp tục xem bài viết này với lãi suất, tuy nhiên. BTW, tôi kết luận rằng việc sử dụng mô hình Singleton của CI là chìa khóa; Tôi tự hỏi nếu "bí mật" bạn cung cấp sẽ xác nhận điều đó. – Smandoli

+0

Cảm ơn bạn! Tôi nghĩ rằng đó là một vấn đề xdebug, điều này sẽ tiết kiệm rất nhiều thời gian cho tôi – Benoit

+0

Bạn không thể chỉ cần nói những gì "bí mật" này bao gồm thay thế? Tôi muốn biết mà không cần phải cài đặt NetBeans trên iPad của mình. – conny

-1

Hãy thử khởi $ ủy quyền bool sai.

Tôi đã thấy Netbeans không hiển thị cho tôi biến được khởi tạo với giá trị trả về từ hàm không có loại tài liệu, nhưng nó bị nhấn hoặc bỏ lỡ đủ để không tạo mẫu.

+0

Tôi đã thêm thông tin này ngay phía trên điểm ngắt: $ authorized = FALSE; Không thay đổi. Đó có phải ý của bạn? Ngoài ra, sau khi đăng bài, tôi nhận ra rằng tôi có thể tạo ra một ví dụ thú vị hơn về các biến chưa được phơi sáng ... Tôi có thể làm việc đó một chút sau đó. – Smandoli

+0

-1 vì đề xuất không hoạt động, vì vậy tiền thưởng nên đi đến nơi khác có thể. Nhưng cảm ơn Fanis vì đề nghị này. – Smandoli

+0

Không phải lo lắng. Như tôi đã nói, nó bị đánh hay bỏ lỡ cho tôi. Một cái gì đó khác tôi đã nhận thấy là nó đôi khi sẽ không nhận các biến trong phạm vi toàn cầu nếu kịch bản được gỡ lỗi không có chức năng. – Fanis

2

Tôi đã xem các nội dung như thế này trước đây trong Netbeans. Tôi hy vọng nó chỉ là một lỗi liên quan đến sự tương tác của Netbean với XDebug. Một giải pháp có thể xảy ra mà tôi đã thấy trước đây là thêm "Xem" cho biến mà bạn không thể thấy. Ví dụ của bạn, bạn có thể đi đến tab "Đồng hồ" và nhập $authorized. Nó sẽ hiển thị khi nó đã được thiết lập.

+0

Cảm ơn, ý tưởng hay. Sử dụng một chiếc đồng hồ đã không xảy ra với tôi, chỉ vì trong VBA họ dường như đặc biệt không hiệu quả. Tôi phải 'suy nghĩ bên ngoài chiếc hộp' - hay nói nó đúng hơn, tôi phải suy nghĩ bên trong một chiếc hộp khác. – Smandoli

+0

Vâng, thật không may, hộp đặc biệt này có thể không phải lúc nào cũng là môi trường tốt nhất để suy nghĩ: P –

+0

Xin lỗi để nói, tôi bận và chưa thử điều này - nhưng tôi hy vọng sẽ thử nó tối nay. Đối với thử nghiệm WAMP, tôi vẫn cần kết thúc với một xDebug đang hoạt động. (Đôi khi tôi chỉ muốn tôi có thể làm công việc của mình trong thời gian thực. Ha ha.) – Smandoli

6

Came trên trang web này có liên kết rất tốt đẹp để trang Xdebug rằng đi một thông qua quá trình nâng cấp Xdebug bằng cách biên dịch một phiên bản 'mới nhất thêm':

http://icephoenix.us/php/xdebug-doesnt-show-local-variables-in-komodo-netbeans-or-eclipse-pdt/

biến bên trong của đối tượng/các lớp học sẽ xuất hiện trở lại! Yeah!

Không có đồng hồ, không 'điều này có thể làm cho Xdebug freak out' tin nhắn - chỉ cần biến ol 'bây giờ hoàn toàn phơi bày sự thất bại của giải pháp của tôi ... (haha).

David

+0

Xdebug 2.1.0RC hoạt động như nét duyên dáng – r15habh

0

Tôi nghĩ rằng nó đi xuống đến mẫu đơn được thực hiện trong CodeIgniter là "Siêu đối tượng". Tôi chưa bao giờ khởi động lại dự án này để kiểm tra ý tưởng của Kamal. Ngay sau khi anh ấy đăng tải, tôi kết luận singleton là lý do (tôi không cố gắng đoán liệu Kamal có giải pháp hay không). Do đó, câu trả lời của tôi cho this post.

0

(2015) Trong php.ini trong [xdebug], đặt xdebug.show_local_vars = 1 nếu bạn muốn tất cả các biến cục bộ trong chế độ gỡ lỗi.

+0

Nó không làm những gì bạn nghĩ. Từ https://xdebug.org/docs/all_settings :: Khi cài đặt này được đặt thành mục nào đó! = 0 Các bãi chứa được tạo của Xdebug trong các tình huống lỗi cũng sẽ hiển thị tất cả các biến trong phạm vi tối đa. Cẩn thận rằng điều này có thể tạo ra rất nhiều thông tin, và do đó được tắt theo mặc định. – Dakusan

Các vấn đề liên quan