Настройка
Оглавление
1.
Введение
2.
Список настроек
3.
Окружение
4.
Базовые настройки
5.
Изменение настроек
Введение #
К оглавлению
Фреймворк готов к эксплуатации без единой конфиги. По умолчанию в нем установлены самые популярные настройки.
Однако, вместе с тем, он имеет достаточно большое количество опций.
Настраивать фреймворк можно в двух уровнях. На уровне приложения, и на
уровне веб-директории. Приоритет снизу вверх.
Настройки сайта самые главные, они перезаписывают как настройки приложения, так и дефолтные установки фреймворка.
Настройки приложения тоже перезапишут установки фреймворка по умолчанию.
Конфиги - это обычные php-файлы, возвращающие массив.
1
2
3
4
5
6
7
<?php
return [
// Здесь настройки в виде ключ => значение
];
Размещать конфигурационные файлы, а также давать им названия можно где
угодно и как угодно. Главное «скормить» их фреймворку. Эти массивы
должны передаваться аргументами в метод инициализации фреймворка.
Подробнее об этом в разделе "
Первый старт"
Сами настройки - это пара
"опция" => "режим".
Список настроек #
К оглавлению
На сегодняшний день доступны следующие установки (подробности в соответствующих разделах).
Первое значение по умолчанию:
Переменные кружения #
К оглавлению
Эти настройки полезны, если фреймворк используется для построения API. По умолчанию установлены следующие значения:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'SERVER_PROTOCOL' => 'HTTP/1.1',
'REQUEST_METHOD' => 'GET',
'SCRIPT_NAME' => '',
'REQUEST_URI' => '',
'QUERY_STRING' => '',
'SERVER_NAME' => 'localhost',
'SERVER_PORT' => 80,
'HTTP_HOST' => 'localhost',
'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'HTTP_ACCEPT_LANGUAGE' => 'ru-ru,ru;q=0.8,en-us;q=0.6,en;q=0.4',
'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'HTTP_USER_AGENT' => 'ABC Framework',
'REMOTE_ADDR' => '127.0.0.1',
'REQUEST_TIME' => time(),
'REQUEST_TIME_FLOAT' => microtime(true),
Базовые настройки #
К оглавлению
Эти опции содержат следующие установки по умолчанию:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Мидлвары для приложения
'middleware' => false,
// Секция общей конфигурации
'settings' => [
// Название (или путь до) директории с пользовательскими скриптами
'application' => 'App',
// Название (или путь до) директории с контроллерами
'dir_controllers' => 'Controllers',
// Название (или путь до) директории с моделями
'dir_models' => 'Models',
// Название (или путь до) директории со слоем вьюшек
'dir_views' => 'Views',
],
// Маршрутизация по умолчанию
'route_rules' => [
'/' => 'main/index',
],
'default_route' => [
'controller' => 'Main',
'action' => 'Index'
],
// Вид URI в ссылках
'uri_manager' => [
// ЧПУ (Человеко Приятный Урл)
'pretty' => true,
// Показать/скрыть имя скрипта
'show_script' => false,
// HTTPS
'https' => false,
// Абсолютный путь
'absolute' => false,
],
// Актив-рекорд
'active_record' => [
'camelCase' => true,
],
// Настройки ошибок
'errors' => [
'error_reporting' => E_ALL,// Общий уровень ошибок
'level_500' => E_ALL & ~E_NOTICE,// Уровень ошибок для 500
'abc_404' => true,
'abc_500' => false,
],
// Настройки дебаггинга
'debug' => [
'language' => 'Ru', // Язык перевода отчета об ошибках
'bugsnare' => true, //Режим дебаггинга
'error_reporting' => E_ALL,// Уровень ошибок для дебаггера
],
////////////////////////////////////////////////////////////////////
// НАСТРОЙКИ СЕРВИСОВ
// Секция шаблонизатора
'template' => [
// Шаблонизатор (по умолчанию встроенный)
'abc_template' => true,
// Путь до каталога с шаблонами
'dir_template' => dirname(dirname(dirname(__DIR__)))
. ABC_DS .'www'. ABC_DS .'theme'
. ABC_DS .'tpl'. ABC_DS,
// Макет (главный шаблон), если он используется
'layout' => 'index',
// Расширение файлов шаблонов
'ext' => 'tpl',
// Запрещает использовать PHP в шаблонах (только для встроенного)
'php' => false,
// Функции, фидимые внутри шаблонизатора (только для встроенного)
'functions' => [],
],
// Конструктор SQL запросов
'db_command' => [
'driver' => 'PDO', // Драйвер СУБД по умолчанию
'db_type' => 'Mysql' // Тип используемой СУБД
],
// Язык валидатора
'validator' => [
'language' => 'Ru',
],
// Язык майлера
'mailer' => [
'language' => 'Ru',
],
Изменение настроек #
К оглавлению
Если вы хотите использовать другую конфигурацию, можно изменить любую из настроек в своих конфигурационных файлах.
Допустим пользовательские скрипты потребуется расположить в папке
Protected, как одно время советовал фреймворк
Yii. Тогда в конфиге приложения можно сделать так:
1
2
3
4
5
6
7
return [
'settings' => [
'application' => 'Protected',
],
];
Или директория с доступом по HTTP может называться по имени хоста, а не www. Тогда в конфигурационном файле сайта лучше прописать такую настройку:
1
2
3
4
5
6
7
8
9
10
return [
'template' => [
'dir_template' => dirname(dirname(__DIR__))
.'/'. basename(dirname(__DIR__))
.'/theme/tpl/',
]
];
И тогда фреймворк подцепит шаблоны из директории с любым названием, а не только www..
Кроме того, можно прописывать любые свои опции в любую конфигу, и тогда
их можно получить в пользовательских скриптах из контейнера. Например,
нам понадобился путь до папки HTTP:
1
2
3
4
5
6
7
8
9
10
11
12
return [
'template' => [
'dir_template' => dirname(dirname(__DIR__))
.'/'. basename(dirname(__DIR__))
.'/theme/tpl/',
],
// Добавляем собственную настройку
'base_dir' => dirname(__DIR__),
];
Теперь можно получить её в любом месте вот так:
1
2
3
4
$baseDir = Abc::getConfig('base_dir');
Ну и остальные опции точно так же. Хоть все вместе, хоть по отдельности.