Парсинг конфига из текстового файла

Фанат

oncle terrible
Команда форума
Если ты регулярно ставишь табы вместо пробелов и до сих пор не настроил свой редактор, то у тебя какие-то проблемы. YAML тут не виноват.
Если парсер действительно настолько чувствителен к пробельным символам, то это его недостаток. То, как ты постоянно пытаешься перевести стрелки с технологий на личности - моветон.
 

AnrDaemon

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

Вурдалак

Продвинутый новичок
это его недостаток.
На основе чего ты делаешь такое заключение? Ты изучил возможные последствия допущения tab'ов в YAML, проанализировал этот вопрос? Или для тебя любые ограничения — это недостаток? Если я ставлю final у класса и запрещаю его наследовать, то я вношу недостаток в класс?
 

fixxxer

К.О.
Партнер клуба
Если парсер действительно настолько чувствителен к пробельным символам, то это его недостаток.
А тут нет нормального варианта. Либо как в python определить на уровне языка, что таб равен N пробелов (что только создает больше проблем - потому в pep8 табы запрещены), либо запретить одно из двух.

UPD: Хотя есть еще вариант python3 - parse error при обнаружении смешения табов и пробелов. Так, в принципе, сделать было бы можно.
 
Последнее редактирование:

WMix

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

hell0w0rd

Продвинутый новичок
Код:
server:
  listen: ::
И сломался yaml. Лично мне не нравится ничего, что завязано на отступы (ruby, yaml, stylus, coffee, etc.). В последнем радиоте как раз обсуждали, что yaml очень неявный язык для конфигурирования. Особенно напрягает синтаксис массивов объектов.
Топикстартеру - возьми json и не мучайся.
По поводу var_export - это кеширование конфигов, и это уже вообще другая тема. Писать конфиги сразу в php еще то извращение, на мой взгляд. Это как шаблоны писать в php, хочется попрограммировать.
 

WMix

герр M:)ller
Партнер клуба
{'name':'д'артаньян'} и сломался джейсон.
конфиги сразу в php еще то извращение
ну да
Код:
[
    'a' => "b",
    'c' => [1,2,3,4]
]
при сравнении с
Код:
{
    'a': "b", 
    'c': [1,2,3,4]
}
изврат
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
@hell0w0rd, ну там есть стишок, рифма дразнятся, а вообще в считывании этого конфига, коментах, запятых в конце элементов, фигурных скобках..
 

hell0w0rd

Продвинутый новичок
Вы мне лучше расскажите, зачем пишите на php в стиле java? Почему не взять java, с нормальными тулами, фреймворками и языком?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Вы мне лучше расскажите, зачем пишите на php в стиле java? Почему не взять java, с нормальными тулами, фреймворками и языком?
не тот раздел, это вопрос для офтопика, а причин много
особенно радует определение "нормальными" :)
 

ra66it

Новичок
JSON - лучший вариант, и никакие выпендрежи с ini или Yaml нафиг не нужны. И человеком читается легко и "машиной".
А кавычки не напрягают? А отсутствие комментов ("//" не в счет)? А необходимость следить за закрытыми скобками? Yaml лучше
 

fixxxer

К.О.
Партнер клуба
Вы мне лучше расскажите, зачем пишите на php в стиле java? Почему не взять java, с нормальными тулами, фреймворками и языком?
PHP как раз хорош тем, что это скриптовый динамический язык с ООП похожим на Java. В современном PHP не хватает только generics, в остальном все есть, все проще и не надо уходить из родного unix-мира в долбанутый java-мир.
 

hell0w0rd

Продвинутый новичок
Всегда задаюсь вопросом, когда говорят про «Java-стиль». Что имеется в виду?
ну во-первых на все класс. С этим можно спорить, но факт остается фактом - большинство современных фреймворков стараются не использовать функции и пишут классы. Например Symfony/FileSystem, это должен быть набор функций.
Во-вторых популярные фреймворки слизаны с java мира - hibernate (а вот нафига identity map в php?), Spring, phpunit, наверняка что-то еще.
На каждый чих и пук в "нормальных" проектах/фреймворках пишутся интерфейсы, в особо запущенных случаях обязательно есть абстрактный класс, даже если всего одна реализация далее по иерархии (привет Zend, sylius).
Вон, fixxer'у в языке с динамической типизацией не хватает дженериков :)

PS и я не то что бы против этого, просто не понятно, почему взять java, раз все это нужно. Нормальные тулы - IDEA больше развита, чем phpstorm. Hibernate вроде как сильно лучше Doctrine.
 
Сверху