Celestial
26.12.2016
14:17:40
в доке есть просто свод функций примеров и т.п. но вот четкого описания нет =)
Adel
26.12.2016
14:20:14
Зависит от проекта
если хелло ворлд - то в контроллерах можно все держать
Celestial
26.12.2016
14:20:45
ну уж неет )
Google
Celestial
26.12.2016
14:20:55
я просто документооборот делаю
и не совсем уверен что всё по феншую сделано у меня
Adel
26.12.2016
14:21:07
если посложнее, то у меня в контроллерах остается только то, что обеспечивает КОНТРОЛЬ обработки веб-запроса
Celestial
26.12.2016
14:21:27
использование конструкторов в конртоллерах это нормально ?
Adel
26.12.2016
14:21:29
получение реквеста - передача дальше по сервису. и отдача ответа
что ты имеешь ввиду?
Celestial
26.12.2016
14:22:21
ну вот __construct()
у меня и такие методы есть в контроллерах
public function GetName($type, $id)
{
switch ($type) {
case 'docsGroup':
$name = DocumentTypeGroup::where('id', $id)->first()->Name;
return $name;
case 'document':
$name = Document::where('id', $id)->first()->name_document;
return $name;
default:
return '';
}
}
Adel
26.12.2016
14:22:56
ну это уж совсем не феншуй )
Valery
26.12.2016
14:23:03
непсрненько )
Celestial
26.12.2016
14:23:04
=))))))
Adel
26.12.2016
14:23:04
ты в контроллерах лезешь в базу
Celestial
26.12.2016
14:23:19
вот об этом и речь
Google
Celestial
26.12.2016
14:23:26
это в моделях все делать нужно?
Adel
26.12.2016
14:23:34
причем еще как будто из сишарпа пришел. GetName вместо уже давно принятого за стандарт getName
Celestial
26.12.2016
14:23:56
привычно так не знаю почему
просто я самоучка без тимлида без кого-либо, пишу как считаю нужным, вот и решил задать вопрос умным дядькам хотя бы по ларчику, где что хранить )))
Adel
26.12.2016
14:25:07
ну то что в модели должно быть - это точно. и мне все равно не нравится GetName этот. он наверно юзается еще так GetName('document', ...) - это так себе
Celestial
26.12.2016
14:25:50
lf
da
примерно
вообще русскоязычное есть что-то по этому поводу ?
книга я там не знаю феншуй по ларавельски
Adel
26.12.2016
14:26:36
я такую пишу
Celestial
26.12.2016
14:26:40
библия ларавелиста
Adel
26.12.2016
14:26:40
хз когда напишу только...
Celestial
26.12.2016
14:26:55
хз когда напишу только...
это вечная проблема
))
Adel
26.12.2016
14:26:57
месяца через 4-6 самое ооптимистичное
но наиболее вероятное - никогда не допишу :)
ибо лентяй
Celestial
26.12.2016
14:27:28
ну просто я хочу делать правильно )) мне не достаточно чтобы всё работало
Adel
26.12.2016
14:27:55
ну давай сейчас накидаю как у меня примерно выгядят контроллеры
Google
Adel
26.12.2016
14:27:59
сейчас открою проект
Celestial
26.12.2016
14:28:00
давай
Adel
26.12.2016
14:30:34
вообще все начинается не с контроллеров а с реквест обьектов. Они превращают всю кашу из POST-формы. в нормальный обьект с методами. Если работаешь в нормальной IDE PhpStorm - то весьма приятно.
http://pastebin.com/cZ04GKpp
у меня там есть CRUD контрлллер. для одного обьекта. вот его и покажу.
Celestial
26.12.2016
14:32:05
да я в PHP SHTORM
йо
ничеси
как выглядит
сказать что я ниче не понял ни чего не сказать
но выглядит более хорошо чем моё хорошо
теперь я понял
что я гоавнокодю на ларавел
Adel
26.12.2016
14:33:28
http://pastebin.com/UranVqxF
контроллер
очень тонкий как ты видишь
я убрал там другие методы. Update, Delete
public function postCreate($courseId, ChecklistItemRequest $request) - как раз здесь используется этот обьект запроса.
Celestial
26.12.2016
14:34:32
понятно теперь видно к чему стремится нужно
Adel
26.12.2016
14:34:35
т.е. мы юзаем не обычный Request - а уже мой. и там просто методы
Google
Adel
26.12.2016
14:35:40
http://pastebin.com/zHuLUY9w
ну чот я слишком простой вариант выбрал
кароч все преимущество такого подхода в том, что когда у тебя бизнеслогика какаято сильная. например какие то реально сложные условия надо проверить прежде чем создать
то их надо как раз в сервисе проверять
контроллер вообще не при чем
ах дааа
у меня ж valiate есть
там и проверяется
Celestial
26.12.2016
14:37:37
сколько штук
всяких
Adel
26.12.2016
14:37:45
/**
* @param ChecklistItemRequest $request
* @throws ChecklistItemValidationException
*/
private function validate(ChecklistItemRequest $request)
{
if(!in_array($request->getAnswersType(), [
ChecklistItem::ANSWER_TYPE_SIMPLE,
ChecklistItem::ANSWER_TYPE_WITH_PARTIALLY]))
{
throw new ChecklistItemValidationException('Wrong possible answers');
}
}
вот. чтобы только верные варианты ответа были...
Celestial
26.12.2016
14:38:13
а что это вообще за проект?
Adel
26.12.2016
14:38:47
да ерунда... там. чтото типа медицинского образовательного проекта. с записью видео.. проверкой этого видео. один американский врач заказал :)
Celestial
26.12.2016
14:39:00
мде
молодец
Adel
26.12.2016
14:39:39
и да. ты неправ насчет PHP. неважнон а каком языке писать. можно на самом крутом языке писать мусорные проекты.
Celestial
26.12.2016
14:39:54
ну это то так
Adel
26.12.2016
14:39:57
PHP растет. вполне неплохо.
по сравнению с остальными
Google
Celestial
26.12.2016
14:40:11
потому что популярен очень
Adel
26.12.2016
14:40:17
не только
Celestial
26.12.2016
14:40:21
просто кого не спроси пересаживать тебя надо с этого говна (с)
Adel
26.12.2016
14:40:34
версии 7.0 и 7.1 - весьма неплохие прорывы
Celestial
26.12.2016
14:40:44
в 7.1 что нового ?
я даже что-то не смотрел чейндж лог
Adel
26.12.2016
14:40:56
да. это говорят те кто никогда не писал нормально на PHP
они видели только говнокод
Celestial
26.12.2016
14:41:20
ну шарписты в основном
)
Adel
26.12.2016
14:41:25
я сам шарпист
наполовину
Celestial
26.12.2016
14:41:56
я дибил на половину
или больше
хз
Grzegorz
26.12.2016
14:42:26
никак не возьмусь за PHP 7, ибо 5 толком не изучил
Celestial
26.12.2016
14:42:51
та ладно
меня радуют некоторые клиенты
у которых старые версии php
и там не рабтает
$a= [ 1 => 2 ]