Инструменты пользователя

Инструменты сайта


software:development:demo:cms:ucms:creating_file_config

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:development:demo:cms:ucms:creating_file_config [2025/05/01 14:04] – внешнее изменение 127.0.0.1software:development:demo:cms:ucms:creating_file_config [2025/05/11 20:35] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== 7.2. Файл config.ini ======
 +=====Введение=====
 +**config.ini** - это файл конфигурации нашего приложения (ядра), мы с вами ничего записывать в 
 +него самостоятельно не будем и в конце этой главы мы его удалим. 
 +Этот файл будет создаваться при установке нашего приложением и в него будут записаны файлы конфигурации.
  
 +В данном случае мы создаем пустой файл **config.ini** для проверки работы логики установщика. А именно: \\  
 +Установщик проверит, есть ли в директории **/ucms/includes** файл **config.ini**, что будет означать, что 
 +установка уже произведена и повторная не требуется и перенаправит пользователя
 +на страницу установленой конфигурации, в случае отсутствия файла **config.ini** продолжится установка.
 +
 +Добавим в нашу дерикторию тестов,  тестовый файл **config_test.php** и в него запишем следующий код:
 +
 +<code php config_test.php>
 +<!--  config_test.php  -->
 +
 +<?php
 + /* Подключем файл cons.php из директории includes  */
 +    include "../includes/cons.php";
 + /* Присваиваем переменной $file_config значение константы FOLDER 
 + (а это директория ucms, записанная в файле cons.php)и добовляем 
 + '/includes/config.php' - директорию includes и искомый файл config.ini */
 +    $file_config = FOLDER . '/includes/config.ini';
 + /* Если config.config.ini существует */
 +        if (file_exists($file_config)) {
 + /* выводим запись о существовании */
 + echo "Файл $file_config существует";
 + /* Иначе выводим запись о существовании*/
 + } else {
 + echo "Файл $file_config не существует";
 + }
 +?>
 +</code>
 +Сохраним изменения и проверим работу кода в браузере
 +
 +{{:software:development:demo:cms:ucms:ucms_kernel_demo_book_11.png?|}}
 +
 +Заходим в директорию **includes** и перемещаем файл **config.ini** в директорию **demo**
 +
 +{{:software:development:demo:cms:ucms:ucms_kernel_demo_book_12.png?|}}
 +
 +Проверим снова работу кода файла **config_test.php** в браузере
 +
 +{{:software:development:demo:cms:ucms:ucms_kernel_demo_book_13.png?|}}
 +
 +Получаем сообщение:
 +Файл /volume1/web/ucms/includes/config.php **не** существует
 +
 +В директории **includes** и в директории **/test** создаем файл **config_test_2.php**
 +<code php config_test_2.php>
 +<!--  config_test_2.php  -->
 +<?php 
 +// Создание и вызов параметров из .ini файла
 +////////////////////////////////////////////
 +/* задаем переменной  значение $config 
 +* parse_ini_file - обрабатывает конфигурационный файл
 +* ../../includes/config.ini - путь к config.ini
 +* ,true); - обрабатываем с секциями (зпголовками)
 +*/
 +$config = parse_ini_file("../includes/config.ini",true);
 +// Проверьте, успешно ли прочитан ini-файл.
 +// переменная $config не ровно ЛОЖЬ
 +if ($config !== false) {
 +    // Доступ к индивидуальным настройкам
 +
 + $server = $config['database']['server'];
 +      echo "server: " . $server . "\n";
 + $port = $config['database']['port'];
 +      echo "port: " . $port . "\n";
 +} else {
 +    echo "Ошибка чтения INI-файла.";
 +}
 +
 +// Создаем массив пар
 +$databaseSections = [
 +    'server' => 'localhost',
 +    'port' => 3000,
 +];
 +
 +// Записать конфигурацию в раздел «'database'»
 +$success = write_to_ini($databaseSections, 'database', '../includes/config.ini');
 +
 +// Проверим, успешно ли выполнена запись в файл.
 +if ($success) {
 +    echo "Запись в файл прошла успешно!";
 +} else {
 +    echo "Ошибка записи INI-файла.";
 +}
 +// Функция записи настроек в определенный раздел INI-файла
 +function write_to_ini($config, $section, $file) {
 +    $content = "\n; Application Configuration Settings\n\n[$section]\n; Configuration\n";
 +
 +    foreach ($config as $key => $value) {
 +        $content .= "$key = $value\n";
 +    }
 +
 +    // Добавить содержимое в файл
 +    return file_put_contents($file, $content, FILE_APPEND) !== false;
 +}
 +</code>
 +=== Запись данных в **config.ini** ===
 +Откроем файл **config_test_2.php** в браузере
 +
 +{{:software:development:demo:cms:ucms:ucms_kernel_demo_book_14.png?|}}
 +
 +Мы видим сообщение "Ошибка чтения INI-файла." и "Запись в файл прошла успешно!"
 +
 +=== Чтение данных из **config.ini** ===
 +
 +Обновим страницу веб-браузера
 +
 +{{:software:development:demo:cms:ucms:ucms_kernel_demo_book_15.png?|}}
 +
 +файл **config.ini** в директории **/includes** создан и выводится значения переменных 
 +**$server** и **$port** в сообщении: server: **localhost** port: **3000**
 +
 +Откроем созданный файл **config.ini** в блокноте
 +
 +{{:software:development:demo:cms:ucms:ucms_kernel_demo_book_16.png?|}}
 +
 +Мы видем записи нашего массива в файле. Перемещаем **config.ini** в директорию **demo**
 +
 +<note blue>
 +<wrap left>← [[software:development:demo:cms:ucms:creating_file_cons|7.1. Файл cons.php]]</wrap> 
 +<wrap right>[[software:development:demo:cms:ucms:creating_file_function|7.3. Файл function.php]] →</wrap>
 +</note>