GEMVC Documentation

Complete guide to building modern, secure PHP applications with GEMVC framework

Architecture Overview

Core Components

GEMVC follows a layered architecture pattern with clear separation of concerns:

1. Service Layer (/app/api)

  • Entry point for all API requests
  • Handles request validation
  • Manages authentication
  • Routes to appropriate controllers

2. Controller Layer (/app/controller)

  • Processes business logic
  • Manages data flow
  • Returns appropriate responses
  • Handles error cases

3. Model Layer (/app/model)

  • Extends from Table
  • Adds business logic
  • Processes data
  • Handles relationships

4. Table Layer (/app/table)

  • Database abstraction
  • Type-safe properties
  • Fluent query interface
  • Data persistence

Component Hierarchy

classDiagram class Service { +ApiService +SwooleApiService } class Controller { +processRequest() +handleResponse() } class Model { +businessLogic() +relationships() } class Table { +_type_map +getTable() +CRUD operations } class PdoQuery { +query methods +lazy loading } class QueryExecuter { +execute() +transaction handling } class DatabasePoolFactory { +getInstance() +create pools } Service --|> Controller : uses Controller --|> Model : uses Model --|> Table : extends Table --|> PdoQuery : extends PdoQuery *-- QueryExecuter : composition QueryExecuter --|> DatabasePoolFactory : uses

Next Steps