Comments 30
Неадекватный размер картинок в посте — по полмегабайта каждая. Зачем?!
Сорри!
Пережал в jpeg. Мак ось неадекватные скрины делает…
Пережал в jpeg. Мак ось неадекватные скрины делает…
Спасибо
В первом варианте были png.
Тут в другом похоже косяк, мак ось с ретиной делает скрины 144dpi, меняешь на 72 dpi, качество портиться.
Да и habrastorage походу еще раз пережимает…
В первом варианте были png.
Тут в другом похоже косяк, мак ось с ретиной делает скрины 144dpi, меняешь на 72 dpi, качество портиться.
Да и habrastorage походу еще раз пережимает…
<?php
passtru("wget news.yandex.ru/internet.rss -qO — | grep -e '<\(title\|pubDate\)>' | tail -n+3 | tac — | sed 's/<pubDate>\(.*\)<\/pubDate>/[\1]/' | sed 's/<title>\(.*\)<\/title>/\1|/' | tr -d '\n' | tr '|' '\n'");
passtru("wget news.yandex.ru/internet.rss -qO — | grep -e '<\(title\|pubDate\)>' | tail -n+3 | tac — | sed 's/<pubDate>\(.*\)<\/pubDate>/[\1]/' | sed 's/<title>\(.*\)<\/title>/\1|/' | tr -d '\n' | tr '|' '\n'");
Зачем этот пример из PHP вызывать?
[sarkasm]да вы что?
а как же повторное использование библиотек и красивое документирование кода. [/sarkasm]
а как же повторное использование библиотек и красивое документирование кода. [/sarkasm]
а теперь вам сюда нужно прикрутить запись в базу, оповещение на мыло и логирование
Допишу ещё три строчки. Можно было бы и в одну, но чересчур сложно получится. Мы же запростоту решений, да?
Угу, а потом нужно будет отправлять почту через smtp, а настройки этого smtp должны вытягиваться из xml… ну и т.д. И через пару итераций в этих трех строчках черт ногу сломит.
Я полностью согласен, что этот код избыточен для выведения в консоль 5 строчек. Но, когда речь идет о клиентском проекте с часто меняющимися и/или добавляющимися требованиями, подход «написать пару строчек кода без учета возможных изменений или расширений» просто неприемлем.
Я полностью согласен, что этот код избыточен для выведения в консоль 5 строчек. Но, когда речь идет о клиентском проекте с часто меняющимися и/или добавляющимися требованиями, подход «написать пару строчек кода без учета возможных изменений или расширений» просто неприемлем.
Тут уже в одной этой строчке без поллитры не разберёшься :) Я не призываю так делать ни в коем случае, лишь хотел продемонстрировать, что автор поста нарезает холодец болгаркой.
В принципе согласен. Но для ознакомления с компонентом Console статья вполне сгодится:)
Я не знаю где вы тут разглядели такого рода процесс)))
В этом комменте написал, что все должно занимать 3 команды + написание кода.
По большому счету мое предложение — попытка сделать инструмент для системного использования, вы же зацепились за конкретный пример для статьи, набросали быстро свою реализацию в одну строчку и с вами сложно спорить о ее простоте))
В этом комменте написал, что все должно занимать 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
>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
Не совсем понял в чем проблема использовать неймспейсы?
суть не в неймспейсах, а в количестве кода для выполнения простейшей задачи.
github.com/Herzult/SimplePHPEasyPlus#readme
github.com/Herzult/SimplePHPEasyPlus#readme
Приведенный вами пример все же более раздут
Весь процесс должен выполниться 3-мя командами:
После чего открываете сгенерированный класс команды и пишете тело метода execute()
Не вижу здесь такого переизбытка кода, как вы это представляете…
Весь процесс должен выполниться 3-мя командами:
$ composer create-project suncat/console-commands ./cmd
$ cd cmd
$ app/console generate
После чего открываете сгенерированный класс команды и пишете тело метода execute()
Не вижу здесь такого переизбытка кода, как вы это представляете…
выполните следующее:
find $projectRoot -type f -name '*.php' -exec cat {}\; | wc -l
поймёте, что такое переизбыток кода
считайте кодом не только количество строк, написанных лично вами, а весь код, исполняемый интерпретатором :)
find $projectRoot -type f -name '*.php' -exec cat {}\; | wc -l
поймёте, что такое переизбыток кода
считайте кодом не только количество строк, написанных лично вами, а весь код, исполняемый интерпретатором :)
Я бы чуть упростил возможность форматированного вывода.
То что сразу бросается в глаза — вывод секций
и строк с несколькими параметрами.
Всё это стоит упросить и сделать код более компактным )
А так идея и реализация очень прикольные. Спасибо
То что сразу бросается в глаза — вывод секций
$output->writeln(array(
"",
"<info>Start parsing</info>",
""
));
и строк с несколькими параметрами.
$output->writeln(sprintf(
"<info>[%s]</info> <comment>%s</comment>",
$item['datetime'],
$item['title']
));
Всё это стоит упросить и сделать код более компактным )
А так идея и реализация очень прикольные. Спасибо
Спасибо
Этот код чисто для примера, но по вашему совету немного скорректировал.
Этот код чисто для примера, но по вашему совету немного скорректировал.
То что всегда хочется сделать в первую очередь в форматировании вывода команд симфони — добавить кастомных методов и хукуов. Ибо использовать эти их XML теги для стандартных вещей крайне нерационально. Лучше добавить предустановленных методов вывода сразу с красивым форматированием.
Sign up to leave a comment.
Консольные команды на PHP