webirus
@webirus
Тыжверстальщик! Наверстай мне упущенное...

Очередной глупый вопрос. Как сделать свой файл конфиг?

Добрый день.
Я постоянно это говорю, и повторюсь еще раз - я совсем не php-шник, но мне надо сделать)
В файле index.php выводятся простые переменные, типа Название компании $company_name, Телефон компании &company_phone, и так далее, переменных много.
Часть из них забивается через админку, а часть мне нужно скрыть для личного использования.
Чтобы потом было удобно менять просто в одном файле.
Какой файл создать (какой формат)? И как сослаться на конкретную строку файла?
  • Вопрос задан
  • 1502 просмотра
Решения вопроса 1
Subotinn
@Subotinn
создаете файл config.php (название не принципиально)
в index.php, там где у вас идет html c header footer content body head
вставляете следующий код в самое начало файла:
<?php
include 'config.php';
?>
<html>
<head>
  ...


Сам файл конфиг php имеет следующее содержание:
<?php
$my_config = array(
  'company' => 'Hello world',
  'author' => 'Ivan Ivanov'
);


Далее в файле где подключали config.php через include.
В месте где нужно вывести значение из конфига:
<?=$my_config['author']; ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
include php или json.txt или db
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Под конфиги есть один очень удобный подход: конфиги в константах класса.
Смысл в следующем, создаете базовый конфиг, например DefaultConfig.php настройки забиваете под окружение для разработки

namespace MyVendor\MyProject\Config;

class DefaultConfig
{
    const MYSQL_DSN = 'mysql:host=localhost;dbname=dbName';
    const MYSQL_USER = 'some_user';
    const MYSQL_PASS = 'some_password';
}


Так же создаете конфиг, который будет подключаться в вашем проекте Config.php (игнорируется git/svn/или что у вас там)

namespace MyVendor\MyProject\Config;

class Config extends DefaultConfig
{
}


Смысл в следующем, вы можете обращаться за счет автолоада на прямую к любой настройке, при этом переопределить их для продакшна например очень просто - вы переопределяете константу в Config.php.

За счет этого подключение к БД у вас может выглядеть так:

$pdo = new PDO(
    Config::MYSQL_DSN,
    Config::MYSQL_USER,
    Config::MYSQL_PASS
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы