Содержание
7.2. Файл config.ini
Введение
config.ini - это файл конфигурации нашего приложения (ядра), мы с вами ничего записывать в него самостоятельно не будем и в конце этой главы мы его удалим. Этот файл будет создаваться при установке нашего приложением и в него будут записаны файлы конфигурации.
В данном случае мы создаем пустой файл config.ini для проверки работы логики установщика. А именно:
Установщик проверит, есть ли в директории /ucms/includes файл config.ini, что будет означать, что
установка уже произведена и повторная не требуется и перенаправит пользователя
на страницу установленой конфигурации, в случае отсутствия файла config.ini продолжится установка.
Добавим в нашу дерикторию тестов, тестовый файл config_test.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 не существует"; } ?>
Сохраним изменения и проверим работу кода в браузере
Заходим в директорию includes и перемещаем файл config.ini в директорию demo
Проверим снова работу кода файла config_test.php в браузере
Получаем сообщение: Файл /volume1/web/ucms/includes/config.php не существует
В директории includes и в директории /test создаем файл config_test_2.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; }
Запись данных в **config.ini**
Откроем файл config_test_2.php в браузере
Мы видим сообщение «Ошибка чтения INI-файла.» и «Запись в файл прошла успешно!»
Чтение данных из **config.ini**
Обновим страницу веб-браузера
файл config.ini в директории /includes создан и выводится значения переменных $server и $port в сообщении: server: localhost port: 3000
Откроем созданный файл config.ini в блокноте
Мы видем записи нашего массива в файле. Перемещаем config.ini в директорию demo