2015-04-16 21 views
8

Tôi đang cố gỡ lỗi ứng dụng symfony2 bằng xdebug và phpstorm.phpstorm xdebug với dự án symfony2

môi trường phát triển địa phương của tôi là Ubuntu 14.04 với apache2 và Xdebug phiên bản 2.2.7

Tôi đã này làm việc trên các dự án với các hướng dẫn sau đây khác php (không symfony2):

https://www.jetbrains.com/phpstorm/help/configuring-xdebug.html

https://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm

Khi tôi thực thi tập sách để đặt cookie và bắt đầu gỡ lỗi dự án symfony2 phpstorm này phát hiện kết nối đến (mà tôi chấp nhận), nhưng không việc khác xảy ra. Nó không dừng lại ở bất kỳ điểm dừng nào.

Tôi có plugin phpstorm của symfony2. Tôi đã cố gắng để vô hiệu hóa nó và không có gì là tốt.

answer này nhìn tốt với tôi, nhưng nó đã không lừa hoặc

Điều cuối cùng tôi đã cố gắng là để thay đổi cấu hình máy chủ debug, vô hiệu hóa các ánh xạ đường. Bằng cách này phpstorm bắt đầu gỡ lỗi, nhưng nó phá vỡ trong file app_dev.php thay vì bất kỳ breakpoint tôi đã thiết lập.

Tôi đang mắc kẹt ở đây, bất kỳ ý tưởng sẽ appreacite

CẬP NHẬT

Thông tin thêm Tôi không đề cập đến:

  • Tôi đang sử dụng firefox Tôi cố gắng để môi trường dev debug
  • Điểm ngắt là một hành động trong bộ điều khiển của riêng tôi, không phải của nhà cung cấp.

CẬP NHẬT

Dưới đây là cấu hình Xdebug tôi

[XDebug] 
zend_extension="/usr/lib/php5/20121212/xdebug.so" 
xdebug.remote_enable=1 
xdebug.remote_port="9000" 
xdebug.profiler_enable=1 
xdebug.profiler_output_dir="<AMP home\tmp>" 
+0

bạn đang cố gắng gỡ lỗi môi trường nào? prod hoặc dev? Và những tập tin nào bạn thiết lập các điểm ngắt trong? tùy chỉnh của bạn hoặc những cái được cung cấp bởi các nhà cung cấp? –

+0

Cảm ơn @TomaszMadeyski Tôi đang cố gắng gỡ lỗi môi trường dev, breakpoinst đang hoạt động trong bộ điều khiển của riêng tôi. Tôi đang cập nhật câu hỏi của mình với thông tin này. – y2josei

Trả lời

3

Đó là sự cố lập bản đồ. Sau đây là các bước mà đã làm các trick

  1. Disable lập bản đồ con đường bên dưới Cài đặt> Ngôn ngữ & Khung> PHP> Máy chủ> bỏ chọn "ánh xạ Sử dụng con đường
  2. Bắt đầu gỡ lỗi
  3. sự nổi tiếng“đường dẫn tập tin từ xa 'con đường /to/script/on/the/server.php' không được ánh xạ tới bất kỳ đường dẫn tập tin trong dự án “cuối cùng xuất hiện
  4. Sau đó, tôi có thể làm theo phần khắc phục sự cố trong official guide thiết lập ánh xạ đường

Hy vọng điều này sẽ giúp cho bất kỳ ai khác

9

Tôi không biết trình duyệt mà bạn đang sử dụng, nhưng, sử dụng Chrome, tôi sử dụng phần mở rộng helper Xdebug.

Khi tiện ích được cài đặt, hãy nhấp chuột phải vào nó> tùy chọn và chọn PHPStorm làm IDE.

Sau đó, bắt đầu nghe kết nối trên PHPStorm bằng nút gần trình gỡ lỗi.

EDIT:

Dưới đây là cấu hình của tôi XDebug:

zend_extension=/usr/lib/php5/20121212/xdebug.so 
xdebug.max_nesting_level = 1000 
xdebug.collect_params = 1 
xdebug.collect_return = 1 
xdebug.remote_enable = 1 

Bạn có chắc chắn XDebug được cài đặt đúng trên máy tính của bạn?

