solenoid / core
HTTP MVC Framework
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=7.3.0
- solenoid/bin: ^1.0.0
- solenoid/cdn: ^1.0.0
- solenoid/collection: ^1.0.0
- solenoid/core-lib: ^1.0.0
- solenoid/csv: ^1.0.0
- solenoid/datetime: ^1.0.0
- solenoid/debug: ^1.0.0
- solenoid/keygen: ^1.0.0
- solenoid/mysql: ^1.0.0
- solenoid/network: ^1.0.0
- solenoid/rpc: ^1.0.0
- solenoid/smtp: ^1.0.0
- solenoid/sse: ^1.0.0
- solenoid/text: ^1.0.0
- solenoid/vector: ^1.0.0
- solenoid/xml: ^1.0.0
- solenoid/zip: ^1.0.0
This package is auto-updated.
Last update: 2024-12-18 00:39:13 UTC
README
Core is a smart HTTP/CLI MVC framework for building easy or very complex endpoints with a large set of integrated backend libraries.
The current project contains a sample web app to make developers easier to learn the internal logic of this framework.
For the official and complete documentation you should navigate to Knowledge Base.
Setup
To create a new Core project you just have to run the following commands from your terminal :
git clone https://github.com/Solenoid-IT/php-core ./core
cd ./core/private
php x init
Requirements
OS >= Ubuntu 22.04.1 LTS
WebServer >= Apache 2.4
Runtime-Environment >= PHP 7.3
Contexts
Core can run both HTTP and CLI contexts with the same codebase :
HTTP = path resolver -> gate -> middleware groups -> controller -> response
CLI = task runner -> response
Store, model and service objects are shared between HTTP and CLI so they are defined once and are usable on both contexts.
Logs
Core will capture and log both all of the thrown errors and every execution call
Environments
Core give you the ability to run under different specialized environment types ("dev" and "prod" are the reserved ones but you can define your custom ones) :
dev = This type will show you every error in the system and use uncached version of the web assets (css, js or other static resources) when you define the asset url with the function Core::asset
prod = This type will hide every error from the system (security issues) and use cached version of the web assets to improve the frontend performance and ux
custom = This type can be defined in a custom way
( Error logs will be tracked independently from the current environment settings )
Utility
Core has an integrated top-level CLI utility "x" to make some useful operations like to initialize the project, install packages, manage git repos, creating objects (stores, models, services, middlewares or controllers), manage apache, certs and crons.
Routes
Core has a map-file to define how to resolve a request by its URL path.
Route -> Goes to a destination object (you can attach multiple middleware groups or tags to it)
Path -> Can be static or dynamic (containing placeholder-variables)
Verb -> HTTP verb of the path (ex. GET, RPC, SSE or DELETE)
Destination -> Object that will run the stack ( gate -> middleware groups -> controller )
Integrations
Core has a built-in support for SvelteKit as frontend JS framework.
You can install it by executing : php x svelte install
UI
This project uses the sb-admin as UI template
Performance
Memory used for bootstrapping (minimal consumption) :
HTTP -> 216 B
CLI -> 96 B
License
Solenoid Core framework is subjected to MIT license so it is opensource friendly