2010-03-26 37 views
6

Ngay bây giờ, khi tôi nhận thấy sự cố trên một trang trên trang web PHP của mình, tôi phải xem xét URL, suy luận tinh thần về tệp nào chịu trách nhiệm hiển thị trang đó, sau đó điều hướng cây tệp PDT của Eclipse để mở tệp đó. Điều này gây phiền nhiễu và sử dụng sức mạnh của não có thể được áp dụng để giải quyết vấn đề này.Mở một tệp cục bộ trong Eclipse từ trang web

Tôi muốn trang web PHP của mình hiển thị trên mọi trang liên kết mà tôi có thể nhấp để tự động mở tệp chính xác trong Eclipse.

Tôi có thể dễ dàng tính toán đường dẫn tuyệt đối hoàn chỉnh cho tệp tôi cần mở (ví dụ: mở C: /xampp/htdocs/controllers/Foo/Bar.php khi truy cập/foo/bar) và tôi có thể thực hiện chắc chắn rằng Eclipse hiện đang mở với dự án được tải chính xác, nhưng tôi bị mắc kẹt về cách tôi có thể có Firefox/Chrome/IE cho Eclipse biết để mở tệp cụ thể đó.

Sửa

Tôi sẽ dọc theo cách của một dữ liệu: URI, bằng cách thêm một liên kết đến tập tin của tôi có chứa tên của tập tin, với một kiểu MIME không bình thường.

<a href="data:link/php;base64,IkM6XHhhb[snip]GhwIgo="> 
    View controller 
</a> 

Nội dung được mã hóa base64 là đường dẫn tuyệt đối vào tệp trên máy tính của tôi. Khi tôi nhấp vào liên kết, Firefox cho phép tôi liên kết loại nội dung với một ứng dụng mới, vì vậy tôi đã chọn một tệp hàng loạt mà tôi đã tự viết:

for /f "delims=" %%i in (%1) do (
    notepad.exe "%%i" 
) 

Tác phẩm này. Bây giờ, tôi muốn mở tập tin trong cửa sổ đã mở của Eclipse. Tôi phải thay thế số notepad.exe bằng gói nào ở trên?

Trả lời

3

[pathtoeclipse] \ eclipsec.exe -name Eclipse --launcher.openFile [fullpathtoyourfilehere]

Tôi không chắc chắn nếu nó hoạt động với Galileo (i am trên Helios)

Đọc thêm: https://bugs.eclipse.org/bugs/show_bug.cgi?id=4922 (đó là một câu chuyện dài, dài)

+0

Câu chuyện dài nhưng __interesting__. Cảm ơn bạn cho người đứng đầu lên. Có vẻ như phiên bản của tôi sẽ không hoạt động sớm ... –

2

Tôi đã thử những điều tương tự trong quá khứ, nhưng điều này không dễ dàng như trước. Kết quả cuối cùng là Firefox sẽ cần một phần mở rộng để thực thi một tệp cục bộ (tôi không bao giờ tìm thấy một tệp nào có thể thực hiện công việc) và IE sẽ không làm gì nữa (lưu, có thể, đối với một số VBScript độc quyền phức tạp/WScript).

Tôi thấy hai cách giải quyết để làm điều này:

  1. Một chức năng hiển thị các đường dẫn tập tin trên trang của bạn trong một cửa sổ hộp thoại lớn chất béo, làm cho nó dễ dàng để sao chép và dán vào của Windows + R "Execute" Dialog

  2. Hoặc, đăng ký Giao thức tùy chỉnh (ví dụ: eclipse://) trong hệ điều hành của bạn và kết nối giao thức đó với Eclipse. Đây là một cách khá tuyệt vời, tôi chưa thử điều này nhưng chắc chắn sẽ trong dự án tiếp theo tôi cần điều này. Mozillazine: Register protocol (xem ví dụ tập tin .reg)

+0

Symfony thực hiện điều gì đó giống như giao thức tùy chỉnh cho stacktraces. Tôi không biết chính xác những gì nó làm (tôi không sử dụng IDE họ xây dựng tính năng cho) nhưng @Victor kiểm tra Symfony. –

+0

Thú vị. Tôi đã nghĩ về việc sử dụng dữ liệu: url để tải xuống tệp có đuôi mở rộng tùy chỉnh chứa đường dẫn đến tệp cục bộ và ràng buộc tiện ích mở rộng tùy chỉnh đó thành tệp lô sẽ mở tệp trong Eclipse. Nhưng tôi dường như không thể làm cho Eclipse mở một tệp PHP trên đĩa trong cá thể hiện đang được mở. Windows + R dường như không mở tập tin trong Eclipse. –

+0

@Victor vấn đề Windows + R bạn có thể sắp xếp bằng cách kết hợp Eclipse với phần mở rộng .php (Tôi nghĩ đó là Shift + Nhấp chuột phải vào tệp PHP trong Explorer -> "Mở bằng ...." -> Chọn "Chọn ứng dụng" -> ... (từ ngữ là gần đúng, tôi chỉ có một Windows 7 tiếng Đức ở bàn tay)). –

0

Bạn nhận được con đường địa phương với FILE.

Có thể bạn thử một cái gì đó như thế này?

<?php 
'127.0.0.1' == $_SERVER["REMOTE_ADDR"] and print __FILE__; 
?> 
+0

Vui lòng đọc câu hỏi. –

+0

@Viktor: Toscho thực sự cung cấp một số lời khuyên tốt, nếu chưa hoàn thành. Tức là, thay vì mã hóa cứng vị trí của từng tập lệnh PHP trong mã nguồn của nó, thay vào đó, người ta có thể trích xuất động vị trí đó bằng cách sử dụng hằng số ma thuật \ _ \ _ FILE__. Sau đó bạn có thể xây dựng một eclipse: // extract_file_name_here URI (hoặc sử dụng một số cơ chế khác để mở tệp - nó nằm bên cạnh điểm). Điều này rõ ràng sẽ là ít công việc hơn, cũng như mạnh mẽ hơn, so với hardcoding vị trí. – user359996

+0

@ user359996: tìm tên của tệp được bao gồm là một vấn đề được giải quyết. Không chỉ vậy, nhưng nó đã được giải quyết theo cách mạnh mẽ hơn nhiều so với sử dụng __FILE__: Tôi sử dụng mã điều phối để suy ra hành động đang được thực thi và mã tự động nạp lớp để xác định tệp nằm trong đó. Vấn đề của tôi là tôi không thể mở tập tin trong nhật thực (mặc dù tôi đã mở nó trong notepad!). Việc xây dựng cơ chế để mở tệp là toàn bộ điểm của câu hỏi. Làm thế nào bạn có thể nói nó bên cạnh điểm ?? –

0

Đang tích hợp Eclipse với Xdebug một tùy chọn? Tôi đã làm điều này với TextMate để tạo ra các thông báo lỗi có thể nhấp được để đưa tôi đến đúng dòng trong tập tin bên phải. (Xem this question để biết chi tiết).

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