Ответы пользователя по тегу Laravel
  • Как решить проблема с отправкой почты при помощи gmail в laravel?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Возможно у вас не цепляется .env
    Для теста, попробуйте в файле bootstrap/app.php перед $app->singleton
    добавить загрузку .env
    $app->loadEnvironmentFrom('/полный_путь_до_файла/.env');
    Ответ написан
    1 комментарий
  • Как в laravel создать ключ сессии и сохранить?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Скорее всего у вас не завершается работа контроллера или хендлера. Где то ниже стоит die/exit/dd etc...
    По этому сессия не сохраняется
    Ответ написан
  • Какой код нужно переносить в отдельные классы?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Не надо называть из хендлерами.
    Если брать пример $result = ['my_data' => $var];
    То не надо конечно. Но я понимаю о чем вы. Хотя если оперировать объектами в полной мере, то можно создать что то типа responseMyData

    Контроллер принимает реквест и отдает респонс, вызывая хендлр. Больше в нем не должно быть и строчки кода.
    За исключением каких то индивидуальных реализаций. Вот пример моих контроллеров. Убрал под

    Код котроллера - спойлер
    <?php
    
    class orderController extends AbstractController {
    
        /**
         * @ApiDoc(
         *     section="travelSystem",
         *     input=OrderRequest::class,
         *     statusCodes={
         *          200="sucess",
         *          404="Order not found"
         *     },
         *     views={"night_build"}
         * )
         * @RestDoc(
         *     security={Access::ORDER}
         * )
         * 
         * @return Response
         */
        public function orderAction(OrderRequest $orderRequest): Response
        {
            // Команда - простой объект с геттерами
            $command = new orderCommand(
                $orderRequest->getHotel(),
                $orderRequest->getCheckIn()
            );
            // Хендлер - в котором как раз и происходят все 
            // нужные нам операции по обработке
            $this->get('commandBus')->handle($command);
    
            return $this->responseForRest();
        }
    }


    Как вы видите, тут имеются свои особенности, но котроллер тоненький.
    Что же происходит в текущем хендлере?
    Там проверяется существование дублирующих записей (а это вызов репы и условие), далее вызывается модель для order, которая получает команды и уходит на запись. Это приходится дублировать, т.к. код по сути индивидуальный для каждого обработчика но схож по функционалу.

    А вот после записи в БД, вызывается слушатель, который вызывает событие на запись логов.
    Данная операция нужна везде и поэтому вынесена в отдельный объект который может быть вызван в любом хендлере, путем DI конструктора
    Далее еще хуже =) В логах имеется свой хендлер и своя цепочка событий.

    Допустим мы делаем запись чего в блог, отправляем в хендлер нашу команду или что там может быть в laravel, где происходит обработка. В обработке может быть запись в БД а так же загрузка изображения.
    Вот загрузку изображения, стоит выделить в отдельный сервис.
    Ответ написан
    7 комментариев
  • Как правильно организовать рабочую среду для крупного проекта с GIT?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Организовать можете как угодно.
    Скажу как у нас, команда разрабов из 14 человек. Остальные это менеджеры, тестировщики и т.р.

    GIT и процесс работы:
    Bitbucket, Jira.
    Используем Kanban.
    Создается таск/баг/... с номером, который выставляется автоматически. Назначается исполнитель. Для назначений, есть проект-менеджер и т.п. В продукте JetBrains выбирается пункт - open task. Создается автоматически ветка с номером задачи (пущай будет test389).
    Далее вы кодите или чем там занимаетесь, выливаете в репу на удаленную ветку test389.
    По вашему коду проводят кодревью, если все норм то сливают в мастер.
    При мердже с мастером, автоматически запускаются тесты.
    Если все ок, выливают на дев сервер, там за дело берутся тестеры.
    Когда тестеры все проверили и одобрили, изменения (обычно их пачка), выливаются на прод.

    Хранение изображений
    Вариантов много, но мы используем mongodb. Там уже более миллиона фотографий.

    Базы
    база должна быть одинаковая на всех видах сайта (тест, дев, прод...), для этого используются миграции.
    Для фейковых данных можно использовать Faker.

    P.S.
    В гит вы храните только свой код, вендор там не нужен.
    Ответ написан
    2 комментария
  • Laravel 5.4 jwt RESTful API и базовый сайт?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Создайте директорию API/...
    В ней разместите контроллеры и т.д., все что вам потребуется для реализации RESTful.
    Там же создаете AuthController, маппите роутинг на него в routers/api.php
    Ответ написан
    Комментировать
  • Можно ли в Laravel 5 отправить данные методом POST без формы?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Из 4х тегов к вопросу относится только 1.
    Вопрос определяет ваш уровень знаний, который почти что на нуле.
    Но вы уже используете laravel.

    Надеюсь это для себя а не клиента.

    Вам стоило сначала просто загуглить ошибку которая происходит при ajax
    Ответ сразу бы нашли. https://laravel.com/docs/5.3/csrf
    Ответ написан
    Комментировать
  • Как выбрать сервер при подключение к базе?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    .env

    DB_HOST=localhost
    DB_DATABASE=my_name
    DB_USERNAME=my_name
    DB_PASSWORD=my_pas
    Ответ написан