Как правильно заносить настройки в файл?

KorP

Новичок
Почитал я вот это сравнение, ну и собственно захотелось хранить настройки в php файле, а как их правильно туда заносить при помощи некой формы, а не руками? ну как записывать в файл это понятно, а как записать/изменить некие настройки какой то переменной? или записывать вместе с переменной в файл? Хочется накатать простой инсталятор для своего скрипта, вот и интересно как правильно занести данные из этой формы в конфиг. И я что то даже не знаю как гуглю правильно об этом спросить, не могу кратко сформулировать свою мысль.
 

craz

Нестандартное звание
в конфиге не хранят ИМХО изменяемые данные.. ну или не хранят с вашим уровнем программирования(не обижайтесь - это не оскорбление) - оно вам просто не нужно пока...

зачастую даже загружчики конфигов имеют функцию readonly.

забивайте все ручками пока.
 

KorP

Новичок
в конфиге не хранят ИМХО изменяемые данные.. ну или не хранят с вашим уровнем программирования(не обижайтесь - это не оскорбление) - оно вам просто не нужно пока...
простите, но даже с моим уровнем программирования я с вами не соглашусь - конфиг подключения к БД например хранят где? :) я не говорил что данные должны изменяться каждый день, но они могут изменится при каких то условиях
 

craz

Нестандартное звание
простите, но даже с моим уровнем программирования я с вами не соглашусь - конфиг подключения к БД например хранят где? :) я не говорил что данные должны изменяться каждый день, но они могут изменится при каких то условиях
ручками их меняют, имхо, большинство тутошнего народа...

В смысле, в конфиге хранятся не изменяемые данные
 

KorP

Новичок
ручками их меняют, имхо, большинство тутошнего народа...
хорошо, в таком случае меня интересует мнение меньшинства :) просто хочется своему скрипту придать некую законченную форму, без необходимости править конфиги руками, вот и всё. там на самом деле настроек всего ничего, данные для подключения к БД + пара путей, ради которых заморачиваться с чем то ещё не вижу просто смысла и считаю это нецелесообразным
 

craz

Нестандартное звание
хорошо, в таком случае меня интересует мнение меньшинства :) просто хочется своему скрипту придать некую законченную форму, без необходимости править конфиги руками, вот и всё. там на самом деле настроек всего ничего, данные для подключения к БД + пара путей, ради которых заморачиваться с чем то ещё не вижу просто смысла и считаю это нецелесообразным
ну сами себе же отвечаете))))))))))) нафик прописывать какую-то недоподелку для изменения четырех строк(
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
KorP
Конфиги правят руками, точка.
 

KorP

Новичок
ну сами себе же отвечаете))))))))))) нафик прописывать какую-то недоподелку для изменения четырех строк(
ну по тому что как минимум будет не логично заставлять часть конфигов прописывать руками в файлах, а часть уже в инсталлере, логично? :)

c0dex
по-моему мой вопрос звучит несколько иначе, нежели ваш ответ на него, но ваше мнение я учёл
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Есть настройки отображения, например что-то, что влияет на отображение блока данных на сайте, которые могут храниться в mySQL. А есть настройки того, как коннектиться к mySQL. И хранятся первые внутри БД - вторые внутри файла php/ini.

Так вот, первый раз твой инсталлятор просто генерит исходник с настройками и пишет его в файл, дальше уже ручками, без всяких форм.

Пример:
Делаешь рыбный файл и ставишь в нем define('MYSQL_HOST', '%sql_host_value%');

Далее просто считываешь в инсталляторе исходный код файла, заменяешь там где надо %sql_host_value% на те данные что ввели в форму инсталлятора и пишешь в конфиг файл, создавая файл блокировки, что инсталляция прошла и т.д.
 

KorP

Новичок
Есть настройки отображения, например что-то, что влияет на отображение блока данных на сайте, которые могут храниться в mySQL. А есть настройки того, как коннектиться к mySQL. И хранятся первые внутри БД - вторые внутри файла php/ini.

Так вот, первый раз твой инсталлятор просто генерит исходник с настройками и пишет его в файл, дальше уже ручками, без всяких форм.

Пример:
Делаешь рыбный файл и ставишь в нем define('MYSQL_HOST', '%sql_host_value%');

