-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Welcome to the webmvcframework WIKI.
The 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 small and medium-sized web projects regarding data-intensive web applications, sites, mobile web apps and web APIs.
WebMVC defines:
- A set of assumptions, models, and practices constituting a way for building and compounding software application
- A software system that is intended to be instantiated for:
- defining the architecture for a family of sub-systems and providing the basic building blocks to create them
- defining the places where adaptations for specific functionality should be made and run
WebMvcFramework provides a comprehensive set of features that emphasize the principles of the Model-View-Controller (MVC) architecture, Separation of Concerns (SOC), and Hierarchical Model-View-Controller (HMVC). Here's a summary of the key features you mentioned:
-
MVC Architecture:
WebMVC follows the Model-View-Controller architecture for organizing applications, separating concerns related to business logic, user interface, and processing responsibilities.
-
Subsystem Organization:
The framework allows for organizing applications into subsystems, which can be beneficial in managing the complexity of larger projects.
-
HMVC Support:
WebMVC extends the basic MVC architecture by providing Hierarchical and Composition capabilities (HMVC). This approach facilitates the development of complex web pages by dividing them into smaller and simpler MVC sections.
-
Technology Unmixing:
WebMVC aims to avoid mixing client-side programming languages (e.g., HTML, CSS, JavaScript) with server-side programming languages. This separation helps in collaboration among individuals with different skills required for building complex projects.
-
Standard Web Technologies:
The framework utilizes standard web technologies without introducing new syntax in client-side and server-side programming languages.
-
ORM Code Generation:
WebMVC offers automatic generation of Object-Relational Mapping (ORM) code by reverse engineering a given MySQL database schema.
-
Ready-to-Run Components:
The framework includes a set of pre-built and customizable software components that address common challenges in web development.
-
Facilities for Rapid Development:
WebMVC provides facilities and pre-built solutions for the rapid development of recurring functionalities in web applications, such as internationalization, SEO-friendly URLs, authentication, user management, and role-based access control.
The guidelines that led the development process of WebMVC are the need to having a design environment in which many key principles of software engineering could be easily applied when developing 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 CONVENTION OVER CONFIGURATION - Having an OOP-like, simple, and intuitive naming notation to be used for the logical representations of MVC classes and sub-systems, their correspondent physical representation into files and sub-directories, their usage, as well as for making easy and automatic the object instantiation of Controllers by using HTTP requests without the need of manual configurations of routing
-
INTERNATIONALIZATION SUPPORT Disposing of a simple and useful mechanism for applying language translations of a software application
-
TOOLS AIDED FRAMEWORK Providing a set of software tools to facilitate the prototyping and automatic code generation to be used for building web pages and interacting with MySQL
By putting all these guidelines principles of WebMVC in the order:
- COMPONENT BASED DEVELOPMENT
- AVOID MIXING OF PROGRAMMING LANGUAGES
- NAMING CONVENTION OVER CONFIGURATION
- DECOMPOSITION
- OOP
- INTERNATIONALIZATION SUPPORT
- TOOLS AIDED FRAMEWORK
we could imagine using the acronym of "CAN DO IT" 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!. Let's start with the Setup of WebMVC