Представления (Views)
- Определение и принципы
- Правила
- Шаблонизаторы
- Структура папок
- Пример кода
- Пространство имен
- Поддержка разных тем
Определение и принципы
Прочтите Определения и принципы 
Правила
- Представления СЛЕДУЕТ создавать внутри модулей, в этом случае они будут автоматически доступны для использования в веб-контроллерах.
Шаблонизаторы
Darklyy поддерживает несколько шаблонизаторов:
- Шаблонизатор от Symfony Twig
- Шаблонизатор от Laravel Blade
Структура папок
Для общих представлений
 - resources       
    - views
        - home.blade.php
        - profile.html.twig
        - ...
Для представлений модулей
 - usr
    - modules
        - {module-name}
            - UI
                - WEB
                    - Views
                        - home.blade.php
                        - profile.html.twig
                        - ...
Примеры кода
Приветственная страница
<!DOCTYPE html>
<html>
<head>
    <title>Добро пожаловать</title>
</head>
<body>
    <div class="container">
        <div class="content">
            <div class="title">Добро пожаловать</div>
        </div>
    </div>
</body>
</html>
Вызов представления из контроллера
Blade
class Controller extends WebController
{
    public function sayWelcome()
    {
        return view('welcome');
    }
}
Twig
class Controller extends WebController
{
    public function sayWelcome()
    {
        display('welcome');
    }
}
Пространство имен
По умолчанию все представления имеют пространство имен как camelCase имени модуля.
Например, к представлению с именем welcomeHomeview(home::welcome)
Если вы попытаетесь получить к нему доступ без пространства имен view('welcome')
- Файлы представлений в папке Resource являются исключением из этого правила и будут иметь пространство имен без имени модуля, например. view('home')
- Также исключение действует если используются разные темы
Поддержка разных тем
Darklyy поддерживает реализацию разных тем в одном приложении. Для активации данной функции необходимо в файле конфигурации theme.config.phpTheme::set('theme-name');
Внимание при использовании темы меняется структура расположение фалов представлений. В путь добавляется папка с именем темы.
Структура папок
Для общих представлений
 - usr
    - themes
        - {theme-name}           
           - views
               - home.blade.php
               - profile.html.twig
               - ...
Для представлений модулей
 - usr
    - modules
        - {module-name}
            - UI
                - WEB
                    - Views
                        - {theme-name}
                            - home.blade.php
                            - profile.html.twig
                            - ...
Методы
// Установить тему
Theme::set('theme-name');
// Получить текущую тему
Theme::active();
// Отключить использование тем. Таким образом, ни одна тема не будет активной.
Theme::clear();
// Получить путь к теме
Theme::path($path = 'views');
// Результат:
// /usr/themes/active-theme/views
Theme::path($path = 'views', $themeName = 'admin');
// Результат:
// /usr/themes/admin/views
Theme::getViewPaths();
// Результат:
// [
//     '/usr/themes/admin/views',
//     '/resources/views'
// ]
Middleware для разных тем
Примеры использования:
// Пример 1: установить тему для определенного маршрута
Route::get('/dashboard', 'DashboardController@index')
    ->middleware('theme:dashboard-theme');
// Пример 1: установить тему для группы маршрутов
Route::group(['middleware'=>'theme:admin-theme'], function() {
    // "admin-theme" будет применено для маршрутов указанных в этом кейсе
});