Далее просто считываешь в инсталляторе исходный код файла, заменяешь там где надо %sql_host_value% на те данные что ввели в форму инсталлятора и пишешь в конфиг файл, создавая файл блокировки, что инсталляция прошла и т.д.
вот, это именно то, что меня интересовало, благодарю
только вот читая статью, что я привёл в первом посте - define самый тормозной вариант
 

craz

Нестандартное звание
вот, это именно то, что меня интересовало, благодарю
только вот читая статью, что я привёл в первом посте - define самый тормозной вариант
статья не об этом!!! и c0dex написал не это!!!)

он написал как из шаблона, а в шаблоне не страшно держать define, собрать config.php
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я просто описал самый простой, самый приемлемый в твоем случае вариант генерации/хранения конфига. Дай тебе бог того, чтобы ты когда-нибудь уперся по производительности в такой метод хранения конфига
 

KorP

Новичок
не за что) было трудно))
мы не ищем лёгких путей :)

Я просто описал самый простой, самый приемлемый в твоем случае вариант генерации/хранения конфига. Дай тебе бог того, чтобы ты когда-нибудь уперся по производительности в такой метод хранения конфига
ну а вариантов хранения данных для подключения к БД кроме как в файлах всё-равно нет, а то что мне помимо этого нужно хранить ещё одну единственную настройку - не вижу смысла ради этого пихать её в БД, в любом другом случае я конечно же храню настройки системы в БД, а в файле только подключение к ней. Хотя это тоже спорный вопрос - масштабировать БД гораздо сложнее нежели бэк-энд
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Вопросы масштабируемости по-моему обсуждать пока рано, слона надо есть по частям)
 

Духовность™

Продвинутый новичок
ну по тому что как минимум будет не логично заставлять часть конфигов прописывать руками в файлах, а часть уже в инсталлере, логично? :)
нет, не логично.

Нужно разделять конфигурационные файлы программы и конфигурацию конечного продукта, которою конфигурирует тупой пользователь как ему надо.

Конфиг программы всегда должен заполняться руками. Инсталляторы нужны для супер серьезных законченных проектов, которые ежедневно скачивают десятки пользователей. Всякие opensource форумы, СMS и т.д. Твоему говноскрипту, уж прости за определение - ничего личного, инсталлятор не нужен. Так же, как он не нужен 99.99% программ на PHP.

А вот все то, что может без какой-либо опаски изменять пользователь, будь то кол-во сообщений на страницу, цвет фона, настройки видимости/приватности и т.п., это уже все должно изменяться на уровне дружественного интерфейса.

Как аналогия: в автомобиле есть 2 типа регулировки фар - под капотом и в салоне. Первое делают на ТО, там все относительно сложно и без бутылки не разобрать что и как. Второе - просто и понятно - регулируется в зависимости от загруженности машины, процедура кручения колесика понятна даже блондинке. Т.е. авто так устроен, что для потребителя есть колесико, которым он ежедневно пользуется. А когда нужно под капот лезть, то там все ручками стоя раком. Так же и в программировании - не надо извращаться и делать то, что крайне редко трогается. Это не рентабельно и никому не нужно. Решай насущные задачи для повседневного использования.
 

KorP

Новичок
c0dex
это твои слова
Дай тебе бог того, чтобы ты когда-нибудь уперся по производительности в такой метод хранения конфига
так что это уже к вопросу масштабируемости, а в моём случае действительно не актуально


Духовность™
не соглашусь, по той простой причине что и те и другие настройки будет заносить тупой пользователь - так зачем ему усложнять жизнь? конечно в случае форумов и т.д. такой подход вполне логичен и правилен, когда настраивает специалист, а пользуется кто угодно, я полностью согласен, но в моём случае это разделение просто не нужно. тупая блондинка не будет пользоваться тем что я пишу, а то кто будет вполне понимает какие данные и для чего он будет заносить. Да и на самом деле я не совсем понимаю аргументацию - если пользователь будет заносить конфиг в файл руками - чем там плохо если он будет делать всё тоже самое, но через удобную форму? Чем форма так плоха в данном случае и почему нельзя маленько облегчить жизнь пользователю?
 
Сверху