в споре рождается истина. напишет ли автор сервис или нет, не суть важно. главное что в эту ветку зайдет пара сотен разработчиков, прочтут и сделают выводы.ksetrin писал(а):А иначе зачем столько распинался zelenin, доказывал свою точку зрения.
Виджет, main.php или как не нужно делать?!
Re: Виджет, main.php или как не нужно делать?!
Re: Виджет, main.php или как не нужно делать?!
по факту - это когда перед нами какой-то факт, который доказывает тезис. факта нет.ksetrin писал(а):И нисколько моя ирония не напрасна. Ибо rugabarbo оказался ПО ФАКТУ прав, говоря, что советовать новичкам сложный паттерн SL не стоит, ибо не до него.
а мой тезис, что обернуть что-то в сервис из трех строк, не является сложным даже для новичка.
Re: Виджет, main.php или как не нужно делать?!
в начале темы я собственно написал пример экшна. сервис просто оборачивает то, что из экшна исчезло. И реализация на yii или чем-то еще отличаться не будет.DeaTh писал(а):Господа, вот заинтересовали SL. Есть ли у вас примеры, где можно посмотреть реализацию с yii? Может проект какой на гитхабе или еще что.
без сервиса:
Код: Выделить всё
public function actionCreateUser()
{
$userData = Yii::$app()->getRequest()->getPost('user');
$user = new User();
$user->setAttributes($userData);
$user->save();
}
Код: Выделить всё
public function actionCreateUser()
{
$userData = Yii::$app()->getRequest()->getPost('user');
(new UserService())->register($userdata);
}
class UserService
{
pulic function register(array $userData)
{
$user = new User();
$user->setAttributes($userData);
$user->save();
}
}
Последний раз редактировалось zelenin 2015.12.21, 12:46, всего редактировалось 1 раз.
Re: Виджет, main.php или как не нужно делать?!
Вот поэтому я не спорю с Александром. Потому, что даже факты он отрицает.
Вы дали совет человеку, использовать сервисы, дали пример кода, он написал
Вы дали совет человеку, использовать сервисы, дали пример кода, он написал
Но потом что-то поло не так... и...Trampampam писал(а):Спасибо за пример. То, что доктор прописал.zelenin писал(а):пример:это позволит сократить код в экшне (тонкий контроллер), вынести прямые запросы в БД в отдельный класс (S в слове SOLID), поднимет ваш опыт в глазах других (К в слове КРУТОЙ).Код: Выделить всё
public function actionCategory() { $dbContentFetcher = new DbContentFetcher; $popular = $dbContentFetcher->getPopular(79, 5); $news = $dbContentFetcher->getNews(79, 5); return $this->render('category', ['popular' => $popular,'news'=>$news]); }
Статические и магические методы - зло, и их надо избегать.
Ладно, ждем другую пару сотен, кто покажет свои примеры реализаций сервисов для 5 самых популярных и 5 самых новых статейTrampampam писал(а):Я его не реализовывал. Но, благодаря совету zelenin, я знаю, что так можно и это вполне себе путь Джедая. В любом варианте, его труды не напрасны и ваша ирония неуместна.ksetrin писал(а):Trampampam заодно покажите как вы реализовали сервисный слой, уж очень хочется увидить, что труды zelenin были не напрасны и сделали все правильно
Проект на Yii2 о Yii2. Блог, примеры кода, и многое другое о Yii Framework 2 и не только
Re: Виджет, main.php или как не нужно делать?!
это подмена понятий. Вы с rugarbo имеете плохую дискуссионную подготовку. Не можете оперировать фактами и доказательствами. Играете словами.ksetrin писал(а):Вот поэтому я не спорю с Александром. Потому, что даже факты он отрицает.
Вы дали совет человеку, использовать сервисы, дали пример кода, он написалНо потом что-то поло не так... и...Trampampam писал(а):Спасибо за пример. То, что доктор прописал.zelenin писал(а):пример:это позволит сократить код в экшне (тонкий контроллер), вынести прямые запросы в БД в отдельный класс (S в слове SOLID), поднимет ваш опыт в глазах других (К в слове КРУТОЙ).Код: Выделить всё
public function actionCategory() { $dbContentFetcher = new DbContentFetcher; $popular = $dbContentFetcher->getPopular(79, 5); $news = $dbContentFetcher->getNews(79, 5); return $this->render('category', ['popular' => $popular,'news'=>$news]); }
Статические и магические методы - зло, и их надо избегать.Ладно, ждем другую пару сотен, кто покажет свои примеры реализаций сервисов для 5 самых популярных и 5 самых новых статейTrampampam писал(а):Я его не реализовывал. Но, благодаря совету zelenin, я знаю, что так можно и это вполне себе путь Джедая. В любом варианте, его труды не напрасны и ваша ирония неуместна.ksetrin писал(а):Trampampam заодно покажите как вы реализовали сервисный слой, уж очень хочется увидить, что труды zelenin были не напрасны и сделали все правильно
Там нет ничего про сложность, про то, что он попробовал и решил не заморачиваться.
Пример сервиса выше. Вам это сложно?
Re: Виджет, main.php или как не нужно делать?!
ksetrin, зачем вам примеры реализации именно блогов? Почему недостаточно примера от zelenin, показывающего, что в целом имеется в виду под сервисным слоем? Неужели вы сами не можете написать класс, который будет делать, что вам нужно?
-
- Сообщения: 19
- Зарегистрирован: 2015.12.07, 20:01
Re: Виджет, main.php или как не нужно делать?!
Trampampam писал(а):Я его не реализовывал. Но, благодаря совету zelenin, я знаю, что так можно и это вполне себе путь Джедая. В любом варианте, его труды не напрасны и ваша ирония неуместна.ksetrin писал(а):Trampampam заодно покажите как вы реализовали сервисный слой, уж очень хочется увидить, что труды zelenin были не напрасны и сделали все правильно
Вы неугомонны. По факту, у меня есть два виджета (популярное/новое), код которых одинаков за маленькой разницей в запросе. Естественно, что это неправильно и нужно упростить.ksetrin писал(а):Ладно, ждем другую пару сотен, кто покажет свои примеры реализаций сервисов для 5 самых популярных и 5 самых новых статей
Здесь я и буду пробовать применять совет zelenin. Я надеюсь, что вы понимаете, что это моя проблема, а не zelenin или сервисного слоя.
Re: Виджет, main.php или как не нужно делать?!
Воу-воу полехче, сейчас речь не обо мне... еще вот хотел спросить
Вы таки сами пишете проекты на yii? Может, конечно, я ошибаюсь или опять пытаюсь подменять понятия ну или имею плохую дискуссионную подготовку, но мне все же интересно узнать мотивы вашей столь большой активности именно на форуме этого фреймворкаzelenin писал(а):best practices и разработчики yii - вещи не совместимые. О том речь и идет, что все сообщество yii покрыто примерами кода, непроходящими проверку на качественность. Разработчики самого фреймворка достаточно посредственны. Их нельзя ставить в пример. Они не развивают php-сообщество, не ведут блогов, не пишут каких-то интересных продуктов, не следят за трендами. Вся их заслуга - быстро работающий фреймворк с частично неплохо написанным кодом, частично с ужаснейшим.
Проект на Yii2 о Yii2. Блог, примеры кода, и многое другое о Yii Framework 2 и не только
Re: Виджет, main.php или как не нужно делать?!
Я то могу, у меня с этим проблем нет, но в бложек внедрять SL для такой ерундовой задачи я не стану. Написать статик хелпер дело 2 минут. Зачем примеры именно блогов? Ну так я следую контексту вопроса.mkramer писал(а):ksetrin, зачем вам примеры реализации именно блогов? Почему недостаточно примера от zelenin, показывающего, что в целом имеется в виду под сервисным слоем? Неужели вы сами не можете написать класс, который будет делать, что вам нужно?
У нас SL используется в рабочем проекте, и этот проект, уж извините совсем не бложек.
Проект на Yii2 о Yii2. Блог, примеры кода, и многое другое о Yii Framework 2 и не только
Re: Виджет, main.php или как не нужно делать?!
ответ очевиден. следующий вопрос?ksetrin писал(а):Воу-воу полехче, сейчас речь не обо мне... еще вот хотел спроситьВы таки сами пишете проекты на yii? Может, конечно, я ошибаюсь или опять пытаюсь подменять понятия ну или имею плохую дискуссионную подготовку, но мне все же интересно узнать мотивы вашей столь большой активности именно на форуме этого фреймворкаzelenin писал(а):best practices и разработчики yii - вещи не совместимые. О том речь и идет, что все сообщество yii покрыто примерами кода, непроходящими проверку на качественность. Разработчики самого фреймворка достаточно посредственны. Их нельзя ставить в пример. Они не развивают php-сообщество, не ведут блогов, не пишут каких-то интересных продуктов, не следят за трендами. Вся их заслуга - быстро работающий фреймворк с частично неплохо написанным кодом, частично с ужаснейшим.
Re: Виджет, main.php или как не нужно делать?!
написать НЕ-статик хелпер дело двух минут минус время на написание слова static. И написанный хелпер будет сервисом.ksetrin писал(а):Написать статик хелпер дело 2 минут.
Дело не в названии, а в инкапсуляции бизнес-вещей в отдельные классы. инкапсулируете вы в статик или не в статик - не суть важно. Почему статик плохо вы найдете в гугле "php static is bad" - ссылку я уже приводил выше.