edelacruz Smarty Rookie
Joined: 10 May 2010 Posts: 25
|
Posted: Wed Jan 07, 2015 1:36 am Post subject: Introducing ActiveWAFL Unified Web Development Framework |
|
|
Hello,
I'd like to announce ActiveWAFL 0.4.
I've been waiting anxiously for many years(!) to write this post in this forum.
ActiveWAFL is a full-featured comprehensive Web development framework that handles all aspects of a web development project including PHP, Javascript, HTML, and CSS.
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.
(I mention server-side templating because ActiveWAFL also supports client-side templating. It works just like Smarty except on the client-side. So you can render templates straight from Javascript using client-side data.)
Here is a brief high-level feature list:
-DblEj (pronounced Double Edge) (client / server)
Full featured PHP and Javascript library providing a plethora of classes and helpers useful for common web development tasks.
Link: DblEj API Docs
-Object Oriented
ActiveWAFL is designed for use by OO programmers. Even in Javascript you can use traditional inheritance and namespacing.
-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
-ActiveWORM
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
-Access Control
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
-Extensions
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
-Responsive CSS
A comprehensive bootstrap-like CSS layout library.
Link: Layout Docs
-Javascript DOM extensions
A comprehensive JQuery-like JS library.
API Documentations
-Client / server integration
Counterpart-compliant models allow you to work on the client or server sides equally. A powerful Ajax/Json implementation handles communication seamlessly. Use Functional Models in PHP or Javascript or use your application's API to communicate between client and server without worrying about encoding, escaping, or parsing.
-Build and Testing Support
-Coding Standards
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)
Referencing a class in PHP or Javascript will automatically and dynamically (down)load the required file.
-Event driven programming (Client / Server)
Trigger and handle events in PHP and/or Javascript.
-Debugging
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! |
|