Как стать автором
Обновить

Комментарии 30

Неадекватный размер картинок в посте — по полмегабайта каждая. Зачем?!
Сорри!
Пережал в jpeg. Мак ось неадекватные скрины делает…
НЛО прилетело и опубликовало эту надпись здесь
Спасибо
В первом варианте были png.
Тут в другом похоже косяк, мак ось с ретиной делает скрины 144dpi, меняешь на 72 dpi, качество портиться.
Да и habrastorage походу еще раз пережимает…
НЛО прилетело и опубликовало эту надпись здесь
Чуть позже, постараюсь сделать скрины по новой…
НЛО прилетело и опубликовало эту надпись здесь
Конечно портиться портится
Спасибо!
Зачем этот пример из PHP вызывать?
Ну так пост, вроде, про PHP и про то, как добавить энтропии в рутиные задачи…
Если что-то нужно распарсить, то вам по всей видимости проще средствами wget|grep обойтись )))
[sarkasm]да вы что?
а как же повторное использование библиотек и красивое документирование кода. [/sarkasm]
Допишу ещё три строчки. Можно было бы и в одну, но чересчур сложно получится. Мы же запростоту решений, да?
Угу, а потом нужно будет отправлять почту через smtp, а настройки этого smtp должны вытягиваться из xml… ну и т.д. И через пару итераций в этих трех строчках черт ногу сломит.

Я полностью согласен, что этот код избыточен для выведения в консоль 5 строчек. Но, когда речь идет о клиентском проекте с часто меняющимися и/или добавляющимися требованиями, подход «написать пару строчек кода без учета возможных изменений или расширений» просто неприемлем.
Тут уже в одной этой строчке без поллитры не разберёшься :) Я не призываю так делать ни в коем случае, лишь хотел продемонстрировать, что автор поста нарезает холодец болгаркой.
В принципе согласен. Но для ознакомления с компонентом Console статья вполне сгодится:)
Я не знаю где вы тут разглядели такого рода процесс)))
В этом комменте написал, что все должно занимать 3 команды + написание кода.

По большому счету мое предложение — попытка сделать инструмент для системного использования, вы же зацепились за конкретный пример для статьи, набросали быстро свою реализацию в одну строчку и с вами сложно спорить о ее простоте))
>// ./src/Command/NewsInternetCommand.php

>namespace Command;

>use Parser\YandexRSSNewsParser;
>use Symfony\Component\Console\Command\Command;
>use Symfony\Component\Console\Input\InputArgument;
>use Symfony\Component\Console\Input\InputInterface;
>use Symfony\Component\Console\Input\InputOption;
>use Symfony\Component\Console\Output\OutputInterface;


реализовывать скриптовые задачи на «этом» — facepalm.jpg
Не совсем понял в чем проблема использовать неймспейсы?
Приведенный вами пример все же более раздут

Весь процесс должен выполниться 3-мя командами:
$ composer create-project suncat/console-commands ./cmd
$ cd cmd
$ app/console generate

После чего открываете сгенерированный класс команды и пишете тело метода execute()

Не вижу здесь такого переизбытка кода, как вы это представляете…
выполните следующее:

find $projectRoot -type f -name '*.php' -exec cat {}\; | wc -l

поймёте, что такое переизбыток кода
считайте кодом не только количество строк, написанных лично вами, а весь код, исполняемый интерпретатором :)
А вам жалко интерпретатор, да? :) «Ванильный» PHP явно не хайлоад ориентирован.
Я бы чуть упростил возможность форматированного вывода.
То что сразу бросается в глаза — вывод секций

       $output->writeln(array(
            "",
            "<info>Start parsing</info>",
            ""
        ));


и строк с несколькими параметрами.

            $output->writeln(sprintf(
               "<info>[%s]</info> <comment>%s</comment>",
               $item['datetime'],
               $item['title']
            ));


Всё это стоит упросить и сделать код более компактным )

А так идея и реализация очень прикольные. Спасибо
Спасибо
Этот код чисто для примера, но по вашему совету немного скорректировал.
То что всегда хочется сделать в первую очередь в форматировании вывода команд симфони — добавить кастомных методов и хукуов. Ибо использовать эти их XML теги для стандартных вещей крайне нерационально. Лучше добавить предустановленных методов вывода сразу с красивым форматированием.
Вы в целом о форматировании, а я подумал речь о конкретном примере.
Да было бы более удобно, если бы вывод формировался посредством некого OutputBuilder-а.
Стоит подумать над этим…
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации