Consider Php Frameworks such as Zend, CodeIgniter, Cake etc. All use hundreds of weaving and connecting Classes and Functions to arrive at one page for the user to view. And before it arrives at the selected page it has to go through sometimes hundreds of processes. Things such as deciding which database, deciding which class is loaded, deciding where to place many includes functions and function calls. I call this "Organized Despair". EssenceOne does this entirely on an As Needed Basis by breaking the Views down into manageable Page-Parts and allowing the Team build to easily stage and stack all the pages files into One Manageable Class Router working as the Model and the Module. Each of these works as it's own Module in the sense that you can add as many as you need as m1 for static pages, m2 for members pages, m3 for groups, m4 for albums etc and go on m5 admin, m6 as friends if you wish. Now the Team can make sense of the build process much easier. Next we use Alphanumeric Naming.
When holding a deck of Playing Cards fresh out of the deck they are all organized according to their value numerically speaking. By breakdown every folders files naming into a combination of Letters as the file ending with a number to represent the Module. Now Models, Views and Controllers Folders can be determined by their corresponding Letter ending in the Module number such as--> m1 c1 v1(static pages),m2 c2 v2(members),m3 c3 v3(groups),m4 c4 v4(albums), m5 c5 v5(friends) now we know if we need the Controllers and Views for the friends class router then we know they are ending in 5 as m5 folder c5 folder and v5 folder where all their tools are stored.
This is a Module for adding everything needed for adding friends into a members website etc.
First we need the Class Router named for instance Route_Friends and we place it inside a folder named m5. Now we know that all the files for Views and Controlers can be stored in folders c5 for Controllers and v5 for Views. Below is the make up:
m5/ our class router named class_route_Friends etc. and it's index.php file. c5 we store our classes or functions as c5/request_friend.php. c5/approve_friend.php. c5/delete_friend.php, c5/block_friend.php. Next our Views as v5/ a1,b1,c1,dadd_friend.php, e1, f1 see below:Mix or Match data from any Module by number within the template breakdown. Page add friend below located in m5/ friends class router.
- m5 //class_route_friends ----> that stacks everything listed below
- c2/session_redirect.php controller
- v2/a1 as our header taken from the members View file MVC re-use.
- c2/b1 as our horizontal menu taken as MVC from our members folder re-use User Profile.
- v2/c1 as our left menu view adding the short tags to retrieve data from the controller above it
- c5/add_friend.php as our content controller form action add friend send request etc.
- v5/dadd_friend.php is the view with short tags to retrieve our data from controller stacked above it.
- c3/e1 our controller for data show right menu post data etc. if wall post is module m3.
- v3/e1 as our right menu MVC re-use of our show wall post summary etc f v3 is wall post view.
- v2/f1 as our footer used on the members Module re-use MVC
Now if we wish to add a new Module named Videos our Team will know we need m6, c6 and v6 and we can re use members sections Views and Controllers like the user profile in c2 and v3 etc and still retain our Module needs for the add, delete, update, list, view pages for the new Video Module. Easy Enough !
Example Website Files and Folders
- assets/ icons images java
- a1/ config dbcon sessions
- m1/ static router
- m2/ members router
- m3/ albums router
- m4/ groups router
- m5/ friends router
- m6/ videos router
- m7/ blog router
- c1/ static controllers pages as list, view, add, delete, update
- c2/ members controllers pages as list, view, add, delete, update
- c3/ albums controllers pages as list, view, add, delete, update
- c4/ groups controllers pages as list, view, add, delete, update
- c5/ friends controllers pages as list, view, add, delete, update
- c6/ videos controllers pages as list, view, add, delete, update
- c7/ blog controllers pages as list, view, add, delete, update
- v1/ static page views pages as list, view, add, delete, update
- v2/ members page views profile page aboutme browse-members settings etc
- v3/ albums views pages as list, view, add, delete, update
- v4/ groups views pages as list, view, add, delete, update
- v5/ friends views pages as request, add, delete block
- v6/ videos views pages as list, view, add, delete, update
- v7/ blog views pages etc.