Ответы пользователя по тегу Laravel
  • Какие проекты на Laravel с открытым исходным кодом имеют правильную архитектуру?

    @andrei_pro
    Изучайте код других, популярных библиотек, концепций. Пробуйте где-то внедрять, только с опытом практики вы поймете все детали и натренируете мышление к пониманию где и почему это можно и нужно применить.

    Вот вам примеры для изучения:
    awesome-laravel
    Ответ написан
    Комментировать
  • Как обновить каждую 2 запись?

    @andrei_pro
    Model::chunk(function($models){...})
    Ответ написан
    Комментировать
  • Как правильно организовать разработку на Laravel + Docker?

    @andrei_pro
    Вот как пример docker-compose.yaml в корень проекта с ларой.

    version: '2'
    services:
    
      app:
        build:
          context: ./docker/services/app
          dockerfile: ./Dockerfile
        working_dir: /var/www
        volumes:
          - ./:/var/www
        env_file: ./.env
        depends_on:
          - mysql
        restart: always
    
      routine:
        build:
          context: ./docker/services/routine
          dockerfile: ./Dockerfile
        working_dir: /var/www
        volumes_from:
          - app
        env_file: ./.env
        depends_on:
        - app
        restart: always
    
      web:
        build:
          context: ./docker/services/web
          dockerfile: ./Dockerfile
        working_dir: /var/www
        ports:
          - 80:80
          - 443:443
        restart: always
        volumes_from:
          - app
    
      mysql:
        image: mysql:5.7
        volumes:
          - mysql-db:/var/lib/mysql
        environment:
          - "MYSQL_ROOT_PASSWORD=rootpass"
          - "MYSQL_DATABASE=db"
          - "MYSQL_USER=user"
          - "MYSQL_PASSWORD=pass"
        restart: always
        ports:
          - 3306:3306
    
    volumes:
      mysql-db:
        driver: local


    Дальше нужно создать папки в docker/services и там папки с Dockerfile и конфигом.

    Как пример app в нем композер и нода для билда (это не тру подход, но можно юзать. Нужно все в отдельные контейнеры):
    FROM php:7.1-fpm
    
    RUN apt-get update \
        && apt-get install -y \
            git gnupg ssh cron nano supervisor \
            libmcrypt-dev libfreetype6-dev libjpeg62-turbo-dev libpq-dev \
            libjpeg-dev libpng-dev zlib1g-dev libmagickwand-dev --no-install-recommends \
        && pecl install imagick \
        && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
        && docker-php-ext-enable imagick \
        && docker-php-ext-install gd mcrypt mbstring pdo pdo_mysql pdo_pgsql zip bcmath
    
    RUN cd ~ \
        && curl -sL https://deb.nodesource.com/setup_10.x | bash - \
        && apt-get install -y nodejs \
        && apt-get install -y build-essential
    
    RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer


    mysql:
    FROM mysql

    И другие контейнеры web там конфиг nginx, routine там имидж от app для выполнения тасков из очереди.
    Ответ написан
    5 комментариев
  • Почему не редактируется поле, если оно пустое?

    @andrei_pro
    $product->description()->save(new Description(['body' => $request->body]));
    или
    $product->description()->update(['body' => $request->body]);
    Ответ написан
    2 комментария