Sublime Text 3 perfect PHP development set-up
This is follow-up article to Sublime Text 2 perfect PHP development set-up. I decided to write this updated version, because from some time now Sublime Text 3 is out there. Maybe it is still officially beta, but works pretty stable and I’m using it for few months now.
This list is almost the same as in previous article – most of plugins I used with ST2 have been updated in order to work with ST3 and I stopped using few of them, so they are out. I’m kinda lazy, so some of descriptions are copy-pasted from previous article 😉
Anyway, here is the list:
- Package Control (https://sublime.wbond.net)
Thanks to this little piece of software all other plugins are easily installed.
- SublimeCodeIntel (https://github.com/SublimeCodeIntel/SublimeCodeIntel)
This is package I use all the time. Its job is to provide hints related to function, object, variable etc. names. It also hints what methods and parameters are available in objects/classes. It’s based on Komodo CodeIntel and sometimes it has some problems working at all. But most of the time it rocks 🙂
- SublimeLinter (https://sublime.wbond.net/packages/SublimeLinter)
This package does full-time job for me – it constantly watches what I write and instantly lets me know if something is not OK, for example I forget semi-colon or brackets.
(update) From version 3 and up, SublimeLInter has become modular. This means, that you have to install main package first, and then plugin/module for every language you need support for. Each plugin has it’s own set of requirements, so please make sure you read them thoroughly. For PHP + JavaScript development I’m using:
- SideBarEnhancements (https://sublime.wbond.net/packages/SideBarEnhancements)
Provides great new options when right-clicking on sidebar elements (files/folders). Very convenient.
- VCS Gutter (https://sublime.wbond.net/packages/VCS%20Gutter)
Lately I don’t imagine working without this one. Every day I use Git and Mercurial and this plugins gives me real-time information about what was changed (or added/removed) in current file using symbols in left-hand edit window gutter.
- SFTP, paid (http://wbond.net/sublime_packages/sftp)
Great package enabling very comfortable use of SFTP, FTP and FTPS. It supports remote folders browsing, editing and synchronization between local and remote files. Also regular upload, download, save or file open.
- Tortoise (on Windows only) (http://wbond.net/sublime_packages/tortoise)
I use it as a complementary package to SideBarGit if I’m working in Windows environment. It doesn’t have so many features but those what it provide are very helpfull and intuitive.If you like Tortoise Git but you are working on Linux you might want to check out RabbitVCS. It isn’t integrated with ST2, but it provides comfortable right-mouse-click Git GUI.
- sublime-github (https://github.com/bgreenlee/sublime-github)
Every developer should use code snippets of some kind. I use Gist provided by GitHub and this package enables me to use them instantly (save/paste).
- Tag (https://github.com/SublimeText/Tag)
It is fine plugin, but now ST3 supports tag matching, so I don’t need it any more.
- PhpDoc (https://sublime.wbond.net/packages/PhpDoc)
Great plugin aiding writing documentation docblocks for PHPDocumentor.
- Phpcs (http://soulbroken.co.uk/code/sublimephpcs)
This package adds support for PHPCodeSniffer to ST2. It checks if you code is written according to one of the standards. Just pick one: Zend, PEAR.. and more 🙂 Check out PHPCodeSniffer website for configuration details.
- TrailingSpaces (https://github.com/SublimeText/TrailingSpaces)
Small horror of every code – empty spaces at lines ends, at the end of file. Especially troublesome if you are working on the code with other developers, who might use different editors/IDEs which might interpret them (empty spaces) differently.
- BracketHighlighter (https://github.com/facelessuser/BracketHighlighter)
Same situation as with Tag plugin. In my everyday coding ST3 bracket highlighting capabilities of ST3 are good enough. It is still great plugin though.
- Sublime Function Name Display (https://github.com/akrabat/SublimeFunctionNameDisplay)
Displays in bottom bar name of a function (or method) in which our cursor is placed. Simple and helpful.
- Terminal (http://wbond.net/sublime_packages/terminal)
Using Git or maybe some PEAR packages you might need to switch to console from time to time and do some magic. Maybe use Zend Tool or “bake” something 😉 It’s just what this plugin is for.
- Xdebug Client (https://sublime.wbond.net/packages/Xdebug%20Client)
Lately my favorite Xdebug client for ST3. Works great and allows to use all of Xdebug debugging capabilities.
Few supporting packages. I consider them optional, but they come in handy:
- LineEndings (https://sublime.wbond.net/packages/LineEndings)
Nice to have plugin if you are working with other developers using Windows and Unix/Linux machines. It takes care of different (invisible) line ending characters in those systems.
- Sass (https://sublime.wbond.net/packages/Sass)
This one comes in handy when working with Sass files. Syntax highlighting and so on.
- PlainTasks (https://github.com/aziz/PlainTasks) added thanks to Virion’s comment
Great tool for everyone who like to have their tasks organized, flexible with many great features.
- Sublimerge (http://www.sublimerge.com/)
Added thanks to Virion’s comment_Diff tool on steroids. Ideal for everyone who has to do a lot with merging, especially useful when it comes to large files.
- DashDoc (https://sublime.wbond.net/packages/DashDoc) (Mac only)
This one is for Mac users only and only for those who have Dash installed, but I really recommend it. Dash provides access to docs of almost every major library, framework etc. and so much more! With this plugin you can access it directly right from Subliem Text code window with keyboard shortcut. It really speeds up coding.
That’s it for now. I might come back and something later, but this is my set-up and works great for me.
If you know any plugin worth mentioning, then let me know – I’ll be glad to add it to my list. Any suggestions? 🙂