Gỡ lỗi là quá trình tìm lỗi và lỗi trong mã đã cho và sửa chúng. Trình chỉnh sửa tuyệt vời bao gồm nhiều plugin khác nhau có tính năng sửa lỗi, giúp tìm lỗi dễ dàng
Trong chương này, bạn sẽ học cách gỡ lỗi một ứng dụng web PHP. Sublime sử dụng plugin gỡ lỗi Sublime TestX cho mục đích này. Các tính năng của plugin này là -
Nó là một tiện ích mở rộng được sử dụng để gỡ lỗi các tệp và tập lệnh PHP
Cung cấp một danh sách các khả năng gỡ lỗi và lập hồ sơ
Duy trì dấu vết ngăn xếp và các tham số thời gian thực như hiển thị và chức năng
Cài đặt Plugin tuyệt vời
Để cài đặt plugin Sublime Text Xdebug, bạn sẽ phải thực hiện các bước sau –
Bước 1 - Cài đặt cài đặt bảng điều khiển gói bằng phím tắt Ctrl+Shift+P hoặc Cmd+shift+P
Bước 2 - Sau khi cài đặt thành công ứng dụng khách Xdebug, tệp cấu hình sẽ được lưu trong thư mục Gói đã cài đặt. Tệp cấu hình là tệp JSON bao gồm các tham số để gỡ lỗi ứng dụng web PHP
Bước 3 - Bắt đầu phiên gỡ lỗi của tệp PHP bằng phím tắt Ctrl+F9. Bạn cũng có thể làm điều đó bằng tùy chọn Bắt đầu gỡ lỗi bằng bảng lệnh
Bước 4 - Các cửa sổ phân chia của XdebugClient sẽ hiển thị đầu ra của tệp PHP. Nó giữ một quá trình gỡ lỗi từng dòng mã. Tham khảo ảnh chụp màn hình sau để hiểu rõ hơn -
Gần đây, rất nhiều người trong cộng đồng PHP đã kiểm tra PHPStorm, bao gồm cả tôi và hầu hết các nhà phát triển mà tôi làm việc cùng. Chúng tôi yêu thích mã thông minh mà chúng tôi nhận được từ PHPStorm, nhưng vẫn bỏ lỡ tốc độ, khả năng khởi động nhanh và sự tiện lợi của Sublime Text
Trước khi tôi mù quáng cho rằng PHPStorm là cách duy nhất để đi, tôi muốn xem. Tôi có thể mang những thứ mà một IDE tập trung vào PHP cung cấp cho các nhà phát triển PHP trở lại Sublime Text và tận dụng tối đa cả hai thế giới không?
Hãy bắt đầu với một danh sách nhanh các cách mà PHPStorm thực sự tạo nên sự khác biệt đối với tôi. Xin lưu ý. Có hàng triệu tính năng khác mà PHPStorm cung cấp một cách độc đáo, nhưng thành thật mà nói, đó là những tiện ích nhỏ bé mà tôi thấy mang lại hiệu quả cao nhất
Cũng lưu ý. Đây là Sublime Text 3 mà chúng ta đang nói đến
Những gì tôi phải có từ PHPStorm
Nếu không có hầu hết các tính năng tập trung vào PHP tuyệt vời này, thật khó để đề xuất sử dụng thứ gì khác ngoài PHPStorm, ngay cả khi nó chậm hơn, đắt hơn và sử dụng nhiều bộ nhớ hơn. Vì thế. Chúng tôi có thể sao chép chúng trong Sublime Text không?
- Auto-
use
[nhập] các lớp - Lớp FQCN hoàn thành nội tuyến
- Dễ dàng điều hướng đến định nghĩa của biểu tượng
- dễ dàng xây dựng tiêm
- Làm nổi bật nhập khẩu không sử dụng
- máng xối Git
- Đánh hơi mã/xác thực PSR-2
- Hoàn thành mã. PHP
- Hoàn thành mã. mã số dự án
kiểm soát gói
Trước khi chúng ta nói về bất cứ điều gì khác, ít nhất bạn cần biết cách cài đặt các gói trong Sublime Text
Nếu bạn chưa cài đặt, hãy cài đặt Kiểm soát gói ngay bây giờ
Trừ khi có quy định khác, mọi gói sau gói này phải được cài đặt bằng Kiểm soát gói
Trình đồng hành tuyệt vời của PHP
Gói tập trung nhiều nhất vào PHP cho Sublime Text được gọi là Sublime PHP Companion
Giống như hầu hết các gói, nó chứa một loạt hành động mà bạn có thể thực hiện. ~~Chúng được ánh xạ tới các phím nhất định theo mặc định, nhưng bạn luôn có thể ánh xạ lại chúng. ~~ cập nhật. không còn sơ đồ bàn phím theo mặc định nữa. Tìm hiểu thêm về cách thiết lập sơ đồ bàn phím PHPCompanion tại đây
- find_use [
F10
] - Khi con trỏ của bạn ở trên tên lớp, lệnh này giúp bạn dễ dànguse
[nhập] lớp đó. - expand_fqcn [
F9
] - Giống nhưfind_use
nhưng thay vì mở rộng lớp trong khối nhập, nó mở rộng nội tuyến FQCN của nó. - import_namespace [
F8
] - Thêm không gian tên cho tệp hiện tại dựa trên đường dẫn của tệp - goto_definition_scope [
shift+F12
] - Giống như goto_definition gốc của Sublime Text [được mô tả bên dưới], nhưng được sắp xếp theo cách nhận biết PHP
Gói này không hoàn hảo và rõ ràng nó không sáng bằng PHPStorm khi phát hiện các không gian tên và phân tích cú pháp một số trường hợp cạnh kỳ lạ. Nhưng đối với công việc hàng ngày, đây là một sự thúc đẩy rất lớn trong lĩnh vực kiến thức mã PHP
Tất cảTự động hoàn thành
Đáng buồn thay, Sublime PHP Companion không đánh hơi các lớp của bạn và cung cấp cho bạn tính năng tự động hoàn thành, nhưng SublimeAllAutocomplete lại đăng ký tên của tất cả các ký hiệu [hàm, lớp, v.v. ] trong bất kỳ tệp nào bạn đã mở trong các tab khác và thêm chúng vào thanh ghi tự động hoàn thành
Điều này không hoàn toàn giống với tính năng tự động hoàn thành đầy đủ nhạy cảm với mã vùng người dùng, nhưng nó giúp ích rất nhiều
Cmd-click để định nghĩa chức năng
Sublime PHP Companion giúp dễ dàng nhấp chuột phải vào các chức năng và đi đến định nghĩa của chúng, nhưng lối tắt này mang lại CMD-click-to-definition của PHPStorm. FYI, trong Sublime Text CMD [hoặc phím ctrl của windows hoặc bất cứ thứ gì trên các hệ thống khác] được gọi là "Super"
Đầu tiên, tạo một tệp sơ đồ chuột của người dùng. Nếu chưa có thì vào đây
Linux Tạo Default [Linux].sublime-mousemap
trong ~/.config/sublime-text-3/Packages/User
Mac Tạo use
0 trong use
1
Windows Tạo use
2 trong use
3
Tiếp theo, đặt cái này vào tệp
[
{
"button": "button1",
"count": 1,
"modifiers": ["ctrl"],
"press_command": "drag_select",
"command": "goto_definition"
}
]
Bạn vừa dạy Sublime Text cái này. "khi tôi giữ ctrl và nhấp vào nút một, hãy kích hoạt lệnh use
4. " Xong. [nguồn chính thức]
Ghi chú. Ban đầu tôi muốn đề xuất sử dụng công cụ sửa đổi
use
5, vì vậy nó sẽ giống như PHPStorm;
Đánh hơi mã và PHP_CodeSniffer
PHPCS tuyệt vời
Có một gói tên là Sublime PHPCS mang đến PHP_CodeSniffer, trình nói dối của PHP, PHP Mess Detector và Scheck [?] để xử lý mã của bạn
Bạn có thể điều chỉnh tất cả các loại cài đặt, nhưng về cơ bản, bạn sẽ chạy nó mỗi khi bạn lưu tệp của mình [tốt, nhưng có thể gây phiền nhiễu] hoặc mỗi khi bạn kích hoạt nó từ bảng lệnh [nhấn use
7 và sau đó gõ cho đến khi . Sniff this file"] hoặc phím tắt [use
8 theo mặc định]
Bạn sẽ nhận được những điểm nổi bật và một danh sách ở đầu tất cả những nơi mà mã của bạn không thỏa mãn kẻ nói dối
Lưu ý rằng gói này và bất kỳ gói nào khác dựa vào dò mã và linting sẽ yêu cầu cài đặt các ứng dụng dòng lệnh, vì vậy hãy nhớ truy cập trang web của họ và đọc hướng dẫn của họ
Plugin PHP_CodeSniffer Sublime Text 2/3
Thật thú vị, có một plugin tương đối ít được chú ý làm điều tương tự [nhưng chỉ dành cho PHPCS] được viết bởi cùng một nhóm đã viết PHP CodeSniffer, vì vậy nó cũng đáng để kiểm tra; . ]
Tuy nhiên, tôi chưa bao giờ sử dụng cái này, vì vậy hãy thận trọng
Mike Francis PHP CS Fixer Build Script
Mike Francis cũng đã chia sẻ một tập lệnh xây dựng tùy chỉnh mà anh ấy đã viết để chạy PHP-CS-Fixer trên mã của bạn bất cứ khi nào bạn kích hoạt nó. Điều đó có nghĩa là nó thực sự sẽ thực thi PSR-2 [hoặc bất kỳ tiêu chuẩn PHP-CS-Fixer nào khác mà bạn chuyển nó] trên mã của bạn cho bạn
Taylor Otwell thực sự đã chia sẻ kịch bản này với tôi, nhưng anh ấy đã viết nó không đẹp như Mike đã làm. . ] Tuy nhiên, anh ấy đã đề cập rằng bạn có thể muốn đặt tùy chọn này. use
9 Thao tác này sẽ ngăn không cho bảng lệnh hiển thị kết quả của bạn mọi lúc, điều này có thể rất nhanh gây khó chịu
SublimeLinter
SublimeLinter PHP [và phụ thuộc bắt buộc của nó, SublimeLinter] dựa vào trình nói dối tích hợp sẵn của PHP [giống như plugin Sublime PHPCS ở trên]. Đây là một phiên bản đơn giản hơn chỉ chạy kẻ nói dối, không có gì khác
DocBlockr
Nếu bạn là kiểu người sử dụng PHPStorm, thì có nhiều khả năng bạn là kiểu người viết các khối Tài liệu. [Chỉ nói thôi]
DocBlockr giúp việc tạo các khối tài liệu mới trở nên đơn giản, nhưng quan trọng hơn, nếu bạn tạo một khối tài liệu ngay phía trên một hàm đã xác định, nó sẽ trích xuất thông tin tham số của hàm đó và điền trước vào khối tài liệu của bạn. bùng nổ
người trợ giúp Git
Văn bản tuyệt vời Git
Bạn có phải là kiểu người ghét chuyển từ IDE sang ứng dụng khách đầu cuối/Git của mình không?
GitMáng xối
GitGutter hiển thị cho bạn thông tin khác về trạng thái của từng dòng--nó đã được sửa đổi, chèn hay xóa chưa?
Điều này gần như không mạnh bằng Git máng xối của PHPStorm, nhưng đó là một bước đi đúng hướng
Đánh dấu cú pháp
- PHP-Twig cho Cành cây
- Laravel Blade Highlighter cho Laravel Blade
- Đánh dấu khung - hiển thị dấu ngoặc bắt đầu và kết thúc trong rãnh cho khối mà con trỏ của bạn hiện đang ở trong đó
Xây dựng đơn vị PHP
Có một plugin tuyệt vời giúp chạy PHPUnit cực kỳ dễ dàng từ bảng lệnh hoặc phím tắt. đơn giảnPHPUnit
Đúng như tên gọi của nó, bạn cài đặt gói và bạn đã thiết lập và chạy
MãIntel
CodeIntel được cho là cung cấp thông tin tình báo Sublime Text về ngôn ngữ bạn đang làm việc. Nó sẽ cung cấp tính năng tự động hoàn thành, chuyển đến định nghĩa dễ dàng và thông tin về chức năng bạn hiện đang làm việc
Tại sao tôi cứ nói "nên" và "phải làm"? . Có bạn?
Các plugin khác
Khi tôi hỏi trên Twitter, rất nhiều người đã chia sẻ plugin. Vì tôi không sử dụng những thứ này nên tôi chỉ có thể chia sẻ một cách mơ hồ, nhưng tôi chắc chắn rằng tất cả chúng đều đáng để kiểm tra nhanh
- ApplySyntax mở rộng khả năng của Sublime Text để xác định cú pháp nào sẽ áp dụng cho tệp hiện tại của bạn
- DashDoc giúp người dùng Mac có ứng dụng Dash dễ dàng tra cứu bất kỳ từ nào trong Dash
- Hiển thị tên hàm thêm thông tin vào thanh trạng thái về tệp, lớp và tên hàm/phương thức hiện tại
- phpfmt trông giống như một giải pháp thay thế cho PHP CS Fixer
- CodeComplice là mã intel, nhưng mới hơn—có lẽ đây là giải pháp?
- Máy khách Xdebug
- EditorConfig là một tiêu chuẩn để chia sẻ các mẫu cấu hình trình chỉnh sửa cụ thể cho từng dự án. Plugin này cho phép bạn nhập và sử dụng chúng trong Sublime Text. [tìm hiểu thêm về định dạng EditorConfig]
- SublimePrettyJSON là tuyệt vời để nhanh chóng định dạng JSON
- CaseConversion giúp việc chuyển đổi giữa solid_case và camelCase và PascalCase trở nên đơn giản, đồng thời tách và nối các từ cũng như mọi thứ khác
CodeBug cho Xdebug
Bạn có bỏ lỡ tích hợp Xdebug trong PHPStorm không?
Một số mẹo chung về văn bản tuyệt vời
Bài đăng này không phải là phần giới thiệu về tất cả mọi thứ trong Sublime Text, nhưng tôi muốn đề cập đến một vài phần quan trọng ở đây
Tìm tệp bằng "Goto Anything" [cmd-p]
Nếu bạn nhấn F10
0, bạn sẽ nhận được bảng màu F10
1 cực kỳ mạnh mẽ, cho phép bạn dễ dàng tìm thấy các tệp, nhưng bạn có thể đi xa hơn một chút. nếu bạn tìm thấy tệp của mình [e. g. bằng cách gõ F10
2], bạn cũng có thể kích hoạt mở nó tại một dòng nhất định [F10
3] hoặc tại một ký hiệu nhất định [F10
4]
Tìm lệnh bằng Bảng lệnh [cmd-shift-p]
Trong khi bảng F10
1 cho phép bạn tìm kiếm các tệp trong dự án của mình, thì Bảng lệnh cho phép bạn tìm kiếm các lệnh
Điều này có nghĩa là bất kỳ lệnh nào mà Sublime Text cho phép bạn thực hiện [chạy bản dựng, đổi tên tệp, v.v. ], mà cả những tệp từ các gói của bên thứ ba [Sniff tệp này, v.v. ] có thể chạy hoàn toàn từ bàn phím, ngay cả khi bạn không biết [hoặc không có] phím tắt
Tìm ký hiệu bằng "Ký hiệu Goto" [cmd-r]
Nếu bạn nhấn F10
6, bạn sẽ nhận được bảng màu F10
7, sẽ điều hướng đến bất kỳ biểu tượng nào trong tệp hiện tại của bạn
Ký hiệu là những thứ như lớp, phương thức hoặc hàm
Nhiều con trỏ
Nhiều trình soạn thảo đã thêm nhiều con trỏ, nhưng Sublime Text vẫn làm điều đó tốt nhất
Nếu bạn chưa bao giờ thử nó, hãy tìm hiểu về nó ở đâu đó, nhưng đây là phần giới thiệu nhanh
Mở một tập tin. Giữ "siêu" [cmd trên Mac] và nhấp vào một số vị trí xung quanh tệp. Bây giờ hãy bắt đầu gõ. BÙM
Một thủ thuật tuyệt vời khác. Đặt con trỏ của bạn vào một từ phổ biến [ví dụ: tên biến]. Bây giờ nhấn F10
8 một vài lần. Bây giờ bạn đã chọn một số phiên bản của biến đó và bạn có thể thao tác tất cả chúng cùng một lúc
Hoặc, chọn năm dòng và nhấn F10
9. Kiểm tra nó
Còn rất nhiều điều bạn có thể làm với điều này nếu bạn sáng tạo
kết hợp mờ
Bạn có biết rằng khi bạn đang sử dụng bất kỳ bảng lệnh nào trong Sublime Text, bạn không cần phải hoàn thành một từ nào không?
Trong hầu hết các trình soạn thảo [như PHPStorm], nếu bạn muốn tìm một tệp có tên use
0, bạn có thể nhập use
0 hoặc use
2, nhưng trong Sublime Text, tất cả những gì bạn cần là một cái gì đó như use
3. Chỉ cần nhập đủ thứ tự các chữ cái bạn đang nhập chỉ có thể tồn tại trong chuỗi bạn đang tìm kiếm và bạn sẽ ổn thôi. Bỏ qua một chữ cái ở đây, bỏ qua một dấu gạch chéo ở đó - không vấn đề gì
linh tinh
Còn rất nhiều điều để tìm hiểu về cách hoạt động của Sublime Text và rất nhiều công cụ cũng như khóa học dành cho bạn. Đây không phải là một nguồn tài nguyên toàn diện cho mọi thứ tuyệt vời về Sublime;
Nếu bạn muốn tìm hiểu thêm về Sublime Text, có hai tài nguyên tuyệt vời mà tôi nên xem xét
- Sublime Text Power User là một bộ sách và video của bạn tôi, Wes Bos dạy cho bạn mọi thứ bạn cần để sử dụng Sublime Text như một ông chủ. Đó là cách dễ dàng nhất để người mới sử dụng Sublime Text bắt đầu và chạy nhanh chóng. Ngoài ra, tôi đã liên hệ với Wes và anh ấy đã đưa cho tôi một phiếu giảm giá
use
4 để giúp bạn giảm $10 [tuyên bố từ chối trách nhiệm. nó cũng giúp tôi. ] - ShortcutFoo là một tài nguyên tuyệt vời để học các phím tắt cho mọi môi trường. Họ có các chương trình cho mọi thứ, từ Vim đến Sublime Text, Photoshop đến Excel
Lời phán quyết
Hãy xem danh sách của chúng tôi và xem những gì chúng tôi đã xử lý
- ~~Hoàn thành nội tuyến lớp FQCN~~ [Sublime PHP Companion]
- ~~Dễ dàng điều hướng đến định nghĩa của biểu tượng~~ [Sublime PHP Companion]
- ~~Điều hướng đến định nghĩa của biểu tượng~~ [Sublime PHP Companion]
- Dễ dàng tiêm hàm tạo [Macro?]
- ~~Đánh dấu các mục nhập không sử dụng~~ [SublimeLinter]
- ~~Máng xối Git~~ [GitGutter]
- ~~Đánh hơi mã/xác thực PSR-2~~ [SublimePHPCS, v.v. ]
- Hoàn thành mã. PHP
- Hoàn thành mã. mã số dự án
Không tệ, thực sự. Hãy nói về những gì còn thiếu
- Tiêm xây dựng [e. g. đơn giản hóa việc đưa một thuộc tính vào hàm tạo làm thuộc tính, đặt nó trong hàm tạo và xác định thuộc tính lớp] là điều tôi nghĩ có thể được giải quyết bằng một macro thông minh—nhưng tôi chưa thấy macro thông minh đó
- CodeIntel có ý định cung cấp tính năng hoàn thành mã PHP, vì vậy vấn đề chỉ là làm cho nó hoạt động. Nhưng tôi không nghĩ [sửa tôi nếu tôi sai] bất cứ điều gì trong thế giới Sublime Text tuyên bố sẽ đánh hơi các định nghĩa về mã của bạn và sau đó cung cấp đề xuất tham số và tự động hoàn thành. Vì vậy, đó là một thiếu sót lớn cho chắc chắn. lưu ý, tuy nhiên. AllAutocomplete chắc chắn giảm bớt nỗi đau này một chút
Phán quyết của tôi là gì? . Tôi nghĩ rằng nó sẽ phụ thuộc một số vào dự án, một số vào nhà phát triển và một số vào việc tôi có thể tìm ra giải pháp cho một số vấn đề ở trên hay không. Nhưng tôi chắc chắn đang dựa vào Sublime Text nhiều hơn so với sáu tháng trước—nó quá nhanh
phần tái bút
Có mẹo Sublime Text nào dành cho nhà phát triển PHP mà tôi đã bỏ lỡ không?
Có bất kỳ tính năng nào của PHPStorm mà tôi không đề cập ở đây mà bạn nghĩ là quan trọng đối với bộ công cụ của mọi nhà phát triển không?
Cũng thế. Tôi đã không thể viết điều này nếu không có Adam Wathan, Taylor Otwell, Jeffrey Way và rất nhiều bạn bè khác trên Twitter