File and Directory Structure

Current and proposed directory structure. Suggestions for improvements are welcome.

=HMVC= Hierarchical model–view–controller

The concept of the directory and file structure is to create plug-able self contained applications. It is also designed as a move to refactor the project to use the HMVC design pattern. See the following links for additional information.


 * http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/
 * http://net.tutsplus.com/tutorials/php/hvmc-an-introduction-and-application/

=App Structure= Design goal for applications are self contained application that is designed to plug in a simple way.

location: fusionpx/app


 * root.php
 * app_config.php
 * app_defaults.php
 * app_languages.php
 * resources
 * classes
 * models
 * views
 * view name - support multiple sets of views.
 * controllers
 * api
 * rest - RESTful web service support need to find the best location for this
 * v1 - version number
 * images
 * xml
 * dialplan

=Core Structure= Same as App Structure only the bare minimum applications belong in core such as menu, user managerment, groups, permissions, domains and default settings.

location: fusionpx/core

=Future Improvements=

Move the functions this file contains into classes in their respective directories.
 * includes/lib_switch.php

Consider renaming this directory to resources.
 * includes directory

Move the specific classes into their respective app/resources/classes directories.
 * includes classes

Move the rest of the install.php file into methods of the install class.
 * includes/classes/install.php