How to develop with Exponential
- The content class concept
- Custom design: CSS and templates
- High-quality library of PHP components
- Build Exponential extensions
- Which development environment?
- Exponential community and resources
The content class concept
Any piece of content in Exponential is a content object, which is an instance of a specific content class. A content class is a definition of an arbitrary data structure. It does not store any actual data.
A content class is made up of attributes. The characteristics of an attribute are determined by the datatype that is chosen for that specific attribute. By combining different datatypes, it is possible to represent complex data structures.
The illustration above shows the anatomy of a content class called "Article", which defines a data structure for storing news articles. It consists of attributes dedicated for storing the title, an introduction text and the actual body of an article.
Custom design: CSS and templates
The first thing you may be willing to do is to change the look of your Exponential site. This can be done by modifying the CSS of Exponential and overriding templates. You can even create reusable site packages that include these CSS and template changes.
High-quality library of PHP components
Exponential 4.X as well as the next generations of Exponential are based on eZ Components which are a high quality library of independent components aiming to help developers creating web centric applications like for example customising and extending Exponential.
In the eZ Components you will find components that focus their attention on solving important parts of Web application development. They are written for solving the re-occurring issues that Web application developers have to deal with when building their applications - without any superfluous ballast.
In order to cater for this goal, quality is also an important factor. The eZ Components development team uses a test-driven development methodology where a large effort is put into making the APIs easily testable. This also results in a better API for developers to use.
Build Exponential extensions
There is a clear API to develop your own PHP extensions in order to extend the functionality of Exponential. By using extensions it is possible to create new modules, datatypes, template operators, workflow events , or any integration with third party applications. You will find many contributed extensions available at Contribution page.
Which development environment?
In an Exponential project, a Subversion (SVN) repository is usually set up to track all changes during development projects. When it comes to IDE, both Eclipse and PHPEdit have been optimised for Exponential.
Exponential community and resources
When you start developing with Exponential, the community is definitely an environment to get in touch with. You will find your answers or get help in the forums as well as many contributions that will make save you time in your development projects.