Core architecture
Diagram below illustrates the overal architecture of the Hubleto platform.
╔════════════════════════════════════════════════════════════════════════════════════════╗
║ Hubleto platform ║
║ ║
║ ┌────────────────────────────────────────────────────────────────────────────────────┐ ║
║ │ Hubleto Core │ ║
║ │────────────────────────────────────────────────────────────────────────────────────│ ║
║ │ - User management, App management, Settings management │ ║
║ │ - MVC, Routing, Translations, Authentication, Permissions │ ║
║ │ - Automation tools │ ║
║ │ - Community apps │ ║
║ └────────────────────────────────────────────────────────────────────────────────────┘ ║
║ ↓ ║
║ ┌────────────────────────────────────────────────────────────────────────────────────┐ ║
║ │ Hubleto App (your development world) │ ║
║ │────────────────────────────────────────────────────────────────────────────────────│ ║
║ │ Loader, Controllers, Models, Views, Translations │ ║
║ └────────────────────────────────────────────────────────────────────────────────────┘ ║
║ ↓ ║
║ ┌────────────────────────────────────────────────────────────────────────────────────┐ ║
║ │ ADIOS Framework │ ║
║ │────────────────────────────────────────────────────────────────────────────────────│ ║
║ │ Application front-end │ Application back-end │ ║
║ │ (Components, Views) │ (Controllers, Models, Database) │ ║
║ │ with React, TailwindCSS, Primereact │ with Symfony, Twig, Eloquent │ ║
║ └────────────────────────────────────────────────────────────────────────────────────┘ ║
╚════════════════════════════════════════════════════════════════════════════════════════╝
Hubleto platform
Hubleto platform provides a set of features to manage a complex project built from various apps and to simplify application development.
These features include:
- User management, App management, Settings manager
- Foundation for MVC, routing, language translations, user authentication and permissions management
- Automation tools
- Repository of community apps
All these features are made available to you right after you run php hubleto init
in your console (see more about CLI agent) in your project's root folder.
php hubleto init # command to initialize Hubleto project
Customizing Hubleto Core
When you initialize your Hubleto project, all Hubleto Core features will be available to you. However, there can be numerous situations in which you might need different implementation of one these features and so all Hubleto Core features are fully customizable.
In most cases, customizations are implemented in two steps:
- implement your custom, fully separated class
- modify
\HubletoMain
class insrc/Main.php
to use your new class.
Adios framework
Hubleto uses Adios framework. Read more about this framework here.
Default features
In following chapters, we will learn how default features of Hubleto are implemented and we will provide examples how you may customize them for your project.