PHP Development Plan
This document contains a compilation of features, which will be available in the PHP support. The features are split in the main three categories according, when they could be done. The first important mile stone is a technical preview for Java One 2008. The second category contains features, which will be implemented for version 1.0 and the third category contains a list of features, which can be added in the future.
JavaOne 2008
There is a list of features which will be available in a technical preview for JavaOne 2008.
Editor
All editor features are targeted for supporting PHP 5. We are not going to support PHP 4.
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| PHP Parser | 1 | | Petr Pisl | | Many features in editor depends on this feature |
| Coloring Lexer | 1 | | Petr Pisl | done in M1 | |
| AST builder | 1 | | Petr Pisl | done in M1 | |
| Coloring | | | | | |
| Syntactic coloring | 1 | | Petr Pisl | done in M1 | QA can test opening php files, editing and a right coloring of php language |
| Semantic coloring | 2 | | Petr Pisl | in progress | QA can test the coloring of class name and method name, |
| Mark Occurrences | | PHPMarkOccurrences | Jan Lahoda | 90% | |
| Code Completion | | PHPCodeCompletion | | | |
| CC in local context | 1 | | Tomasz Slota | done in M1 | |
| CC in global context | 1 | | Tomasz Slota | done in M1 | |
| CC for PHP platform | 1 | | Tomasz Slota | done in M1 | |
| CC in include/require | | | Jan Lahoda | done in M1 | |
| Dynamic Help | 2 | PHPCodeCompletion | Tomasz Slota | done in M1 | needs to be improve for M2#133837 |
| Code Folding | 2 | | Petr Pisl | done in M1 | It folds code blocks of classes, methods in classes, functions, phpdoc and php multiline comment |
| Bracket Matching | 3 | | Vita Stejskal | done in M1 | |
| Navigation | | | | | |
| Go to Declaration | | PHPGoToDeclaration | Jan Lahoda | done in M1 | |
| Go to Type | | | Jan Lahoda | done in M1 | PHP elements should appear in the Go to Type dialog - has troubles with case (in)sensitivity |
| PHP Palette | 3 | | Petr Pisl | done in M1 | HTML palette is enabled and associated with the PHP editor. No PHP items are planed. |
Infrastructure
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| Project infrastructure | | | | | |
| New Project wizard | 1 | UI Specification | Tomas Mysik | done in M1 | possibly will be changed for M2. The changes will be based on the UI study. |
| Project Customizer | 1 | UI Specification | Tomas Mysik | 75% | |
| PHP Include Path API | 2 | | Tomas Mysik | done in M1 | |
| Project actions | 1 | | Tomas Mysik, Radek Matous | done in M1 | |
| PHP Options | 2 | Mockup | Tomas Mysik | done in M1 | |
| New PHP file wizards | 1 | | Tomas Mysik | done in M1 | possibly there will be needed a changes to allow choose extension |
| Logical project view | 1 | | Tomas Mysik | done in M1 | |
| Local development support | 1 | | | done in M1 | |
| Basic Remote development support | 3 | UI Specification | Tomas Mysik | in progress | Contains mainly downloading and uploading files from a FTP server |
| Out of the box experience | 3 | | | in progress | Mainly dialogs with help/links how to set up servers, debugger etc. |
| Sample PHP projects | 3 | | | done in M1 | Bundle sample projects and provide a wizard to create them |
Debugger
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| xDebug integration | 2 | | Radek Matous | done in M1 | QA can test basic debugger functionality toggle breakpoints, starting/stopping session, step into/over/out, run to cursor, adding watches, watching local variables and so on. Needs to be done UI and integration improvements. |
| Web server debugging | 2 | | | done in M1 | Local PHP web page debugging should work and can be tested |
Refactoring
In the preview it would be good to have a preview of refactoring like renaming php files and folders.
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| Local variable rename | not staffed | | Jan Lahoda | done in M1 | |
| PHP File Find Usages | not staffed | | Jan Lahoda | done in M1 | |
| PHP file and folders rename | not staffed | | Jan Lahoda | done in M1 | |
Version 1.0
There are features, which will be available in the version 1.0 of PHP support.
Editor
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| Code Completion | PHPCodeCompletion | | | | |
| CC for known attributes | 2 | | Tomasz Slota | in progress | Like cc in include ("") etc. |
| CC in comments (PHP Doc) | 2 | | Tomasz Slota | done in M1 | |
| PHP Hyperlink / Goto source | 2 | | Jan Lahoda | done in M1 | |
| Navigator | 2 | | Petr Pisl | done in M1 | |
| Code Templates in CC | 3 | | Vita Stejskal | done in M1 | |
| Code abbreviation | 3 | | Vita Stejskal | done in M1 | |
| Indentation | 2 | | Tomasz Slota | in progress | |
| Formatting | 3 | | Tomasz Slota | in progress | |
| Error Annotations | 2 | | Petr Pisl | in progress | |
| Code snippets / palette | 3 | | Petr Pisl | not started yet | |
| PHP Font and Colors in Editor Options | 2 | | Petr Pisl | not started yet | |
| Comment / Uncomment PHP code | 3 | | Tomasz Slota | done in M1 | |
| Automatic Insertion (brackets, braces, PHPDoc) | 3 | | Tomasz Slota | done in M1 | |
Infrastructure
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| Encoding of PHP files and project | 2 | | Tomas Mysik | done in M1 | |
| Remote development support | 2 | UI Specification | Tomas Mysik | in progress | |
| Out of the box experience | 3 | | | not started yet | Auto configuration on some platforms, installer, etc. |
| Sample PHP Projects | 3 | | | done in M1 | |
| Wizard for generating new php class / interface | 3 | | | not started yet | |
| Goto File Support | 3 | | | done in M1 | |
| Goto Type Support | 3 | | | done in M1 | |
| PHP Manual Integration | 2 | | | not started yet | |
| Providing data for NB statistics | 3 | | Tomas Mysik | done in M1 | The goal of this feature is find out, how many people really use the php support in NetBeans |
Debugger
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| Local debugging | 3 | | Radek Matous | done in M1 | Basically it means to support debugging local scripts |
Remote file transfer protocol support
This is not connected to the php support directly. So there should be a project independent support fro remote systems. Such support should contains a viewer of the remote file systems with possibility to use the connection information in NetBeans projects.
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| Regular FTP support (passive/active) | 2 | | Tomas Mysik | in progress | |
| Secure FTP support | 2 | | | not started yet | |
| FTP over SLL | 3 | | | not started yet | |
Refactoring
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| PHP Elements Find Usages | 2 | | Radek Matous | done in M1 | Like Class, functions, global constants. |
| PHP Elements Rename | 2 | | | canceled | |
| Code Generation support | 3 | | | canceled | Getters and setters, override and implements function |
Future
There is a compilation of features, which can be a part of PHP support in the future. It's also includes improvements in the features, which will be available in the version 1.0.
Editor
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| Formatting | 3 | | | | This is about real reformatting code, not only about re-indentation. |
| PHP Hints | 3 | PHPVerification | Tomasz Slota | | |
Infrastructure
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| PHPDocumentor support | 3 | | | | |
| PHP Unit testing support | 3 | | | | |
| Displaying data at http://statistics.netbeans.org | 3 | | | | |
| Tasks support | 3 | | | | |
Refactoring
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| PHP File Safe delete | 3 | | | | |
| PHP Elements Save delete | 3 | | | | |
| PHP File Move | 3 | | | | |
| PHP Elements Move | 3 | | | | Like move a php file to another file, etc. |
Remote file transfer protocol support
| Feature | Priority (1-3) | Document | Owner | Current State | Comment |
| Tunneling Support | 3 | | | | |
| Support for other Remote FS | 3 | | | | SCP, Windows FS, Linux FS, Samba ... |
Other possible futures
- PHP code analyzer
- PHP Profiller
- PHP Code coverage
- Integration with Web Services
- Java Bridge integration
- PHP Frameworks support
- SQL DB support integration
- More snippets
Competition
There is a table that compares list of features, which will be available in version 1.0, with competition.
| Feature | NetBeans | ZendStudio for Eclipse | PDT | Comment |
| Editor support | | | | |
| PHP 4 support | N | Y | Y | There is decision that we are not going to support PHP 4 |
| PHP 5 support | Y | Y | Y | |
| Syntax Coloring, Code Completion | Y | Y | Y | |
| Code Folding | Y | Y | Y | |
| Error detection | Y | Y | Y | |
| Bookmarks | Y | Y | Y | |
| Goto Source | Y | Y | Y | |
| Automatic Insertion (brackets, braces, PHPDoc) | Y | Y | Y | |
| Matching Bracket | Y | Y | Y | |
| Comment / Uncomment PHP code | Y | Y | Y | |
| Basic Code Formatting | Y | Y | Y | |
| Advanced Code Formatting | N | Y | N | |
| Code Generation support | Y | Y | Y | Getters,Setters,override,implement |
| DnD From Open Explorer Files | N | Y | Y | |
| JavaScript support in PHP files | | | | |
| Syntax Coloring | Y | Y | Y | |
| Code Completion | Y | Y | Y | |
| Navigator | Y | Y | N | Zend Studio has html/php/javascript in one outline. We will have separate outline for all embedded languages |
| Code Folding | Y | N | N | |
| HTML support in PHP files | | | | |
| Syntax Coloring | Y | Y | Y | |
| Code Completion | Y | Y | Y | |
| Navigator | Y | Y | N | Zend Studio has html/php/javascript in one outline. We will have separate outline for all embedded languages |
| Code Folding | Y | Y | Y | |
| Drag and Drop HTML Components | Y | Y | Y | |
| Design (WYSIWYG) editing | N | Y | N | |
| Infrastructure | | | | |
| PHP Project infrastructure | Y | Y | Y | |
| New file wizards | Y | Y | Y | |
| Goto File | Y | Y | Y | |
| Goto PHP Element | Y | Y | Y | |
| PHP Manual Integration | Y | Y | Y | |
| File Navigator | Y | Y | Y | |
| Project Navigator | N | Y | Y | |
| Tasks support | N | Y | Y | |
| Problems View | N | Y | Y | |
| Project Include Path definition | Y | Y | Y | |
| Encoding Support | Y | Y | Y | |
| Deployment | | | | |
| Local Deployment | Y | Y | Y | |
| File Content Transfer | Y | Y | N | |
| FTP | Y | Y | N | |
| SFTP | Y | Y | N | |
| SSL communication | N | Y | N | |
| Tunneling Support | N | Y | N | |
| Refactoring | | | | |
| Rename of files, folders | Y | Y | N | |
| Rename of php elements(class, function, global variable) | Y | Y | N | |
| Debugging | | | | |
| Web Server Debugging | Y | Y | N | |
| Local Debugging | Y | Y | N | |
| PHP Executable Profiler | N | Y | N | |
| Web Server Profiler | N | Y | N | |
| Code Coverage | N | Y | N | |
| Source control | | | | |
| Local History | Y | Y | Y | |
| CVS | Y | Y | Y | |
| Subversion | Y | Y | N | |
| Mercurial | Y | N | N | |
| Miscellaneous | | | | |
| PHP Unit testing support | N | Y | N |
| PHP code analyzer | N | Y | N | |
| RSS Reader | N | Y | N | |
| Web Services support | N | Y | N | |
| PHPDocumentor Support | N | Y | N | |
| Java Bridge | N | Y | N | |
| PHP Zend Frameworks integration | N | Y | N | |
| PHP Frameworks integration | N | N | N | |