05

WebAppEngine is a modern web application framework designed especially for creating web-based, data-driven, secured applications. It helps in rapid application designing, implementing and deploying.

WebAppEngine is build in PHP5, starting from version 4.0 code-base has fully object oriented structure and many sophisticated design patterns implemented. That makes application powered by WebAppEngine well organized and scalable. Core part of framework is application kernel which sticks all other components together. Components organization implements HMVC (Hierarchical Model View Controller) pattern. There are several base components that comes with WebAppEngine. Each one of them provides one of typical application framework feature:

  • Web component provides libraries that helps handling web requests. It comes with advanced routing features, web-view controllers, in-app web notifications and basic templating engine. It's a part of application that manage web request and responses in fully customizable way.
  • Console component provides standard console application features, like handling command line interaction with user etc. It can be used as a tool for creating server-side scripts that requires a lot of time to complete their tasks.
  • Output component allows to send data back to the user in smart way, regardless of application type (web, console...). It's used by Web and Console components.
  • Config component allows to store and manage application configuration, it also provide easy transferability of application and environment specific configuration management.
  • Log component is a tool not only for debugging application, but also to keep history of application life after deployment.
  • Exception component provides easy and effective error handling. It works well with other components, to allow logging errors, displaying error messages or takes specific steps when a exception occurs. It contains a handler interface to make creating custom error handling procedures easy.
  • ActiveControl component is a advanced authorization tool that allows to define custom access roles and store users data inside application. It keeps track of client's sessions in a smart and effective way.
  • Data component is a part of framework that helps building data-driven applications that scales easily. It's fully object-oriented environment for any kind of data application operating on. It helps managing data objects that persists in data stores, all this with automatic data changes tracking, database transactions support, in-flight data validation and much more. In two words - it's a ORM with benefits. Data component requires database compatible with PHP PDO, it's designed especially for MySQL, but not limited to one database engine.
  • Events component provides event-based communication between other components. It also implements Mediator design pattern to make event management easy.

All of explained components takes advantages of Dependency Injection design pattern, which makes extending them pretty easy, as well as adding custom components to the application. WebAppEngine integrates well with sophisticated web user interfaces. From version 7 it comes with Twitter Bootstrap as a standard, but can be used with any existing or custom web front-end framework, including advanced JavaScript based frameworks that uses mainly AJAX requests or specific mobile front-end frameworks.

WebAppEngine4 was last open sourced version so far, and it's no longer maintained in a evolution way due to lack of time and growing interest of commercial deploys. Only serious bugs are fixed if spotted. The repository is still available on BitBucket, but keep in mind that the code base can be outdated.

Version 7 of WebAppEngine comes with totally reorganized source code that takes advantages of PHP 5.4 features. Unlike previous versions it's not build on any existing framework that it depends on, but it's build with integrating with any other framework in mind. Version 4 was build on modificated CodeIgniter PHP framework, version 5 was a Symfony2 bundle, version 7 is totally independent piece of code, but it can be easily integrated with CodeIgniter libraries or Symfony2 bundles if needed.

There are several professional applications that works powered by WebAppEngine. Some of them are:

  • content management systems with non-standard content structure
  • email processing services that works 24/7 on server side tracking and processing customer requests
  • specific project management software with front-end for company customers and back-end for employees
  • business intranet software
  • others...

Design and implementation - author's work. All rights reserved.