This project contains essential parts of PromCMS.
- Improve tests
- Add documentation (Partially done)
- Migrate to Doctrine
-
Migrate to illuminate/database models and still use SleekDBCreate SleekDB Adapter into Doctrine - Improve twig rendering
- Improve events
- Provide better international experience
- Add twig function/tags/filters
- Rethink intl on models (should that info be on models itself?)
- Support MySQL in custom models
- Perhaps support Illuminate/Database again by creating package that adds SleekDB as a db driver
Services are stored in PSR Container by PromCMS. In fact, PromCMS sets those objects and subscribes to them internally from the container.
Let's look at this example code that can be placed inside <your app root>/src/bootstrap.php
:
use PromCMS\Core\Config;
return function (App $app) {
// Access PSR container
$container = $app->getContainer();
// Now you can access whatever - for example Config! It`s fully "type-safe" ;)
$config = $container->get(Config::Class);
// Now you can use it normally (this is boolean which has true if current .env does not have environment specified or has development value)
echo $config->env->development;
}
PromCMS exposes a variety of services and objects that help you with creating your project. Each item has its own documentation page (or even PHPDoc) that you can access by clicking on each item
JWTService::class
ImageService::class
FileService::class
LocalizationService::class
SchemaService::class
RenderingService::class
Session::class
Logger::class
Every PromCMS should have secrets stored in .env. PromCMS stores known configuration in PromCMS\Core\Config which is accessible through PSR Container (see this section for more)
Describes the relative path to where should Logger
log.
- type:
string|null
- default:
null
- example:
SYSTEM_LOGGING_PATHNAME="./.temp/app.log"