Skip to content

Base Abstractions

Core classes that power every Ignis application - from the Application entry point to Repositories for data access.

Quick Reference

ClassPurposeExtends
BaseApplicationApplication entry point, DI containerAbstractApplication
BaseControllerHTTP route handlers-
BaseServiceBusiness logic layer-
BaseProviderFactory pattern for runtime instantiationBaseHelper
BaseComponentPluggable feature modules-
BaseDataSourceDatabase connections-
BaseEntityModel definitions-
DefaultCRUDRepositoryFull CRUD operationsPersistableRepository
ReadableRepositoryRead-only operationsAbstractRepository

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 - BaseApplication class, 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

Data Layer

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 Model

Related: Core Concepts Guide | Persistent Layer Guide