Note: You are currently viewing documentation for Moodle 2.6. Up-to-date documentation for the latest stable version of Moodle may be available here: Setting up Netbeans.

Development:Setting up Netbeans: Difference between revisions

From MoodleDocs
Line 70: Line 70:


IF you wish to use NetBeans CVS and have CVS write access, the procedure is as follows:
IF you wish to use NetBeans CVS and have CVS write access, the procedure is as follows:
====Checkout of main Moodle codebase====


# Follow the above instructions except for point 3
# Follow the above instructions except for point 3
Line 77: Line 79:
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).
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).


# Follow the above steps up to point 3, and again substitute '':ext:yourusername'' and click 'next'
====Checkout of contrib code====
 
# Follow the above steps up to point 3, and again substitute '':ext:yourusername'' and click 'next'. Note that you should not try to specify the full contrib repository path yet.
# Click 'Browse...' next to the 'Module' dialogue
# Click 'Browse...' next to the 'Module' dialogue
# Find the plugin you wish to work with in CONTRIB
# Find the plugin you wish to work with in CONTRIB

Revision as of 13:17, 5 June 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

  • Download the latest 6.8 version with PHP support, only 25 MB.
  • Install and run it.

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:

Checkout of main Moodle codebase

  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).

Checkout of contrib code

  1. Follow the above steps up to point 3, and again substitute :ext:yourusername and click 'next'. Note that you should not try to specify the full contrib repository path yet.
  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)

Unfortunately, the key word in that quote is should. In reality, because JGit is a rewrite from scratch of the tried-and-tested git core C code, it is still buggy, incomplete and unreliable. Therefore, the NetBeans and Eclipse git plugins are still only beta quality, and pretty sucky. Well, they mostly work for browsing the contents of the repository, but there is a small chance that if you use them for update operations, they will corrupt your repository. Hence, I am still doing git from the command-line.--Tim Hunt 11:11, 19 January 2010 (UTC)

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.

JIRA support

You can install the optional JIRA module in order to be able to interact with the Moodle Tracker from within netbeans. This has the advantage of avoiding constantly switching back and forth from the browser and works quite well. Go to Tools->plugins->available plugins and search for JIRA. Once installed, right click 'issue trackers' in the 'services' pane to make a new tracker instance, then enter your details.

See also:

Moodle forums

Online resources

Book