Насколько вижу на англоязычном SO ответы на данный вопрос расходятся: здесь например пишут что
The best thing you can do is the simplest thing that could possibly work (php variables) and wrap it up in a class
А по ссылке https://stackoverflow.com/questions/10137211/how-to-set-save-the-variable-in-a-php-file добавляют, что перезаписывать переменные в php-файле конфигурации можно с помощью var_export
Но по той же второй ссылке в первом комменте к вопросу @Quentin призывает не использовать файл в формате php, а лучше "ini, JSON, XML, etc"
(меня интересует только хранение в файле, а не в базе данных). А @symcbean обьясняет что проблему составляет не сам парсинг php-файла, а "the risks / stability / contention of self-modifying code"
.
По поводу парсинга, то здесь насколько понимаю особой разницы нету, взять ли
Config::$var или Config::$array[1]
с php-файла, или взять
json_decode($json)->{"property"}
с файла в формате json.
Но действительно ли хранение конфигурации в php-файле имеет большие риски в сравнении с другими форматами? Тем более когда в .htaccess дописать
RewriteRule config.php - [F]
И собственно опять же главный вопрос: в каком же формате лучше всего хранить конфигурацию?
Возможно здесь на самом деле два вопроса: в каком формате файла и в каком формате данных, поскольку я видел как один человек хранит конфигурацию как json в javascript-файле
Я вот так делаю
;<?php /*
;Реквизиты для коннекта к LDAP
ldap_auth.user = userName
ldap_auth.pass = password
и разбираю его стандартным парсером ini-файлов
Тут надо понимать, что где-бы вы не хранили настройки(речь про файл), если web-сервер отдаст его злоумышленнику в исходном виде, то всё пропало. В этом плане .php
, по сравнению с .json
, .ini
и т.д. имеет некоторые преимущества, поскольку сперва передается препроцессору PHP
Храню всегда в php в таком виде
<?php
define('DB_NAME', 'mydb');
define('DB_USER', 'user');
...........
Плюсы: удобно хранить и использовать. Т.к. это константы, то нет возможностью случайно перезаписать значение.
Только одно но. Я всегда создаю каталог include рядом с каталогом public и все инклуды и конфиги храню там. Т.е. структура получается такая
..
|--include
|--public
|--index.php
В итоге, когда пользователь запрашивает http://mysite.com/
он получает файл public\index.php
и до папки include злоумышленник может добраться только сломав FTP аккаунт
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Я не прошу мне расписывать весь код задачи, которая дана нижеМеня интересует алгоритм выполнения программы, что такое вхождения и к каким...
Вопрос такой : можно ли сделать ручной ввод для подобных заданий через cin ? Через обычный cin не получается ни добавить, ни удалить пробелы...