Joined: 10 May 2010
|Posted: Wed Jan 07, 2015 1:36 am Post subject: Introducing ActiveWAFL Unified Web Development Framework
I'd like to announce ActiveWAFL 0.4.
I've been waiting anxiously for many years(!) to write this post in this forum.
It is meant to replace several disparate frameworks libraries with one single framework.
It is sort of like ZF + JQuery + Bootstrap combined into one single unified framework.
The features are too many to list here (or anywhere, really). But it should handle almost anything you need for a web project out-of-the-box. If it doesn't, it is extensible with "Extensions" and "Controls".
The default template engine being used is Smarty3! In fact, the server-side templating system was built with Smarty3 as the basis for the interface.
Here is a brief high-level feature list:
-DblEj (pronounced Double Edge) (client / server)
Link: DblEj API Docs
-MVC (client / server)
MVC is supported on the server and client side. So you can handle server-side or client-side actions using a common mechanism. Every .php controller has a .js counterpart.
Link: MVC Controller Docs
The ActiveWAFL ORM reverse engineers your database and creates Active Record data models for every table. The strongly-typed models are accessible equally from the server side or client side via PHP or JS.
You can load, modify, and persist models straight from .js if you want to.
Link: Data Models Docs
Designate anything as a "resource" and then provide access to those resources for designated "actors". Out-of-the-box resource implementations include site areas, screens, widgets, scripts, and API's.
Link: Access Control Docs
-Command line tools
Create a pre-configured application skeleton with a single command-line.
Link: Getting Started Docs
-Templating (client / server)
Uses Smarty3 on the server-side (with many custom plugins) and a custom implementation on the client side.
Link: Presentation Layer Docs
Out-of-the-box support for components such as MySql, Solr, Predis, Smarty, PHPUnit, ODBC, Selenium and services such as Paypal, Amazon, Google, Balanced, USPS.
-UI Design Elements (incl Controls)
Date Picker, Buttons, Dropdowns, Menus, Toolbars, Dialogs, and More.
Link: UI Components Docs
A comprehensive bootstrap-like CSS layout library.
Link: Layout Docs
A comprehensive JQuery-like JS library.
-Client / server integration
-Build and Testing Support
I started developing WAFL many years ago, before the PSR standards were around. One thing that is really different is that in WAFL members are named according to scope (private methods are preceded with an underspace and start with lower case, public members start with uppercase). This is kind of weird for modern PHP developer who are used to lower-case method names, but it is really pretty.
-Autoloading (Client / Server)
-Event driven programming (Client / Server)
Useful (and extensible) dumps, traces, and logging.
-Getters / Setters
All models, whether in php or js, use getters and setters to access their properties which can include any custom logic or validation.
-Clean separation of concerns
Thanks in part to Smarty, there is a distinct line in the sand between the data, logic, and presentation tiers.
-Form design helpers, validation, and processing
-Comprehensive documentation and samples.
And honestly, this just scratches the surface. I am really excited to finally be getting this out there.
There is endless documentation that can be written for a project of this scope. So, there is still a lot that can be documented. If you need to know how to do something please feel free to contact me, Submit Feedback or Report a Bug. Also checkout Waffle Recipes, my How To blog.
A special thanks to the developers of Smarty for their lighting-fast support during the development of ActiveWAFL!