Класс для работы с Ini файлами

Beginner.83

Новичок
и чем в твоем случае формат ini предпочтительнее простого экспортированного массива?
возможно, ты просто не задумывался об этом?
Видите ли в чём дело для того что бы получить доступ к вложенным элементам массива по ключам, требуется очень часто прибегать к циклам foreach. И если я правильно понимаю это не есть гуд. Могу и ошибаться конечно.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
это не относится к моему вопросу.
для работы скрипта тебе нужен массив с информацией из файла,
так зачем этот массив преобразовывать в формат ini для записи в файл вместо того чтобы хранить массив в родном формате php?

вероятно, ты не знаешь о функции var_export($array,true), результат которой можно прямо записать в файл, и выкинуть весь твой класс
 

Beginner.83

Новичок
Зачем там вообще foreach?
Где там? Если вы про массив то хотелось бы обращаться к элементам не стандартным образом а через точку. Может это и моя личная параноя) Но если честно речь идёт именно о Ini несмотря на всю критику мне кажется что смысл в этом классе всё же есть.
 

Beginner.83

Новичок
Ярослав
Заимплементи ArrayAccess, Countable, удобнее
Спасибо за совет обновил исходник добавил методы по имплементам.
Работает на ура. Спасибо. Хотел спросить есть ли смысл добавлять возможность добавления комментариев по секциям и значениям?
 

Sufir

Я не волшебник, я только учусь
Хотел спросить есть ли смысл добавлять возможность добавления комментариев по секциям и значениям?
Тебе это нужно? Если ты делаешь класс для себя - делай то что нужно тебе. Зачем спрашивать? Если ты делаешь его просто так... Ну, тогда почему бы не сделать?.. Только, на самом-то деле не так уж часто приходится редактировать конфиги, особенно инишки из php-скрипта, и если ты делаешь именно систему редактирования - то какой смысл из неё писать комменты в файл?.. А если файл будет редактироваться в ручную, то зачем вообще все телодвижения - действительно parse_ini_file за глаза.
Я по большому счёту тоже не вижу смысла пользоваться ini в PHP и в такой вот обёртке, есть же массивы - удобнее и быстрее... Но если сама тема интересна - посмотри реализацию Zend_Config (Zend_Config_Ini и Zend_Config_Writer_Ini в частности) к примеру.

А зачем делать синглтоном?
 

Beginner.83

Новичок
Почему сингл тоном там есть возможность как сингтона так и не только.
 

AmdY

Пью пиво
Команда форума
класс абсолютно бесполезный и даже мешающий в работе.
стиль кодирования очень мутный, особенно пародовало индусское $this->autosave = $this->autosave == true ? false : true;
автосейв пугает, запись в конфиг должна проводиться по принципу: а вы уверены? а вы точно этого хотите? а может не надо? а может в другой конфиг?

что не так с версиями до 5.3? вот такие проблемы вспомнил на 5.2, точной версии не скажу, но наверное во всех.
; не работает
language[ru] = 1
; глюки в зависимости от одинарных-двойных скобок.
path = '{REPLACE_ME}/module/'
 

AmdY

Пью пиво
Команда форума
Beginner.83
я перед тем как писать библиотеку набрасываю wishlist с тем, как собираюсь её использовать и смотрю на плюсы-минусы. и лишь затем реализую в процентах 20%, остальное попадает под нафик надо, или сейчас лучше, функционал не критичен и подождёт.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
класс абсолютно бесполезный и даже мешающий в работе
Блин, ну просто пипец, есть подозрение что, тут такие офигенные мегагуры-телепаты, которые знают что надо для всех проектов в мире, а так-же долбанутых заказчиков

Че вы докопались, до надобности или не надобности класса
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Ирокез не перекладывай с больной головы на здоровую

1. основной принцип программирования - принцип бритвы оккама (он же KISS)
2. ученые должны ставить все ставить под сомнение - только так и возможен прогресс и открытия

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

AmdY

Пью пиво
Команда форума
Ирокез
причём здесь заказчик? речь идёт об удобстве его использования:
1. неявный автосейв
2. полная незащищенность от опечаток
3. гораздо меньшая юзабельность в сравнении с тем, если бы конфиг превращался в простой объект-массив

ах, да, в ini конфигах принято дописывать в начале
;<?php die('access deny'); ?>
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
1. основной принцип программирования - принцип бритвы оккама (он же KISS)
Это для меня новость, я думал это принцип научных исследований

2. ученые должны ставить все ставить под сомнение - только так и возможен прогресс и открытия
Ну если ты себя ставишь на место ученого, тогда да. чисто риторический вопрос, объясняшь ли ты заказчику при создании нового магазина (условно), что ты написал уже их кучу и плодить сущности, созданием очередного магазина не имеет смысла, ведь прогресса нет. Бред.

не согласен? ну, прости, дорогой, если каждый будет нести херню, а все будут одобрять - это будет "овуляшка.ru"
вот тут я с тобой согласен, только не особо заметил что ТК несет херню
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
1. неявный автосейв
Где там не явный автосейв, для этого надо как минимум вызвать метод setAutosave().
2. полная незащищенность от опечаток
каких опечаток...
3. гораздо меньшая юзабельность в сравнении с тем, если бы конфиг превращался в простой объект-массив
еще раз: речь не идет, о где удобно хранить, а о реализации класса Ini, я не видел в теме ТК, чтобы он интересовался мнением где удобнее хранить.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
- Это для меня новость
Хорошо тебе - тебя еще что-то удивляет!

- если ты себя ставишь на место ученого
ага, как в анекдоте: что ви - что ви, я такой же говнокодер на потоке :D

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

- не особо заметил что ТК несет херню
а ты представь для разнообразия, что Amdy прав - побудь ученым, поставь под сомнение свое мнение ;)

- речь не идет ... я не видел в теме ТК, чтобы он интересовался мнением
а я не видел в теме, что это твоя ветка, чтобы решать, о чем идет речь, а о чем - нет
 

AmdY

Пью пиво
Команда форума
Автосейв на сете, учитывая singlton он может

$Ini->get('section.key'); ошибся при наборе $Ini->get('sections.key'); и пока баг не вылезет не узнаешь.


itprog
ой, ещё расширение не ini а php. чтобы по прямой ссылке был недоступен.
 

itprog

Cruftsman
дану, чтобы по прямой ссылке не был доступен, его не надо класть в корень сервера. А так сломается php и покажет веб-сервер конфиги %)
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Автосейв на сете, учитывая singlton он может
Че за 'сете', если имеешь ввиду конструктор, который вызывается из factory, то там autocreate

а то, что у него приватная пременная $autosave инициализируется как true, это есть плохо.
 
Сверху