Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Setting up Netbeans: Difference between revisions

From MoodleDocs
Line 109: Line 109:
=== NBGit | Git Support for NetBeans ===
=== NBGit | Git Support for NetBeans ===


"NbGit is a module for the NetBeans IDE that adds support for working with the Git version control system. It uses the JGit library created as part of EGit to interact with Git repositories. Because the module is Java code all the way, it should work better cross-platform modulo platform specific differences, such as file system behavior. It is based on the NetBeans Mercurial module."  
"NBGit is a module for the NetBeans IDE that adds support for working with the Git version control system. It uses the JGit library created as part of EGit to interact with Git repositories. Because the module is Java code all the way, it should work better cross-platform modulo platform specific differences, such as file system behavior. It is based on the NetBeans Mercurial module."  
http://nbgit.org
(http://nbgit.org)


== Optimization ==
== Optimization ==

Revision as of 10:05, 19 January 2010

NetBeans has got a good PHP support. You find a host of information on the website (tutorials, developer blog, screen casts, etc.).

Features

  • CVS integration: see all changes, lines deletion, diff in real time, show annotations, diff history...
  • Ctrl+Click: Go to declaration
  • Export/Import Diff Patch
  • Easy navigation
  • List of functions
  • Code completion
  • Instant rename
  • HTML, CSS, JavaScript support
  • MySQL manager
  • Quick Search
  • Very few bugs

Installation

Set up for Moodle development

  • Open File > New Project > PHP > PHP Application > Next
You're going to set the project now. Name, Location and Folder are used by NetBeans and are not related to the source code. So you can choose whatever you like, except your source folder. Sources has to be your checked out Moodle branch/head folder. The rest is clear enough. Don't forget to choose UTF-8 for Default Encoding.
Example:
Project Name:        Moodle 1.9 Stable
Project Location:    C:\Users\jerome\Documents\NetBeansProjects
Project Folder:      C:\Users\jerome\Documents\NetBeansProjects\Moodle 1.9 Stable
Project Sources:     C:\Users\jerome\Projects\branch19_STABLE\moodle
Project URL:         http://localhost/moodle19/
Index File:          index.php
Create:              unchecked
Default Encoding:    UTF-8
Set as Main Project: unchecked
  • Click on Finish.
  • Start coding!

CVS with NetBeans

NetBeans comes with integrated CVS support which might be the easiest way to check out Moodle.

Anonymous checkout

  1. In NetBeans, select Window->Versioning->CVS->Checkout
  2. Select Team->CVS->Checkout
  3. Enter into CVS Root: :pserver:anonymous@us.cvs.moodle.org:/cvsroot/moodle
(Non-US-residents might use one of the other Moodle CVS servers nearer to them.)
  1. Click Next
  2. Browse or enter into Module: moodle
  3. Browse or enter into Branch: MOODLE_19_STABLE
  4. Browse or enter into Local Folder: C:\xampp\htdocs
  5. Click Finish (and wait a few minutes for Moodle to be checked out)
  6. When you get the dialog box "Do you want to create an IDE project from the checked-out sources?", Click "Create Project..."
  7. Select PHP Application with Existing Sources, and click Next
  8. Browse or enter into Sources Folder C:\xampp\htdocs\moodle
  9. Enter into Project Name: moodle
  10. Keep the other defaults and click next
  11. Run As: should have selected Local Web Site (running on local web server)
  12. Enter into Project URL http://localhost/moodle/
  13. Browse or enter into Index File: index.php
  14. Click Finish

Checkout for developers with write access

IF you wish to use NetBeans CVS and have CVS write access, the procedure is as follows:

  1. Follow the above instructions except for point 3
  2. At part 3, substitute :ext:yourusername for the part before the @ and remove the country code from after it, leaving it like this :ext:yourusername@cvs.moodle.org/cvsroot/moodle
  3. Follow the rest of the instructions as above

If you wish to work with a plugin, you will need to check this out separately and add it to the Moodle code project you have just made. This because for some reason, the 'Do you want to create a project' option fails to show any of the files once you open it if you try to check out the plugin on its own (NetBeans 6.7.1 on a Mac).

  1. Follow the above steps up to point 3, and again substitute :ext:yourusername and click 'next'
  2. Click 'Browse...' next to the 'Module' dialogue
  3. Find the plugin you wish to work with in CONTRIB
  4. Click 'OK'
  5. Proceed as before up to point 6, then press 'Close' when asked if you want to create a new project.
  6. Now navigate to the folder you earlier specified in the 'local folder' dialogue and you will find a folder marked 'contrib'.
  7. navigate to the plugin folder, copy that folder, and then navigate to your main Moodle project folder and paste it where it belongs.

Adding a branch to your plugin

Your plugin will likely start with just a HEAD tag and at some point, you will want to branch it so that you can have versions for different Moodles. To add a MOODLE_20_STABLE branch, for example, do the following.

  1. Checkout as above, but use the MOODLE_20_STABLE branch instead of MOODLE_19_STABLE
  2. You will end up with an empty folder, which you copy into place as above.
  3. Find the folder in NetBeans, then right click and choose CVS->Merge changes from branch...
  4. Choose to merge from whatever branch has all the current code, using the help link if not sure what to do.

There is a small chance that the Merge link will not be there, in which case, you will have to copy the files into the directory by hand outside netbeans and then check them in. If you do this, make sure you don't copy over the 'CVS' folders that will have been made when you checked out the MOODLE_19_STABLE code.

A few warnings

Some of these warnings could also apply to other IDEs:

  • If you want to delete a file from your computer but not from CVS, delete it from Windows Explorer/Nautilus/Finder. Otherwise your next commit could delete the file from CVS.
    In case you have already deleted a wrong file from NetBeans: with Windows Explorer/Nautilus/Finder, delete all the folder content of this deleted file (including the CVS folder) and update the folder.
  • If you rename files and that other people are working on them, NetBeans could end up to mess up your CVS folder (even though that is quite rare). Then NetBeans CVS will refuse to update your code displaying a no explicit error as Update Failed. In this case, delete the content of the damaged folder with Windows Explorer/Nautilus/Finder. Then update this folder.
  • If you create a patch or a new PHP file with NetBeans on Microsoft Windows, please check that it's a Unix format file. You may want to use another software to create Unix format patch/php files.

Git with NetBeans

NBGit | Git Support for NetBeans

"NBGit is a module for the NetBeans IDE that adds support for working with the Git version control system. It uses the JGit library created as part of EGit to interact with Git repositories. Because the module is Java code all the way, it should work better cross-platform modulo platform specific differences, such as file system behavior. It is based on the NetBeans Mercurial module." (http://nbgit.org)

Optimization

1. You may want to run NetBeans with the Sun JDK. NetBeans seems to work a bit better with the Sun JDK. You'll have to edit NetBeans config file. Open netbeans/etc/netbeans.conf. Then uncomment and edit:

netbeans_jdkhome="your_JDK_path"

2. To change the NetBeans look and feel run netbeans in the command line with this parameter:

"netbeans"  --laf javax.swing.plaf.metal.MetalLookAndFeel 

3. If NetBeans starts to slow down, give it more memory

"netbeans" -J-Xmx600m

See FAQ for more details on memory optimisation.

Coding faster

Keyboard shortcuts

(Note: Some shortcuts might not work for PHP development.)

PHPUnit support

See "Recent improvements in PHPUnit-support" on how to use PHPUnit with NetBeans.

See also: