-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Package webmvcframework, with the acronym of WebMVC, is a powerful object-oriented PHP framework, suitable as a web design and development tool.
You can use WebMVC to effectively create little and medium-sized web projects regarding data-intensive web applications, sites, mobile web apps and web APIs.
Its main features are:
- Provides a set of functionalities to organize your application using the Model View Controller (MVC) architecture for acting the Separation of Concern (SOC) regarding Business, User Interface, and Processing responsibilities
- Let you organize an application in subsystems to cope with the complexity of big projects
- Extends the basic MVC architecture by providing hierarchical and composition capabilities (HMVC) among different Controllers. HMVC, by adopting the "divide and impera" paradigm, accelerates the development of complex web pages that can be realized through the composition of many smaller and simple MVC sections
- It avoids the mixing of client-side programming languages, like HTML, CSS, and JavaScript, necessary for building the GUI o web application, together with server-side programming languages, needed for implementing the application logic. By unmixing those technologies it improves the collaboration process among people having different skills (e.g. GUI, PHP and Database designers and developers) needed for building complex projects
- Uses only standard web technologies without introducing new ad hoc syntax both in client-side and server-side programming languages
- Provides ORM code automatic generation by reversing engineering a given MySQL database schema
- Bundles a set of ready to run and useful software components for implementing some recurring problems in web development
- Provides facilities with pre-built and customizable solutions for the rapid development of frequently occurring software functionalities in a WEB application like internationalization, SEO URL, authentication, users management and role-based access control
The guidelines for the development of the framework have been to obtain a development environment in which the key principles of software engineering could be easily applied during the development of web applications. Particularly:
-
OOP - Having a simple mechanism for treating web pages like classes, with the capabilities to apply them all the fundamental properties of the OOP, such as extension, override, reuse and composition.
-
AVOID MIXING OF PROGRAMMING LANGUAGES - Having, at the same time, the capability for decoupling server-side technologies from client-side ones, avoiding mixing them when writing code of classes handling the GUI design.
-
DECOMPOSITION - Having the capability to simultaneously decompose an application and web pages under different engineering principles: first of all MVC but also sub-systems, internationalization, page contents, access roles.
-
COMPONENT BASED DEVELOPMENT - Getting a set of reusable, customizable, and useful server-side components, also built as MVC parts, for implementing recurring patterns in data-intensive web applications
-
NAMING NOTATION UNIFORMITY - Having an OOP-like, simple, and intuitive naming notation to be used for the logical representations of MVC classes and sub-systems and their correspondent physical representation into files and sub-directories, as well as for making easy and automatic the object instantiation of Controllers by using HTTP requests.
By putting all these guidelines principles of WebMVC in the order:
- COMPONENT BASED DEVELOPMENT
- AVOID MIXING OF PROGRAMMING LANGUAGES
- NAMING NOTATION UNIFORMITY
- DECOMPOSITION
- OOP
We could imagine using the acronym of "CAN DO" for indicating the criteria by which a WebMVC application could be designed and developed.
Follow this wiki to learn and to start using the framework!