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

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


software:development:demo:cms:ucms:creating_file_config

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

Только авторизованные участники могут оставлять комментарии.
software/development/demo/cms/ucms/creating_file_config.txt · Последнее изменение: 127.0.0.1