- PHP config
- Setting up PHP config
- PHP config JSON example
- PHP YAML example
- Merging configuration files
- Code configuration with AbstractConfig
- Конфигурационные файлы фреймворка
- apps.php
- Файл routing.php
- db.php
- config.php
- net.php
- Описания элементов массива
- Файл config.php: где находится, как его настроить, что в него сохраняется
- Файл «config.php»: где находится и как редактировать
- Настройка файла «config.php»
- Заключение
PHP config
PHP config tutorial shows how to create configuration files in PHP. It uses the hassankhan/config package.
$ php -v php -v PHP 8.1.2 (cli) (built: Aug 8 2022 07:28:23) (NTS) .
The hassankhan/config is a lightweight configuration file loader that supports PHP, INI, XML, JSON, and YAML files. If we work with YAML files, we need to install symfony/yaml package.
Setting up PHP config
First, we install the necessary packages.
$ composer req hassankhan/config symfony/yaml
We install two packages with composer.
This is composer.json file. We also enable autoloading.
PHP config JSON example
In the first example, we read the configuration data from a JSON file.
We have db.json in the config directory.
get('app.port') . "\n"; echo $conf->get('db.host') . "\n"; echo $conf->get('db.port') . "\n"; echo $conf->get('db.name') . "\n";
We load the configuration file either with Config::load or Config . The values are retrieved with the get method. The dot character is used to go through the hierarchy of attributes.
$ php read_json_cfg.php 3000 localhost 27017 ydb
PHP YAML example
In the second example, we read configuration data from a YAML file.
app: port: 3000 db: host: localhost port: 27017 name: ydb
get('app.port') . "\n"; echo $conf->get('db.host') . "\n"; echo $conf->get('db.port') . "\n"; echo $conf->get('db.name') . "\n";
The example reads configuration file from the db.yaml file.
$conf = new Config('config/db.yaml', new Yaml);
In the second parameter, we provide the configuration parser.
$ php read_yaml_cfg.php 3000 localhost 27017 ydb
Merging configuration files
The merge method groups configuration files.
app: port: 3000 db: host: localhost port: 27017 name: ydb
This is the first configuration file.
This is the second configuration file.
merge($conf2); echo $conf->get('db.port') . "\n"; echo $conf->get('db.name') . "\n"; echo $conf->get('version') . "\n";
In the example we merge the two configuration files. We can access attributes from both files with one object.
Code configuration with AbstractConfig
We can specify the configuration details in code by using AbstractConfig .
'localhost', 'port' => 80, 'servers' => [ 'host1', 'host2', 'host3' ] ]; > >
The configuration is specified in the AbstractConfig’s getDefaults file.
get('host') . "\n"; echo $conf->get('port') . "\n"; echo $conf->get('servers')[0] . "\n";
The example reads the configuration from the code.
In this tutorial, we have shown how to read configuration files in PHP with hassankhan/config package.
Конфигурационные файлы фреймворка
Все конфигурационные файлы фреймворка являются файлами PHP. Кроме редких исключений, конфигурационный файл представляет собой PHP-код возврата именованного массива параметров следующего вида:
Эти файлы находятся в директории wa-config/ .
apps.php
Файл apps.php содержит список установленных приложений и управляет «видимостью» этих приложений в бекенде.
true, 'stickies' => true, 'guestbook' => true, 'installer' => true );
APP_ID установленных приложений являются ключами именованного массива. Значение true для ключа является инструкцией системе отображать иконку и название приложения в бекенде фреймворка.
Файл routing.php
Общесистемный файл маршрутизации распределяет адресное пространство фронтенда между приложениями.
Пример системного файла routing.php :
array( array('url' => 'blog*', 'app' => 'blog'), array('url' => 'shop*', 'app' => 'shop'), array('url' => 'guestbook/*', 'app' => 'guestbook'), array('url' => '*', 'app' => 'site'), ) );
Подробнее о маршрутизации фронтенда см. раздел « Маршрутизация запросов на фронтенд».
db.php
Файл db.php хранит настройки подключения к базе данных.
array( 'type' => 'mysql', 'host' => 'localhost', 'user' => 'wafw', 'password' => 'super-parol', 'database' => 'wafw' ), );
config.php
Файл config.php хранит некоторые системные настройки.
true, 'backend_url' => 'admin', 'mod_rewrite' => true, );
Список некоторых возможных параметров в файле config.php :
- debug — допустимые значения: true / false . Включает / выключает отображение подробной информации об ошибках выполнения скриптов. Для разработки приложений рекомендуется установить этот параметр true .
- backend_url — путь к бекенду от корня установки фреймворка. Значение по умолчанию: webasyst .
- mod_rewrite — допустимые значения: true / false . Определяет, установлен ли на сервере mod_rewrite. Этот параметр определяется автоматически на этапе установки.
- default_host_domain — домен по умолчанию, который должны использовать системные классы фреймворка в случаях, когда не удаётся автоматически определить текущий домен, на котором установлен фреймворк. Например, при выполнении CLI-контроллеров.
- default_root_url — корневой URL по умолчанию, который должны использовать системные классы фреймворка в случаях, когда не удаётся автоматически определить корневой URL, на котором доступен фреймворк.
- image_adapter — идентификатор механизма обработки изображений, выбранного в системных настройках.
- trusted_proxies — массив IP-адресов прокси-серверов, используемых на хостинге, при обнаружении любого из которых в значении серверной переменной REMOTE_ADDR настоящий IP-адрес пользователя определяется альтернативными способами, например, из переменной HTTP_X_FORWARDED_FOR .
- disable_mail_ssl_until — строка, поддерживаемая функцией strtotime() , для обозначения времени, до которого отключена проверка SSL-сертификатов для подключения к серверам электронной почты. Может использоваться для временного доступа к заведомо безопасному почтовому серверу с нарушенной настройкой сертификатов.
net.php
Файл net.php содержит параметры по умолчанию для подключения к удалённым ресурсам с использованием класса waNet .
Шаблон для составления файла net.php :
array( 'timeout' => 15, 'verify' => true, 'md5' => false, 'log' => false, 'proxy_host' => null, 'proxy_port' => null, 'proxy_user' => null, 'proxy_password' => null, 'interface' => null, 'priority' => array( 'curl', 'fopen', 'socket', ), 'ssl' => array( 'key' => '', 'password' => '', 'cert' => '', ), );
В файле нужно оставить только те элементы массива, с помощью которых нужно переопределить стандартные значения, указанные в поле options класса waNet .
Описания элементов массива
- timeout — период времени в секундах, в течение которого будет выполняться ожидание ответа.
- verify — флаг проверки SSL-сертификата запрашиваемого ресурса.
- md5 — флаг отправки заголовка Content-MD5 .
- log — имя лог-файла, в который должны сохраняться сообщения об ошибках.
- proxy_host — имя хоста прокси-сервера.
- proxy_port — номер порта для подключения к прокси-серверу.
- proxy_user — имя пользователя для подключения к прокси-серверу.
- proxy_password — пароль для подключения к прокси-серверу.
- interface — имя ипользуемого сетевого интерфейса для подключения через curl.
- priority — массив для определения приоритета использования методов подключения к удалённому ресурсу; используется первый метод в указанном списке, который поддерживается запрашиваемым ресурсом.
- ssl — параметры закрытого ключа SSL для подключения через curl:
- key — имя файла с закрытым ключом
- password — пароль для использования закрытого ключа
- cert — имя файла с PEM-сертификатом
Файл config.php: где находится, как его настроить, что в него сохраняется
Файл «config.php»: где находится и как редактировать
- войти в личный кабинет хостинга;
- найти файлы вашего сайта;
- отыскать в них папку «Wordpress»;
- в этой папке отыскать файл «config.php»;
- отредактировать файл.
Настройка файла «config.php»
- вы можете включить функцию с какой-либо константой, если укажете ее параметр «true»;
- вы можете выключить функцию с какой-либо константой, если укажете ее параметр «false».
- «DB_NAME» — это название базы данных;
- «DB_USER» — имя администратора базы данных;
- «DB_PASSWORD» — пароль доступа к базе данных;
- «DB_HOST» — имя сервера базы данных;
- «DB_CHARSET» — кодировка, которая используется в базах данных;
- «DB_COLLATE» — схема сопоставления базы данных;
- «WP_DEBUG» — режим отладчика, который по умолчанию отключен;
- «WP_HOME» — ссылка на WordPress-репозиторий вашего проекта;
- «WP_SITEURL» — ссылка на ваш сайт;
- «WP_CONTENT_DIR» — расположение папки «wp-content»;
- «WP_PLUGIN_DIR» — расположение папки «wp-plugins»;
- «WP_UPLOAD_DIR» — расположение папки «wp-uploads»;
- «WP_DEFAULT_THEME» — указание темы по умолчанию для проекта на WordPress;
- «WP_POST_REVISIONS» — количество ревизий, где каждая ревизия состоит из копий постов;
- «EMPTY_TRASH_DAYS» — количество дней, сколько будут сохраняться посты после их удаления;
- «WP_MEMORY_LIMIT» — указание лимита php-памяти;
- «WP_ALLOW_MULTISITE» — включение или отключение функции «мультисайт»;
- «FORCE_SSL_LOGIN» — принудительное включение SSL-сертификата на странице авторизации;
- «FPRCE_SSL_ADMIN» — принудительное включение SSL-сертификата для админки WordPress;
- «AUTOMATIC_UPDATER_DISABLE» — включение или отключение функции автоматического обновления WordPress;
- «WP_ALLOW_REPAIR» — включение или отключение функции оптимизации базы данных;
- множество ключей шифрования и соли для шифрования, например: «AUTH_KEY», «SECURE_AUTH_KEY», «LOGGED_IN_KEY», «NONCE_KEY», «AUTH_SALT», «SECURE_AUTH_SALT», «LOGGED_IN_SALT», «NONCE_SALT»;
- и др.
Заключение
После прочтения статьи вопрос « г де находится файл «config.php»?» не должен стоять перед вами. Это системный файл, который располагается непосредственно на хостинге вашего сайта. Получить к нему доступ из админки CMS не получится.
Настройка файла «config.php» — дело несложное. Но важно помнить, что редактирование этого файла влечет внесение изменений сразу в весь проект на WordPress , п оэтому перед редактирование м не забудьте сделать копию работающего оригинала файл а «config.php», чтобы в случае чего вы смогли восстановить работу своего сайта.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.