Pull to refresh

Comments 30

Неадекватный размер картинок в посте — по полмегабайта каждая. Зачем?!
Сорри!
Пережал в jpeg. Мак ось неадекватные скрины делает…
UFO just landed and posted this here
Спасибо
В первом варианте были png.
Тут в другом похоже косяк, мак ось с ретиной делает скрины 144dpi, меняешь на 72 dpi, качество портиться.
Да и habrastorage походу еще раз пережимает…
UFO just landed and posted this here
Чуть позже, постараюсь сделать скрины по новой…
UFO just landed and posted this here
Конечно портиться портится
Спасибо!
Зачем этот пример из 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-а.
Стоит подумать над этим…
Sign up to leave a comment.

Articles