Может войдёшь?
Черновики Написать статью Профиль

Статьи AlexeyMezenin

Хорошие практики Laravel: соглашения об именовании

Best practices Хорошие практики

Эта статья - попытка собрать в одном месте все существующие на данный момент соглашения об именовании, гласно или негласно принятые сообществом Laravel. Я решил собрать всю информацию в виде удобной таблицы, актуальную версию которой вы всегда сможете найти здесь.

Что Правило Принято Не принято
Контроллер ед. ч. ArticleController ArticlesController
Маршруты мн. ч. articles/1 article/1
Имена маршрутов snake_case users.show_active users.show-active, show-active-users
Модель ед. ч. User Users
Отношения hasOne и belongsTo ед. ч. articleComment articleComments, article_comment
Все остальные отношения мн. ч. articleComments articleComment, article_comments
no_bugs

не понял, почему свойства класса или переменные в camelCase?

Хорошие практики Laravel: принцип единственной ответственности (Single Responsibility Principle)

Best practices Хорошие практики

Небольшое вступление

В мире Laravel существует очень серьезная, на мой взгляд, проблема. Laracasts, книги, видео туториалы, статьи и даже документация показывают нам использование плохих практик. Понятно, что делается это для популяризации фреймворка, снижая порог вхождения для новичков. Действительно, благодаря такому подходу, человек может написать работающее веб приложение при минимальных усилиях. И это хорошо. Плохо то, что разработчик продолжает писать низкокачественный код даже в сложных приложениях, в результате чего они порой становятся абсолютно неподдерживаемыми. Это значит, что любое изменение функционала в таком приложении занимает в разы, а иногда и в десятки раз больше времени разработчика и, соответственно, денег клиента. Также, эти…

ice_stranger

Не первый раз вижу попытки для передачи параметров в валидатор создавать отдельный класс. На мой взгляд этот подход усложняет читаемость кода и засоряет проект лишними классами. Подчеркну, передача параметров и процесс валидации - это разные понятия, валидация формы происходит в ларавелевском Валидаторе, поэтому передача параметров в валидатор в контроллере не нарушает принципа SRP.

Мой вариант:

public function store(Request $request)
{
    $this->authorize('create', Model::class);

    $request->validate([
         'title'     => 'required|max:255',
         'content'   => 'required',
         'make_id'   => 'required|exists:makes,id',
         'thumbnail' => 'nullable|max:255'
   ]);

   $model = Model::create(request->all());

   return redirect()->route('models.edit',['model'=> $model->id])
       ->with([
            'message' => _('car.model_added'),
        ]);
}

созданию файла тут вообще не место, передаем урл созданного файла

Словарь терминов Laravel

laravel термины

Очень часто случаются ситуации, когда разработчики не сразу понимают друг друга. Общаясь на форуме, они называют одни и те же вещи по-разному. В ход идут различные переводы одних и тех же терминов, слэнг и рунглиш, режущие слух.

Мне кажется, я нашел выход: можно пользоваться словарем, поддерживаемым и регулярно обновляемым всем сообществом. Внести изменения можно здесь, с помощью коммита, а обсудить наилучший вариант перевода того или иного термина можно в данной ветке. Словарь будет регулярно обновляться, поэтому вы смело можете внести эту страницу в закладки.

Неплохой, на мой взгляд, альтернативой данному словарю может быть использование оригинальных терминов на английском…

Proger_XP

Думаю, надо дать статье короткий URL. Как насчёт https://laravel.ru/terms?

← Назад | Дальше → Движется на Habravel