https://github.com/drago-ex/simple
:bulb: Easy configuration for single-page sites.
https://github.com/drago-ex/simple
latte nette simple-page tracy
Last synced: 5 months ago
JSON representation
:bulb: Easy configuration for single-page sites.
- Host: GitHub
- URL: https://github.com/drago-ex/simple
- Owner: drago-ex
- License: mit
- Created: 2019-09-27T11:23:54.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2025-01-27T06:38:58.000Z (over 1 year ago)
- Last Synced: 2025-02-28T15:11:23.700Z (over 1 year ago)
- Topics: latte, nette, simple-page, tracy
- Language: PHP
- Homepage:
- Size: 88.9 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
## Drago Simple
Easy configuration for single-page sites.
[](https://raw.githubusercontent.com/drago-ex/simple/master/license)
[](https://badge.fury.io/ph/drago-ex%2Fsimple)
[](https://github.com/drago-ex/simple/actions/workflows/tests.yml)
[](https://github.com/drago-ex/simple/actions/workflows/coding-style.yml)
[](https://www.codefactor.io/repository/github/drago-ex/simple)
[](https://coveralls.io/github/drago-ex/simple?branch=master)
## Requirements
- PHP >= 8.3
- Nette Framework
- Composer
## Knowledge
- [Latte: amazing template engine for PHP](https://github.com/nette/latte)
- [RobotLoader: comfortable autoloading](https://github.com/nette/robot-loader)
- [Nette HTTP Component](https://github.com/nette/http)
- [Tracy - PHP debugger](https://github.com/nette/tracy)
## Installation
```
composer require drago/simple
```
# Traits
## Session Trait
```php
use Drago\Simple\Base\Session;
// Get session instance
$this->session();
```
## Message Trait
```php
use Drago\Simple\Base\Message;
// Save message to session
$this->flashMessage('Message...');
// Retrieve flash message from session
$this->getFlashMessage();
```
## Response Trait
```php
use Drago\Simple\Base\Response;
// Redirect to a URL
$this->redirect('#');
```
## Controller Example
```php
final class Home
{
private Latte\Engine $latte;
public function __construct(Latte\Engine $latte)
{
$this->latte = $latte;
}
}
```
## Template Rendering
```php
public function render(): void
{
$this->latte->render(__DIR__ . '/path/to/dir/template.latte');
}
```
## Passing Parameters to Templates
```php
public function render(): void
{
$this->flashMessage('message...');
$message['message'] = $this->getFlashMessage();
$this->latte->render(__DIR__ . '/path/to/dir/template.latte', $message);
}
```
## Template: Print Message
```latte
{$message}
```
## Template: Default Parameter for Include Files
```latte
{$basePath}
```
## Forms
Install Nette Forms via Composer:
```
composer require nette/forms
```
## Forms Latte Macro
```php
$latte->onCompile[] = function () use ($latte) {
FormMacros::install($latte->getCompiler());
};
```
## Translator
Install the Translator via Composer:
```
composer require drago-ex/translator
```
## Translator Property
```php
private array $lang = ['en', 'cs'];
```
## Translator Language Detection
```php
$translator = new Translator(__DIR__ . '/locale');
$translator->setTranslate((new RequestFactory())->fromGlobals()
->detectLanguage($this->lang)
);
```
## Translator Latte Filter
```php
$latte->addFilter('translate', function ($message) use ($translator) {
return $translator->translate($message);
});
```
## Prepared Package for Simple Project
[https://github.com/drago-ex/simple-project](https://github.com/drago-ex/simple-project)