A few months ago I wrote a series of articles highlighting PHP-driven content management systems and frameworks, and I singled out ExpressionEngine as one particularly impressive solution that effectively balances the best features of both. This popular Web development solution recently took another major step forward with the July 12 release of ExpressionEngine 2.1, the product's first major upgrade in several years. Version 2 sports a number of new features and significant improvements over its predecessor, many of which I'll highlight in this article.

CodeIgniter Integration

The company behind ExpressionEngine, EllisLab, Inc., also happens to be the creator of another popular Web development solution known as CodeIgniter. As EllisLab President Leslie Camacho discussed during last year's ExpressionEngine CodeIgniter European Conference keynote, the blurring line between website and Web application prompted the company to reconsider the strategy for building ExpressionEngine 2, concluding that rebuilding the product as a CodeIgniter application was the most effective way to accommodate the increasingly sophisticated needs of developers.
This move will likely have several positive consequences, notably EllisLab's ability to more effectively evolve both products thanks to the wide range of new use cases which will inevitably arise due to the integration. Further, ExpressionEngine's new status as a CodeIgniter application greatly reduces the overhead involved in extending ExpressionEngine thanks to the ability to integrate multiple CodeIgniter applications. The ExpressionEngine community also gains access to a great deal of existing documentation and other CodeIgniter community resources.

Redesigned Control Panel

ExpressionEngine 1.X's control panel is packed with tools capable of managing nearly every conceivable aspect of a website. However, navigating to those tools can be a bit tedious because many are buried deep within the interface. The ExpressionEngine team clearly acknowledged the amount of time site administrators spend working within the control panel by improving and streamlining the interface (see Figure 1), even going so far as to hire internationally recognized design expert Veerle Pieters to participate in the redesign (Veerle talks about the project in an EEInsider interview).


Click here for larger image

Figure 1. The Streamlined ExpressionEngine Control Panel (source: ExpressionEngine manual)

Improved Template Management

ExpresionEngine 1.X supported the ability to manage templates via the Web-based control panel and also via text files, which could be updated using an IDE such as Dreamweaver. However, it was an either/or proposition, meaning you either used the Web-based interface or an IDE; there was no simple way to synchronize the two repositories without purchasing a third-party module or devising some other custom solution. Further, new templates had to be created and initialized using the control panel, making for a tedious and time-consuming process when developing large sites.
All such disadvantages have been erased in version 2, with ExpressionEngine now capable of automatically detecting not only the addition of new templates to the designated file-based repository and updating the site accordingly, but also detecting the addition of entirely new template groups. Further, ExpressionEngine can determine when the database and file repositories are out of sync, and it provides you with an easy tool for making sure everything is properly synchronized.

Integrated File Manager and Image Editor

One of the biggest gripes about 1.X was the limited access to a basic file upload and management interface. Because Web publishing has evolved far beyond posting solely text and graphics, a great deal of effort was put into improving EE 2's file management capabilities, with a global file manager available in the new release (see Figure 2). This manager organizes all uploaded files according to title, size, type, and publication date, and gives you the ability to categorize files according to topic or other variable.


Click here for larger image

Figure 1. Figure 2. EE 2's Integrated Image Editor (source: ExpressionEngine manual)
Also gone is the need to invest in expensive or complex image editing tools if your needs are limited solely to basic graphic editing tasks such as cropping, resizing and rotating. Version 2 includes a basic image editor capable of carrying out all of these tasks.

Accessories

Accessories represent a new type of ExpressionEngine add-on, offering a convenient way to present custom information to control panel users. For instance, your marketing department might desire an easy way to view a certain set of traffic-related statistics. By encapsulating this information within an Accessory Add-On, you can not only aggregate and format this information to suit marketing's express needs, but also make it readily available to them via the control panel. Further, you're not limited to presenting ExpressionEngine-specific information; you can create Accessories capable of pulling information from any third-party source, such as Google Analytics.
See the ExpressionEngine user guide for more information about this convenient new feature.

Pricing and Trial Version

One of the biggest surprises about ExpressionEngine 2 is EllisLab's decision to no longer offer a trial version, instead moving to a model that provides a "100% money-back guarantee" within 30 days of purchase. The rationale behind this move isn't readily apparent, although one would presume it is intended to combat piracy. However, it will almost certainly reduce the appeal of giving the new product a test drive.
Regardless, the ExpressionEngine pricing structure remains quite low for what you receive in return, given the commercial version's $299.95 price tag and a $149.95 arrangement for non-commercial purposes. A "Freelancer License" is available for a mere $99.95 for individuals and businesses with three employees or fewer (in addition to other restrictions discussed on the website). Further, 1.X users with active download accounts can upgrade to version 2 for a just $50.

Conclusion

The features discussed in this article are just a few of the literally hundreds of new features made available with the ExpressionEngine 2 release. Whether you're an experienced 1.X user who hasn't yet taken the time to investigate the new version, a CodeIgniter guru looking to capitalize on your abilities within the Web publishing market, or a PHP developer interested in using truly best-of-breed technologies created with your favorite language, ExpressionEngine is well worth a look.

About the Author

Jason Gilmore is the founder of WJGilmore.com and the author of several popular books, including "Easy PHP Websites with the Zend Framework", "Easy PayPal with PHP", and "Beginning PHP and MySQL, Third Edition".