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