Easy configuration for single-page sites.
- PHP 8.3 or higher
- composer
- Latte: amazing template engine for PHP
- RobotLoader: comfortable autoloading
- Nette HTTP Component
- Tracy - PHP debugger
composer require drago/simple
use Drago\Simple\Base\Session;
// Get session instance
$this->session();
use Drago\Simple\Base\Message;
// Save message to session
$this->flashMessage('Message...');
// Retrieve flash message from session
$this->getFlashMessage();
use Drago\Simple\Base\Response;
// Redirect to a URL
$this->redirect('#');
final class Home
{
private Latte\Engine $latte;
public function __construct(Latte\Engine $latte)
{
$this->latte = $latte;
}
}
public function render(): void
{
$this->latte->render(__DIR__ . '/path/to/dir/template.latte');
}
public function render(): void
{
$this->flashMessage('message...');
$message['message'] = $this->getFlashMessage();
$this->latte->render(__DIR__ . '/path/to/dir/template.latte', $message);
}
<p n:if="$message">{$message}</p>
{$basePath}
Install Nette Forms via Composer:
composer require nette/forms
$latte->onCompile[] = function () use ($latte) {
FormMacros::install($latte->getCompiler());
};
Install the Translator via Composer:
composer require drago-ex/translator
private array $lang = ['en', 'cs'];
$translator = new Translator(__DIR__ . '/locale');
$translator->setTranslate((new RequestFactory())->fromGlobals()
->detectLanguage($this->lang)
);
$latte->addFilter('translate', function ($message) use ($translator) {
return $translator->translate($message);
});