PHP New Project Wizard UI Spec
Author: Leon Barnard
This document is a specification of the NetBeans IDE New Project Wizard for PHP Projects.
Table of contents:
The Early Access PHP release centered around developing PHP web pages on a local machine. This is one primary use case, however there are additional use cases that need to be supported in the 6.5 release. The first new use case is PHP Scripts, where the user is executing PHP code to perform some kind of activity. These scripts do not typically output HTML and are therefore not displayed in a browser. There are also usually executed using a local PHP interpreter, rather than one located on a web server. The second new use case is Remote Development, where the user uploads their code (and other files) to a remote web server (often via FTP). This is common when the user doesn't have a web server on their local machine or when the development is shared across multiple people. Also, many users work locally during development and upload their site to a production server when it is finished.
In order to support the additional Run options (FTP and command line) that will be available in the NetBeans 6.5 release of PHP, the wizard should be updated from the Early Access version. In addition to adding additional Run options, this specification proposes simplifying the way that project folders are created by removing the Project Location field and modifying the Project Folder field, as compared to previous versions.
This step of the wizard asks about basic project information. It is different from other project wizards in that the Project Folder field has a Browse button and is editable. The default value for this field will be a folder with the same name as the Project Name appended to the default NetBeans Project Location folder. If the user uses the Browse button to select a different folder, the Project Name will be appended to the selected folder. The user has the option to delete the project name from the text field if they wish to place their project files in an existing directory (or different, empty directory).
Like the EA release, the Sources Folder will show by default the Project Folder name followed by a folder named "web", which can be edited in place or changed using the Browse buton. The drop-down list will also show any detected web server document root folders (e.g, htdocs, public_html).
Next, the user is prompted for an index file, which will be created as "index.php" by default. The option to create it will still remain checked if the user selects an existing directory; the user will be warned if a file with the same name exists in the sources folder. Finally, the encoding will be set to UTF-8 by default for all operating systems.
Clicking Next will bring the user to the final step of the wizard, which primarily addresses what happens when they press the Run Project button. The text will explain that PHP projects support multiple configurations and ask them to create their default configuration. Some of the advanced settings will be left out for the sake of simplicity (e.g. arguments; these will be available in the project properties). The default selection will be Local web site, as this is expected to be the most common primary configuration type. A URL field will be shown, which will take its default value from the Project Name specified in the previous step. As in the EA release, there will be an option to copy files from the Sources Folder to another location.
Remote web site (FTP) will be the second option in the Run As drop-down menu. Here, the user must specify the URL and FTP connection information. FTP connections will be managed globally. Thus, the user only needs to select a connection, optionally specify a different upload directory, and indicate when files should be uploaded (on run, on save, manually). Managing FTP connections will be described in another specification.
Script (run in command line) will be the third option in the Run As drop-down menu. Here, the user only needs to specify the PHP interpreter to use for the project, which will initially be set to the default global interpreter. Pressing the Configure button will open the Options dialog, where they can change the global interpreter.