Jumping into the deep end
This section is about how to get ready for developing the great Icinga-web extensions that came to your mind. Although we're trying to make your life as easy as can be, some background knowledge about the technologies used in icinga-web are indispensible (but believe me, it's not too hard :) ).
- The ExtJS Documentation. At this time 3.1, but we'll switch to ExtJS 4 as quickly as possible.
Getting ready for the server side
Icinga-Web uses PHP as it's serverside backend. in order to make routing, parameter and database handling easier, we're relying on 2 Frameworks.
- Agavi is the base MVC Framework. In normal development, you needn't to know much about the details of this framework. Reading the quickstart guide on their page is recommended.
- Doctrine (1.x) is used as a database abstraction and ORM layer, allowing you to directly persist objects in your database.
- PHP itself is documented on the Official PHP site. Make sure to be compatible with PHP 3.2.x.
If you want your code to be accepted, it should comply with our icinga-web coding guideline:
- Open braces always at the end of a line
- Closed braces always in the new line
- Intendation: Four spaces, no tabs
Further, you should try to follow the following (general) rules we consider for best practice:
- Instead of writing huge methods and classes, split it up in smaller parts
- Documentation of code is good, but write your methods and classes in a way that you can understand it without looking at the comments
- Eval is evil. If you need it, you are doing something wrong
- Use the ExtJS/Agavi/AppKit Helper methods and functions instead of writing your own functions for common actions. If something is missing, make it generally accessible and reusable if possible.