Product News Resources & Tools

A Sneak Peek at eFront: Internals

efrontPro_internalsEfront has been around for quite some time (almost 12 years, actually!). During this time, we’ve witnessed the rise (and, occasionally, fall) of many great technologies, libraries and trends, several of which we had embraced ourselves. Time has come for some change though.

Front-end

A. Up until now, efront was using the prototypeJS javascript framework. In efrontPRO we’ve replaced it with jQuery, the defacto standard for web programming. Making this change meant that we had to rewrite every piece of javascript code in the system. Thanks to jQuery’s robust architecture and its vast selection of libraries, efrontPRO comes with almost 80% less custom javascript code.

B. We’ve embraced Bootstrap 3, the popular UI framework for the web. It has a sleak, lightweight and fresh design and includes an awesome collection of widgets and animations. Equally important though is its mobile-first approach, which ensures that efrontPRO runs smoothly on all mobile devices.

C. With the power of jQuery and Bootstrap, we were able to make use of the latest and greatest UI libraries available. The editor, the content/courses/branches tree, the uploader and the autocomplete box are some examples of redesigned widgets.

D. Finally, eFrontPRO comes with out-of-the-box support for delivering static assets (css, js) using a CDN, enhancing client-side performance and lowering network usage for the server.

Back-end

A. Up until now, internationalization was implemented using PHP’s defines, a strategy that suited the project well in the early days but has revealed its shortcomings as the project grew bigger. eFrontPRO offers a new internationalization framework based on GNU gettext. What does this practically mean? Improved run-time performance, easier translations, ability to use all the tools available for translating in gettext, graceful fallback to english for untranslated literals. It also meant that we were able to ditch unused language tags and group similiar tags together, resulting in ~25% less terms.

B. The implementation of efrontPRO follows a more mature and standards-based MVC approach, taking advantage of PHP namespaces. This allowsfor clean, easily tested and reusable code, while at the same time maintaining a considerably smaller footprint.

C. efrontPRO leverages the use of caching, supporting various cache back-ends and caching a substantially larger amount of objects, resulting in both performance and scaling gains.

D. efrontPRO comes with a redesigned, smaller and more robust database schema. It takes advantage of innoDB tables’ characteristics, uses transactions where needed and delivers fast performance for high loads.

E. Finally, efrontPRO comes with various new subsystems: A brand new notifications API, a new plugins API and a fully automated upgrade mechanism, along with a trove of smaller improvements and innovations.


Improve your employee, partner and customer training with our enterprise-ready learning management system. Book a demo now and see why our diverse portfolio of customers consistently give us 5 stars (out of 5!)

Book a demo