Anonymous
пиздец, братан, ты читал доки по какому-нибудь ангулару? Видел доку по phonegap? Доку по кодигнайтеру? У лары самая жирная дока из всех, что я видел. Все разжевывается же
Vitaliy
Я доку по андроид читал. Вот там разжевывается. Но, главное, полным полно всяких других источников. А тут в ларакаст и точка, без вариантов?
Anonymous
так а это чем не подходит?
Anonymous
https://laravel.com/docs/5.4/installation
Anonymous
от самой установки и развертки локальной среды, и до тестирования
Vitaliy
Там пример простого приложения от и до? Я установил. Прочёл эти разделы. Про архитектуру даже пытался) Как всё воедино начать сводить нет понимания. Говорю же, есть вроде статьи, но опять с новой ларой не идут, судя по комментам
T.A
пожалуйста помогите оценить мое первое резюме
ceii80
5$
Александр
>laravel »сухая дока
По сравнению с докой симфони, да
Anonymous
Если кто то из джунов ищет работу
Anonymous
пишите в личку
Andrey
Там пример простого приложения от и до? Я установил. Прочёл эти разделы. Про архитектуру даже пытался) Как всё воедино начать сводить нет понимания. Говорю же, есть вроде статьи, но опять с новой ларой не идут, судя по комментам
А ты до laravel писал приложения на php? Просто возможно ты хочешь доку, которая выходит за рамки фреймворка. И да, это есть на том же ларакаст. Прям с нуля например тот же форум
Antonio
Просто видео не самый удобный формат "учебника". Хотя возможно это мой олдскульный взгляд
Andrey
Ну так то «фломастеры» конечно. У каждого свой вкус.
Daniil
всем доброго вечера) Подскажите, а это нормально, что такой запрос выполняется примерно 60 секунд: $articles = Article::leftJoin('article_category', 'article_category.article_id', '=', 'articles.id')->whereIn('article_category.category_id', $catDescendants)->where('is_active', '1')->groupBy(['articles.id'])->orderBy('id', 'desc')->select('id', 'title', 'body', 'photo_teaser', 'created_at', 'view_count')->limit(6)->get(); в базе articles примерно 16000 записей
индексы какие стоят на таблицах? тебе точно нужны индексы на таблице articles по полю id и article_category по полю article_id. И еще желательно по полю is_active, но тут непонятно, к какой таблице принадлежит поле - при джоинах всегда указывай таблицу, иначе эта мина замедленного действия когда-нибудь сработает)
Daniil
Вылезет ошибка, которая скажет о том, что ты пытаешься обратиться к столбцу с неточным названием
Daniil
Ибо две штуки подходит под этот запрос
Daniil 👾
я уже в принципе решил пробелму производительности, добавив подзапрос... но не думаю, что решил правильно. Скорее хак
Daniil
Создай индексы
Daniil 👾
вот сейчас этим и занимаюсь, проверяю индексы
Daniil
Такие тормоза это значит что бд лопатит целиком таблицы
Daniil 👾
вероятно забыл в каком-то столбце
Daniil
И чем больше записей тем хуже все будет далее
Евгений
ребзя
Евгений
есть несколько форм в админке, добавление постов, категорий, типов постов и тд и тп
Евгений
у каждой формы есть дополнительные поля, одинаковые для всех форм. Сеошные тайтлы заголовки и тд. У меня это сделать как полиморфный связи
Евгений
как мне сделать чтобы при отправке формы основные поля валидировались в одном формреквесте, а сеошные поля в другом?
Евгений
чтобы был один форм реквест на все сеошные поля всех форм
Maksim (Ellrion)
как мне сделать чтобы при отправке формы основные поля валидировались в одном формреквесте, а сеошные поля в другом?
так не выйдет. сделай просто трейт для формреквеста, в котором будет метод из которого можно взять правила для сео что бы примержить к основным
fLipE
всем привет хотелось бы узнать, нормальная ли практика проверять в формреквестах права пользователя через request()->user()->can('smth') (использую laratrust), или так делать не стоит?
Евгений
а трейт этот юзать в самом форм реквесте основном, или в модели?
Евгений
не могу нагуглить примеры такого использования
Евгений
ок, попробую осилить
Евгений
получилось кажется :)
Евгений
теперь еще надо сделать сохранение всех сеошных данных как то по феншую, чтоб не копипастить код
Daniil 👾
теперь еще надо сделать сохранение всех сеошных данных как то по феншую, чтоб не копипастить код
сам как раз сейчас этим занимаюсь. Думал вынести эту часть в сервис-контейнер. Хотя не уверен, что это хорошая идея
Daniil 👾
вообще пока не особо понял как правильно использовать эти самые сервис-контейнеры, хотя и изучал этот вопрос пару дней. Пока что это выглядит скорее как намеренное усложнение приложения
Maksim (Ellrion)
сам как раз сейчас этим занимаюсь. Думал вынести эту часть в сервис-контейнер. Хотя не уверен, что это хорошая идея
сервис для такого не оюязательно регистрировать в контейнере. так что усложнения нет. есть только реиспользование кода
Дмитро
привет. Кто занимался cloacking, можете подсказать, что использовать или почитать на эту тему?
Евгений
сервис сделай
по идее можно же и без этого обойтись. Типа $post->seo()->create($request->all());
Евгений
наверно
Евгений
а seo это уже связь просто
Maksim (Ellrion)
и если этой строчки достаточно и не будет напрягать что она есть такая в нескольких местах (что имхо норм если она одна), то можно и без сервиса конечно
Maksim (Ellrion)
если логики будет больше то я бы уже в сервис вытаскивал
Daniil 👾
а где вообще та грань, когда часть функционала из контрлллера надо вытаскивать в сервис?
Евгений
all же по идее тоже сойдет, всё что есть подставится, остальное просто проигнорится
Daniil 👾
это же чисто субьективно определяется?
Maksim (Ellrion)
all же по идее тоже сойдет, всё что есть подставится, остальное просто проигнорится
оно не так работает, он поругается что ты пытаешься пихать несуществующие поля. или я не выспался)
Евгений
просто попробую и так и так)
Maksim (Ellrion)
а где вообще та грань, когда часть функционала из контрлллера надо вытаскивать в сервис?
здравый смысл, опыт. Ну и общие практики. например https://refactoring.guru/ru/refactoring/catalog
Евгений
как у экземпляра модели получить класс?)
Maksim (Ellrion)
get_class($model)
Евгений
да, ::class не работает
Maksim (Ellrion)
первый вариант я наврал) так константы можно брать а вот константу class не выйдет
Дмитро
если ты про SEO, то не стоит туда лезть
Нет, я про реализацию механизма. Типа такого fraudfilter.io
Antonio
сервис для такого не оюязательно регистрировать в контейнере. так что усложнения нет. есть только реиспользование кода
А можно примеры работы сервисов, не абстрактно, а в конкретных решениях. А то как-то сложно понять когда и как использовать
Maksim (Ellrion)
А можно примеры работы сервисов, не абстрактно, а в конкретных решениях. А то как-то сложно понять когда и как использовать
понятие сервис оно очень общее. Примеров в ларе выше крыши. под каждым фасадом лежит сервис же. Открой app.providers конфиг. в каждом провайдере регистрируются сервисы) Или хочится увидеть какие то сервисы отличные от тех что уже есть в ларе?
Antonio
Да. То что кастомно делается
Maksim (Ellrion)
Ну тут разброс огромный. например у меня есть логика работы с денежными счетами пользователя. например открытие счета, или изменение баланса на счетах. (помимо счетов естественно дополнительно идет работа с логами, денежными транзакциям, кэшем баланса) так как логика достаточно сложна иногда, то мне удобно вынести работу со счетами в отдельный класс, что позволит мне держать всю логику в одном месте и при этом реиспользовать код http://joxi.ru/Vrw5Y4SKdKy62X
Maksim (Ellrion)
вот такие классы в которых бизнес логика по какому то аспекту приложения у меня названы директорами. Это пример сервиса.
Maksim (Ellrion)
Такой сервис можно и не регать в контейнере, так как у него нет зависимостей и он не нужен как синглтон. Просто инжектим и юзаем http://joxi.ru/MAj8z4iv7vWYme
invariance
обожэ мой
invariance
комментарии на русском
invariance
Maksim (Ellrion)
комментарии на русском
а что не так с коментами на русском? если я уверен что этот код не будет разрабатываться членами не русскоязычной команды. то комментарии на русском упрощают их написание и поддержание. если это некий пакет для всех который я буду публиковать, то естественно я буду писать англоязычные коменты.
invariance
ну дык надо приучать команду к интернациональной разработке
Samat
$teachersoffice = \App\Teacher::with('user.offices')->get(); присоединилось норм, но не получается обратиться $teacher->user()->offices() ($teacher - это экземпляр модели в foreach)
invariance
а не к 1с
Samat
кто-нибудь знает, что я тут не так делаю?