Base Abstractions
Core classes that power every Ignis application - from the Application entry point to Repositories for data access.
Quick Reference
| Class | Purpose | Extends |
|---|---|---|
BaseApplication | Application entry point, DI container | AbstractApplication |
BaseController | HTTP route handlers | - |
BaseService | Business logic layer | - |
BaseProvider | Factory pattern for runtime instantiation | BaseHelper |
BaseComponent | Pluggable feature modules | - |
BaseDataSource | Database connections | - |
BaseEntity | Model definitions | - |
DefaultCRUDRepository | Full CRUD operations | PersistableRepository |
ReadableRepository | Read-only operations | AbstractRepository |
Architecture
┌─────────────────────────────────────────────────────────────┐
│ BaseApplication │
│ (DI Container + Lifecycle + Server Management) │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ BaseController│ │ BaseService │ │BaseComponent │ │
│ │ (HTTP Layer) │ │(Business Logic)│ │ (Plugins) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────────────┘ │
│ │ │ │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌──────────────────┐ │
│ │DefaultCRUDRepository│ │
│ │ (Data Access) │ │
│ └────────┬──────────┘ │
│ │ │
│ ┌────────┴────────┐ │
│ ▼ ▼ │
│ ┌────────────┐ ┌────────────┐ │
│ │BaseDataSource│ │ BaseEntity │ │
│ │(Connection) │ │ (Schema) │ │
│ └─────────────┘ └────────────┘ │
│ │
└──────────────────────────────────────────────────────────────┘What's in This Section
Core Application
- Application -
BaseApplicationclass, resource registration, lifecycle hooks - Bootstrapping - Startup sequence,
initialize()flow
HTTP Layer
- Controllers - Route handlers, decorators, request/response handling
- Middlewares - Built-in middlewares for error handling, logging, and request processing
- Services - Business logic, injectable services
Dependency Injection
- Dependency Injection - Container, bindings,
@injectpatterns - Providers - Factory pattern for configuration-driven instantiation
- Components - Pluggable modules, component lifecycle
Data Layer
- Models & Enrichers -
BaseEntity, schema definitions, enrichers - DataSources - Database connections, auto-discovery
- Repositories - CRUD operations, filtering, relations
- Filter System - Query filter types and operators
Class Hierarchy
AbstractApplication
└── BaseApplication ──────► Your Application
AbstractRepository
├── ReadableRepository
│ └── PersistableRepository
│ └── DefaultCRUDRepository ──────► Your Repository
│
BaseController ──────► Your Controller
BaseService ──────► Your Service
BaseProvider ──────► Your Provider
BaseComponent ──────► Your Component
BaseDataSource ──────► Your DataSource
BaseEntity ──────► Your ModelRelated: Core Concepts Guide | Persistent Layer Guide