Skip to content
Rosario Carvello edited this page Jan 20, 2024 · 80 revisions

Introduction

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 concepts

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

WebMVC features

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:

  1. MVC Architecture:

    • WebMVC follows the Model-View-Controller architecture for organizing applications, separating concerns related to business logic, user interface, and processing responsibilities.
  2. Subsystem Organization:

    • The framework allows for organizing applications into subsystems, which can be beneficial in managing the complexity of larger projects.
  3. 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.
  4. Technology Unmixing:

    • WebMVC aims to avoid mixing client-side programming languages (e.g., HTML, CSS, JavaScript) with server-side programming languages (PHP, SQL). This separation helps in collaboration among individuals with different skills required for building complex projects.
  5. Standard Web Technologies:

    • The framework utilizes standard web technologies without introducing new syntax in client-side and server-side programming languages.
  6. ORM Code Generation:

    • WebMVC offers automatic generation of Object-Relational Mapping (ORM) code by reverse engineering a given MySQL database schema.
  7. Ready-to-Run Components:

    • The framework includes a set of pre-built and customizable software components that address common challenges in web development.
  8. 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.

This feature set suggests that WebMVC aims to provide developers with tools and conventions to streamline the development of web applications while adhering to established architectural principles.

Why WebMVC

The outlined principles and guidelines for developing WebMVC provide a clear insight into the philosophy and goals of the framework. Let's break down each of these principles:

  1. Object-Oriented Programming (OOP):

    • WebMVC is designed to treat web pages as classes, allowing for the application of fundamental OOP principles such as extension, override, reuse, and composition. This approach aims to make the development process more modular and maintainable.
  2. Avoid Mixing of Programming Languages:

    • The framework emphasizes the decoupling of server-side technologies from client-side ones. This separation is intended to prevent the mixing of languages, making it easier to manage and understand code related to GUI design without intertwining it with server-side logic.
  3. Decomposition:

    • WebMVC supports the simultaneous decomposition of an application and web pages using various engineering principles, including MVC, sub-systems, internationalization, page contents, and access roles. This allows for a structured and organized development process.
  4. Component-Based Development:

    • The framework promotes a component-based development approach, offering reusable, customizable, and useful server-side components. These components are designed as MVC parts, streamlining the implementation of recurring patterns in data-intensive web applications.
  5. Naming Convention Over Configuration:

    • WebMVC adopts a naming convention over configuration approach. This involves using an OOP-like, simple, and intuitive naming notation for logical representations of MVC classes and sub-systems. It also simplifies the instantiation of controllers by using HTTP requests without the need for manual configuration of routing.
  6. Internationalization Support:

    • The framework provides a simple and useful mechanism for applying language translations in a software application. This ensures that the application can easily support multiple languages.
  7. Tools-Aided Framework:

    • WebMVC includes a set of software tools to facilitate prototyping and automatic code generation. These tools are intended to streamline the process of building web pages and interacting with MySQL, providing developers with aids for efficient development.

These principles collectively aim to create a framework that not only adheres to sound software engineering practices but also provides developers with a toolset and conventions that simplify and enhance the development of web applications.

Summary

By putting all these guidelines and principles of WebMVC in 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 "CAN DO IT" to indicate the criteria by which a WebMVC application could be designed and developed.

Whats next

Follow this wiki to learn and to start using the framework!. Let's start with the Setup of WebMVC

Clone this wiki locally