Khi ở PHPStorm>Run>Edit Configurations..., thêm một PHP Web hồ sơ Application gỡ lỗi và điền nó theo cách này:

  • Tên: Acme Dự án
  • server: apache2 (bạn có thể cần phải thêm tên của bạn - tên, cổng, địa chỉ, trình gỡ lỗi)
  • URL bắt đầu: /app_dev.php
  • Trình duyệt: Mặc định

Bấm OK và bạn đã hoàn tất!

+0

Cảm ơn bạn @Rybus, đó là một tốt nhất. Nhưng tôi muốn tiếp tục sử dụng firefox. Tôi cũng đang cập nhật câu hỏi của mình với thông tin trình duyệt. – y2josei

+0

FYI. Chỉ cần thử với Chrome và nó không hoạt động. Ngay cả khi kết nối đến xuất hiện, mặc dù tôi nghĩ điều này có thể là vì trước đây tôi đã làm – y2josei

+0

Tôi chỉ chỉnh sửa câu trả lời của mình để cung cấp cho bạn chi tiết mới về cấu hình của mình;) – Rybus

6

Tôi gặp vấn đề tương tự mà lại được chứng minh là vấn đề lập bản đồ, gỡ lỗi một dự án Symfony 2 từ xa bằng PHPStorm.

Nếu PHPStorm không thể ánh xạ vị trí tệp src, nó sẽ phá vỡ dòng đầu tiên của mã trong app_dev.php (nếu bạn đã đặt 'Break on first line') nhưng sau đó tiếp tục đi thẳng qua bất kỳ điểm break nào được đặt trong/src (ví dụ: Bộ điều khiển, Mô hình, v.v.) và không gắn cờ bất kỳ lỗi nào.

  1. Đến Setting -> Ngôn ngữ & Khung -> PHP -> Servers
  2. Chọn máy chủ của bạn trong phần panel ở giữa bên trái (hoặc thêm bằng '+')
  3. Kiểm tra 'ánh xạ Sử dụng đường dẫn (chọn nếu máy chủ là từ xa hoặc liên kết tượng trưng được sử dụng) '
  4. Thêm ánh xạ sao cho/app,/src và/web được ánh xạ. Đây có thể là ánh xạ riêng lẻ, nhưng sẽ tốt hơn nếu có thể thiết lập ánh xạ mức cao hơn trên/bao gồm tất cả chúng.

Khi PHPStorm có thể ánh xạ các đường dẫn này, nó dừng lại và ngắt kết nối và gỡ lỗi có ý nghĩa có thể bắt đầu.

+0

Cảm ơn bạn rất nhiều @stanhope !! Tôi đã cố gắng tìm ra nó trong khoảng 2 giờ cho đến nay! Nó hoạt động như một sự quyến rũ. Hãy cẩn thận, ánh xạ chỉ tệp 'app.php' sẽ chạy qua nó và sẽ không bao giờ đi đến bộ điều khiển thực tế nhưng sẽ kết thúc phiên gỡ lỗi. –

+1

Đối với điểm 4, bạn có thể thêm một ví dụ về ánh xạ cục bộ và từ xa không? Vì các điểm vào nằm trong/web (vì vậy yêu cầu/-> web /) bạn lập bản đồ các vị trí nào khác? Tôi đã sử dụng xdebug nhiều lần nhưng trong một dự án tôi đang sử dụng bây giờ nó không thể làm việc. Nó đạt đến app_dev.php nếu tôi cho phép ngắt ở dòng đầu tiên nhưng không bao giờ dừng lại ở điểm ngắt. Tôi đã cài đặt plugin symfony trên phpstorm – Bizmate

1

Nếu bạn thấy rằng PHPStorm liên tục yêu cầu ánh xạ thử và tạo bản đồ ở mức cao nhất của dự án như @stanhope đã đề cập, điều đó là đủ.

Ánh xạ đầu tiên của tôi được đặt không chính xác thành tệp app_dev.php trong/web có nghĩa là IDE tiếp tục yêu cầu tôi ánh xạ tới tệp trong thư mục của nhà cung cấp.

ví dụ:/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Response.php

enter image description here

1

Tôi cũng đã phải nhận xét ra tải của bộ nhớ cache lớp (symfony 2.7). Tôi đã làm nó tạm thời trong web/app_dev.php

//$kernel->loadClassCache(); 

Nếu không gỡ lỗi xảy ra trong bootstrap.php.cache hay breakpoint đã không làm việc.

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