Laravel 5.3: Подготовка к разработке (для новичков)

    Приветствую тебя, Хабра-сообщество и новички в мире Laravel!

    Данная статья написана для новичков в сфере Лары и призвана помочь им в начальной стадии освоения фреймворка.

    В статье будут рассмотрены, так сказать, «базовые» пакеты, без которых лично мне трудно работать над каким-либо проектом.

    Итак, если Вам интересна тема, прошу под кат.

    Laravel 5.3



    1. Системные требования


    Фреймворк Laravel 5.3 требует:

    • PHP >= 5.6.4
    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension


    Весь этот набор компонентов присутствует в OpenServer под Windows.

    Да, кто-то скажет что фреймворк имеет Homestead в качестве виртуальной машины. Отвечу лишь, кому как удобно. Лично мне удобен OpenServer под «виндой».

    Также необходим Composer и NodeJS.

    2. Установка


    2.1. Настройка OpenServer


    Основные

    На вкладке «Основные» включаем автозапуск сервера и требование учетной записи Администратора. Вторая нам нужна при работе с файлом хостов.

    Сервер

    На этой вкладке устанавливаем настройки виртуального диска в «Автоопределение потребности», далее настройку использования переменной Path в «Свой Path + Win Path».

    Ставим галку «Защитить сервер от внешнего доступа», чтобы из локалки к нам никто не цеплялся.

    И… все) Переходим к следующей вкладке.

    Модули

    Для своих целей использую следующую связку модулей:

    • HTTP: Apache — PHP 7 x64 — NGINX 1.10
    • PHP: PHP 7 x64
    • PostgreSQL 9.5 x64
    • Redis 3.0

    Остальные пункты указываю «не использовать».

    FTP-сервер

    На этой вкладке, за ненадобностью, сразу выключаю галку запуска FTP-сервера.

    Почта

    По-умолчанию, все сообщения сохраняются локально в папку, но мне удобнее проверять, так сказать, «в боевом режиме».

    Так что, устанавливаю способ отправки через SMTP, далее сервер, порт, email-отправителя, имя пользователя (логин), пароль от учетки, шифрование в «авто».

    И… идем дальше:

    Домены

    Дабы каждый раз руками не добавлять новый сайт, в списке «Управление доменами» выбираем «Ручное + Автопоиск», а в правой части указываем «public», ибо в ней у нас и находится исполняемый файл.

    Планировщик задания (Cron)

    В своей работе использую Cron, так что настроим и его. Скажу, что для каждого сайта нужно добавлять свои комманды.

    Итак, во все значения времени ставим символ «звездочки» (*), а в графу «выполнить»:

    php "D:\OpenServer\domains\mysite.com\artisan" schedule:run
    

    Где указываем полный путь к файлу «artisan» в Вашем проекте.

    Скриншоты с подробностями















    2.2. Установка Laravel 5.3


    Перед началом разворачивания фреймворка убедитесь, что на компьютере установлены утилиты Composer и NodeJS. У второго использую версию 6 ветки, хотя это не принципиально.

    Перед установкой фреймворка, рекомендую воспользоваться пакетом hirak/prestissimo, позволяющим загружать несколько пакетов при установке/обновлении фреймворка одновременно. Без него процесс установки/обновления линейный, то есть запрашивает один пакет, ждет ответ, после скачивает (если ответ от сервера успешный), далее переходит к следующему. Пакет `hirak/prestissimo` же позволяет одновременно скачивать все необходимые пакеты и уже после этого начинает их ставить.

    Для установки пакета выполните в консоли:

    composer global require "hirak/prestissimo:^0.3"
    




    Итак, открываем командную консоль и вводим:

    composer global require "laravel/installer"
    

    Это нужно делать всего один раз при самой первой установке. При разворачивании последующих приложений, данную команду пропускаем.

    После того, как скачали установщик фреймворка в глобальное хранилище композера, нам нужно скачать сам фреймворк Laravel 5.3. Для этого у нас есть две команды на выбор:

    laravel new blog
    и
    composer create-project --prefer-dist laravel/laravel blog
    

    Они обе выполняют одно и то же действие, разница лишь… И так видно в чем разница)

    Единственный нюанс, при первой установке путь к исполняемому файлу композера прописывается автоматически при его установке, а путь к команде «laravel» — нет. Лично мне удобно использовать команду «laravel», поэтому идем в «Этот компьютер» (пользуюсь Windows 10, поэтому все шаги буду описывать под нее).

    Открываем «Параметры» и в поисковой строке вводим «Система», далее «Изменить параметры». В окне «Свойства системы» переходим во вкладку «Дополнительно» и жмем кнопку «Переменные среды».

    В открывшемся окне, в переменных средах для пользователя, открываем изменение `PATH`, где добавляем путь к файлу исполняемому `laravel`. У меня он находится в папке `c:\Users\Developer\AppData\Roaming\Composer\vendor\bin\`, где «Developer» — имя учетной записи (пользователя).

    Скриншоты с подробностями







    Итак, выполняем одну из команд:

    laravel new blog
    composer create-project --prefer-dist laravel/laravel blog
    

    Фреймворк скачается в папку «blog». Вы можете сразу прописать адрес Вашего сайта. Для этого видоизменим команду:

    laravel new mysite.dev
    composer create-project --prefer-dist laravel/laravel mysite.dev
    

    После этого необходимо перезапустить `OpenServer`, чтобы он «увидел» новый сайт.



    Все. На установка завершена и переходим к следующему этапу.

    3. Настройка Laravel 5.3


    3.1. .gitignore


    Так как многие пользуются репозиториями, сразу идем в файл `.gitignore`, приводя его к виду:

    .env
    /vendor
    /node_modules
    /public/storage
    /.idea
    Homestead.yaml
    Homestead.json
    *npm-debug.log*
    

    То есть, мы включаем в запрет выгрузки информации из node_modules и автогенерируемых файлов из `public/build` и другие «системные» файлы.
    Содержимое папок `vendor` и `node_modules` подгружаются автоматически

    3.2. Environment (.env)


    Здесь все достаточно просто:

    APP_ENV=local
    APP_DEBUG=true
    
    DB_CONNECTION=pgsql
    DB_HOST=127.0.0.1
    DB_PORT=5432
    DB_DATABASE=my_database
    DB_USERNAME=root
    DB_PASSWORD=
    

    `DB_CONNECTION` — имя подключения соответствующей базы данных из конфигурации `config/databases.php >> conntections`.

    В случае с PostgreSQL указываем `pgsql`, а в случае с MySQL/MariaDB — `mysql`.

    Также не забываем указывать порт, используемый для базы данных. Номер порта можно посмотреть в `OpenServer` в на вкладке `Сервер`.

    Перед этим, воспользовавшись приложением `PgAdmin III` из состава `OpenServer`, необходимо добавить базу данных и прописать параметры в файле `.env`.

    3.3. Пакеты


    Для работы нам понадобятся следующие пакеты:



    Laravel Exceptions

    Пакет нужен для улучшенного вывода информации о возникающих ошибках при разработке в режиме дебага.

    Установка проста: поочередно выполняем в консоли команды:

    composer require graham-campbell/exceptions
    composer require filp/whoops --dev
    

    Далее, в файле `config/app.php` добавляем сервис-провайдер `GrahamCampbell\Exceptions\ExceptionsServiceProvider::class` в блок `providers`.

    После этого, в файле `App\Exceptions\Handler.php` в блоке `use` меняем `use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;` на `use GrahamCampbell\Exceptions\NewExceptionHandler as ExceptionHandler;`

    Подробнее о пакете graham-campbell/exceptions.

    Скриншот



    Laravel Debugbar

    Выполняем команду:

    composer require barryvdh/laravel-debugbar
    

    Далее, в файле `config/app.php` добавляем сервис-провайдер `Barryvdh\Debugbar\ServiceProvider::class,` в блок `providers`.

    Подробнее о пакете barryvdh/laravel-debugbar.

    Скриншот



    Laravel 5 IDE Helper Generator

    Поочередно выполняем команды:

    composer require barryvdh/laravel-ide-helper
    composer require doctrine/dbal
    

    Далее, в файле `config/app.php` добавляем сервис-провайдер `Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,` в блок `providers`.

    После этого, блок `scripts/post-update-cmd` в файле `composer.json` из корневого каталога, приводим к виду:

    {
      "scripts": {
        "post-update-cmd":  [
          "Illuminate\\Foundation\\ComposerScripts::postUpdate",
          "php artisan ide-helper:generate",
          "php artisan ide-helper:meta",
          "php artisan optimize"
        ]
      }
    }
    

    Подробнее о пакете barryvdh/laravel-ide-helper.

    Laravel 5 Extended Generators

    Лично мне удобно создавать миграции и модели, используя всего одну команду: `php artisan make:migration:schema`.

    Например, нам нужно создать таблицу `news` с полями `slug`, `title`, `content`.

    php artisan make:migration:schema create_news_table --schema="slug:string:unique, title:string:unique, content:text"
    


    Для установки пакета под Laravel 5.3, нужно выполнить команду:

    composer require laracasts/generators --dev
    

    Далее, в файле `config/app.php` добавляем сервис-провайдер `Laracasts\Generators\GeneratorsServiceProvider::class,` в блок `providers`.

    Подробнее о пакете laracasts/generators.

    Завершение настройки пакетов


    После установки всех пакетов, выполняем в консоли:

    php artisan vendor:publish
    composer update
    


    С пакетами разобрались. На очереди Эликсир.

    4. Elixir


    4.1 Установка Elixir


    В консоли, находясь в папке проекта, поочередно выполняем команды:

    npm install --global gulp-cli
    npm install --no-bin-links
    

    Так как, еще со времен Laravel 5.2, пользуюсь VueJs, который в 5.3 идет «из коробки», подключим и его со всеми необходимыми пакетами:

    npm rebuild node-sass
    npm install hammerjs vue-async-data materialize-css
    

    Обратите внимание: такие компоненты, как `vue` и `vue-resource` не вписал, так как они идут «из коробки».

    Далее, в файле `resources/assets/js/bootstrap.js` после строки `window.$ = window.jQuery = require('jquery');` найдете подключение CSS-фреймворка Twitter Bootstrap (`require('bootstrap-sass');`). Так как в этом примере используем не его, а MaterializeCSS — заменяем на `require('../vendor/materialize-css/js/bin/materialize.min');`.

    Далее, находим:

    window.Vue = require('vue');
    require('vue-resource');

    И приводим к виду:

    window.Vue = require('vue');
    var VueResource = require('vue-resource');
    var VueAsyncData = require('vue-async-data');

    Vue.use(VueResource);
    Vue.use(VueAsyncData);


    4.2 MaterializeCSS


    Давно перешел с CSS-фреймворка Twitter Bootstrap в пользу «материального» дизайна MaterializeCSS, так как лично для меня он выглядит более современным.

    Для его установки необходимо выполнить команду:

    npm install materialize-css
    

    Далее, необходимо подключить используемый MaterializeCSS шрифт `Material Icon` в шаблоне:

    <!DOCTYPE html>
    <html>
    <head>
      <!--Import Google Icon Font-->
      <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    
    <body>
      //
    </body>
    </html>
    


    4.3 Настройка gulpfile.js


    При разработке очень удобный инструмент браузера — консоль. Чтобы организовать «быстрый поиск» проблемной строки, в файл `gulpfile.js` добавляем строку `elixir.config.sourcemaps = true;`, отвечающую за генерацию «сурс-мапа».

    При работе с MaterializeCSS и SASS, у меня он имеет вид:

    Рабочий gulpfile.js
    const elixir = require('laravel-elixir');
    
    require('laravel-elixir-vue');
    
    elixir.config.sourcemaps = true;
    
    /*
     |--------------------------------------------------------------------------
     | Elixir Asset Management
     |--------------------------------------------------------------------------
     |
     | Elixir provides a clean, fluent API for defining some basic Gulp tasks
     | for your Laravel application. By default, we are compiling the Sass
     | file for our application, as well as publishing vendor resources.
     |
     */
    
    elixir(mix =>
           {
               var
                   assets       = 'resources/assets/',
                   node_modules = '../../../node_modules/';
    
               mix
                   .sass('app.scss', 'public/css/app.css')
    
                   .copy(assets + 'images', 'public/images')
                   .copy(node_modules + 'materialize-css/fonts', 'public/build/fonts')
    
                   .webpack('app.js')
    
                   /*
                    * Version
                    */
                   .version(
                       [
                           'css/app.css',
                           'js/app.js'
                       ]
                   );
           }
    );
    


    Думаю, досконально объяснять для чего нужен каждый метод, не нужно. Просто оставлю здесь ссылку на документацию.

    4.3 Resources: SASS


    Так как не все компоненты из состава фреймворка MaterializeCSS нужны для разработки того или иного проекта, добавляем ссылки на них в наш файл `resources/assets/sass/app.scss`:

    Содержимое app.scss
    @charset "UTF-8";
    
    // Mixins
    // @import "../../../node_modules/materialize-css/sass/components/prefixer";
    @import "../../../node_modules/materialize-css/sass/components/mixins";
    @import "../../../node_modules/materialize-css/sass/components/color";
    
    // Variables;
    @import "../../../node_modules/materialize-css/sass/components/variables";
    
    // Reset
    @import "../../../node_modules/materialize-css/sass/components/normalize";
    
    // components
    @import "../../../node_modules/materialize-css/sass/components/global";
    @import "../../../node_modules/materialize-css/sass/components/icons-material-design";
    @import "../../../node_modules/materialize-css/sass/components/grid";
    @import "../../../node_modules/materialize-css/sass/components/navbar";
    @import "../../../node_modules/materialize-css/sass/components/roboto";
    @import "../../../node_modules/materialize-css/sass/components/typography";
    @import "../../../node_modules/materialize-css/sass/components/cards";
    @import "../../../node_modules/materialize-css/sass/components/toast";
    @import "../../../node_modules/materialize-css/sass/components/tabs";
    @import "../../../node_modules/materialize-css/sass/components/tooltip";
    @import "../../../node_modules/materialize-css/sass/components/buttons";
    @import "../../../node_modules/materialize-css/sass/components/dropdown";
    @import "../../../node_modules/materialize-css/sass/components/waves";
    @import "../../../node_modules/materialize-css/sass/components/modal";
    @import "../../../node_modules/materialize-css/sass/components/collapsible";
    @import "../../../node_modules/materialize-css/sass/components/chips";
    @import "../../../node_modules/materialize-css/sass/components/materialbox";
    @import "../../../node_modules/materialize-css/sass/components/forms/forms";
    @import "../../../node_modules/materialize-css/sass/components/table_of_contents";
    @import "../../../node_modules/materialize-css/sass/components/sideNav";
    @import "../../../node_modules/materialize-css/sass/components/preloader";
    @import "../../../node_modules/materialize-css/sass/components/slider";
    @import "../../../node_modules/materialize-css/sass/components/carousel";
    @import "../../../node_modules/materialize-css/sass/components/date_picker/default";
    @import "../../../node_modules/materialize-css/sass/components/date_picker/default.date";
    @import "../../../node_modules/materialize-css/sass/components/date_picker/default.time";
    



    4.3 Resources: View


    Итак, в ходе предыдущих действий, выполнив команду `gulp` в консоли, на выходе мы получим 2 файла: `app.js` и `app.css`. Так как была использована система контроля версий (не стоит же разглагольстовать на тему кэширования ресурсов браузером, да?), в шаблоне `resources/views/layouts/app.blade.php` необходимо прописать:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
    
      {{--<!-- CSRF Token -->--}}
      <meta name="csrf-token" content="{{ csrf_token() }}">
    
      {{--<!--Import Google Icon Font-->--}}
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    
      {{--<!-- Styles -->--}}
      <link href="{{ elixir('css/app.css') }}" rel="stylesheet">
    </head>
    <body>
    
      // Content
    
      {{--<!-- JavaScripts -->--}}
      <script src="{{ elixir('js/app.js') }}"></script>
    
    </body>
    </html>
    


    5. «Плюшки»


    Очень часто бывает так, что переименовали какой-нибудь класс и у нас сразу отказывает работать команда `composer update`.

    При большинстве ошибок, возникающих при запуске консольных команд, помогает команда:

    composer dump-autoload
    composer dumpautolod
    

    Да, команда одна и та же и оба метода правильные. Какой из них выбирать — решать Вам.

    Также, полезным будет посмотреть список всех `artisan`-команд:

    php artisan list
    

    И, конечно же, список активных роутов:

    php artisan route:list
    


    Репозиторий


    Для желающих разместил в публичном репозитории готовый настроенный по этому мануалу проект.

    Так сказать, можете посмотреть «в живую» как и что там.

    Разворачивать данный пример просто. Клонируем репозиторий:

    git clone https://github.com/andrey-helldar/laravel-example-to-juniors.git
    

    И поочередно выполняем команды:

    composer install
    npm install
    gulp
    

    Собственно, вот и все.

    Приятного пользования.

    P.S.: Если кто-то несогласен со мной и есть другие более лучшие решения, прошу писать в комментариях)
    Убедительная просьба комментировать свой негатив, указывая факты и как бы Вы сделали.
    Просто поливать не есть конструктивно. Это лишь захломляет страницу спамом, не более.

    UPD1: JhaoDa поделился ссылкой на готовый скелет на рабочую версию Laravel 5.3.

    LaravelRUS/laravel-skeleton — Скелет приложения на базе Laravel 5.3 от сообщества LaravelRUS.
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 96

      +4
      composer.lock разве должен быть в списке ignore? Ведь он дает гарантию что у всех стоят одинаковые версии и если кто нибудь обновился, то об этом узнают остальные участники.
        –1
        По этому вопросу не читал информации. Замечал лишь что когда проект из репы себе загружаешь и выполняешь `composer update` — файл перезаписывается. Вот и исключил его из выгрузки в репозиторий.
          +4
          Это фиксатор версий, он должен быть обязательно под git. Как уже сказали сразу будет видно кто и когда обновил набор утилит.

          Замечал лишь что когда проект из репы себе загружаешь и выполняешь `composer update`

          а надо делать `composer install` и тогда если в репе есть composer.lock версии пакетов будут поставлены в соответствии с его содержанием, то есть они будут идентичны для всех участников проекта.

          PS: статью не читал ибо настраивать окружение каждый раз и использовать опенсервер это как то лениво. Проще запилить свой кастомный vagran\docker.
            0
            У меня нет опыта работы с git в команде. Использую у себя для «переноса» исходников из дома на работу и обратно, попутно смотрю что когда сделал.
            Спасибо за объяснение, статью поправил.
              0
              еще посмотри laragon.org это вместо openserver. по мне он лучше
                0
                Судя по строке на лоадере при открытии страницы, в нем есть Apache 2.4, MariaDB 10.1, PHP 7.0 & 5.6 и NodeJS 5.10.
                По факту, в нем есть PostgreSQL 9.5, Redis 3.0, Nginx 1.10+?

                А то на странице кроме двух кнопок скачать ничего не нашел.
                +1
                Извини, но если нет серьёзного опыта, зачем писать 100500 статью для новичков. Тем более в ней 100500 вредных советов вроде open server вместо homestead, кривой gitignore, бесполезный и вредный whoops, который только мешает отдалке и т.д.
                  0
                  Про Homestead указано в статье, как и то, что кому что нравится — тот тем и пользуется. Лично мне он удобен.
                  По gitignore можно расширенный комментарий с фактами? Почему он «кривой»? Что не так? Как правильно?

                  Бесполезный и вредный Whoops? Вот это новость) На мой взгляд, таковым его будут считать те, кто пользоваться не умеет. Лично мне он очень помогает, в отличие от стандартного.

                  Убедительная просьба комментировать свой негатив, указывая факты и как бы Вы сделали. Просто поливать не есть конструктивно. Это лишь захломляет страницу спамом, не более.
                    +1
                    Честно говоря, не вижу особого смысла расписывать ответ для человека, который разработывает под виндой и не знает основ composer и требований к коммерческой разработке. Но раз хотите:

                    Из-за из-за опенстека на продакшене потом вылазят баги вроде регистра в названии файлов
                    Про гитигнор вам уже писали в комментах — composer.lock нельзя игнорить с него разворачивает проект т.к. там зафиксированы версии, игнорится папка public в которой помимо будут лежать ещё 100500 иконок для мобильных девайсов и для сеошников
                    Whoops лишь видеозменяет вывод ошибки, при этом добавляет свои, потому ещё и выбросили в новых версиях из laravel, загляните в баг трекеры.

                      –3
                      По Вашему мнению, работать под виндой — плохо?
                      Знаете, не Вам судить какую ОС предпочитает тот или иной разработчик.

                      Легко сказать «плохо», вот только информативность такого «сообщения» нулевая.
                      Сейчас Вы уже по факту объяснили свою позицию — это уже интересная беседа.
                        +2
                        Дело не в том какую ОС предпочитает разработчик, а то, на какой ОС будет крутиться проект, в 99% это unix. Соотвественно, разрабатывая на винде, нужно ставить виртуалку, чтобы не было проблем. Да и на линуксах тоже, чтобы енвайромент был одинаковым с продом.

                        Я активно помогаю по laravel, на тостере, на формумах и т.д., описаные проблемы очень типичны, потому что в интернете 100500 статей по laravel, которые написаны новичками. При том что есть хорошая дока и ларакаст.
                        +1
                        сам же виндовозом был и злобным линуксоненавистником, не?
                          0
                          винда на декстопе, линукс на сервере. не вижу противоречий.
                            0
                            А меня кусаете за то, что работаю под виндой.
                            Хотя ситуация такая же — винда на десктопе и линух на сервере.
                              –2
                              Какой линукс на сервере, когда вы вопреки рекомендациям документации laravel советуете людям openserver.
                                0
                                Читаем статью внимательнее:

                                Да, кто-то скажет что фреймворк имеет Homestead в качестве виртуальной машины. Отвечу лишь, кому как удобно. Лично мне удобен OpenServer под «виндой».

                                Разработка у меня исключительно под виндой, а на продакшн-сервере линух установлен. Что тут непонятно-то?

                                И, к тому же, я ничего не советую. так и пишу — кому на чем, а мне на этом.
                                  0
                                  Здесь же дело не в удобстве, а в разном функционале при работе под windows и linux, из-за которого ваш проект может вовсе НЕ РАБОТАТЬ под другой операционной системой.
                                    0
                                    Теоретически, может. На практике, лично ни разу не сталкивался — всегда работали проекты. Клиенты не жаловались.
                                      0
                                      Так ежик, вы даже с гитом в команде не работали, какой к чёрту опыт. Первая же проблема которая вылезет при переносе после вашей статьи — это права на файлы. И человек бежит на форумы спрашивать, ведь он же статью прочитал, зачем ему доки, если если человек с опытом так написал.
                                        0
                                        На оскорбления переходите? Негоже это.
                                        По-вашему, «опыт» — это работать с гитом в команде? Имхо, это приятная мелочь при разработке и, к тому же, крайне полезная.

                                        Вот вам встречная ситуация: на десктопе и сервере линукс. Работаем под одной системой с одними правами. Приходит Дед Лайн и выгружаем на сервер в продакшн — там другая система с другими правами. Результат: что из-под винды выгружать в линух, что с линуха в линух — суть-то та же остается. И точно также человек в гугл рванет за решением.

                                        Так что какой смысл хаять выбор человека под чем работать?
                                          0
                                          Где вы увидели оскорбления?

                                          Про вашу ситуацию я сказал выше https://habrahabr.ru/post/309568/?reply_to=9798148#comment_9797974 Даже под линуксом нужно разрабатывать в той же среде, что будет на проде.
                                            –1
                                            Так ежик,...

                                            Я расцениваю это как оскорбление в мой адрес.

                                            А по поводу разработки, как и писал раннее, лично у меня ни разу проблем не было с выгрузкой файлов на продакшн-сервер. Единственное, никогда под рутом не заливал файлы — вот и весь секрет.
                                              0
                                              Вот видите, почему важно давать точную информацию, а не рассчитывать на понимание новичками контекста.
                                    0
                                    Этот способ не будет работать при размере проекта, отличающегося от крошечного.
                                    Различий в операционных системах очень много, и вы будете постоянно сталкиваться с новыми. А не сталкивались только из-за того, что проекты у вас скорее всего не более 200-1000 часов. Как возьмёте проект побольше, работая в команде, так сразу поймёте несостоятельность своего способа.
                    +1
                    Вот да, сам хотел об этом написать. Я оставлю это тут: https://kyleferg.com/laravel-development-with-docker/

                    Может кому-то пригодится.
                    +2
                    После того как из репы загружаешь проект, надо делать 'composer install' в таком случае при наличии composer.lock устанавливаются именно те версии что указаны в composer.lock. В случае же 'composer update' можно попасть на неожиданное обновление и долго думать что же поломалось.
                      +1
                      Он обязательно должен быть в репозитории, добавление его в гитигнор — распротраненная ошибка.
                      Исключение — библиотеки.
                      Разберитесь с composer.
                      +2
                      Есть хороший ответ на SO по этому поводу http://stackoverflow.com/a/24247443.
                      Кратко: при разработке приложения определённо стоит коммитить lock-файл, чтобы в любой момент разворачивать приложение с теми же самыми зависимостями что и в прошлый раз; при разработке библиотеки – необязательно, потому что при включении библиотеки в проект её lock-файл будет игнорироваться проектом.

                      А по поводу install/update – придерживаюсь такого принципа, что всегда надо делать composer install. Если есть lock-файл, будет установка конкретных версий, если нет lock-файла, то будет установка актуальных версий. composer update стоит делать тогда и только тогда, когда преследуется цель именно обновить версии пакетов в lock-файле.
                        0
                        >> чтобы в любой момент разворачивать приложение с теми же самыми зависимостями

                        Да что там, еще и с теми же самыми версиями, один в один во всех окружениях.
                      +1
                      Хочу заметить что для новичков это все равно бесполезно. Ну то есть инструкция то конечно хорошая и подробная, но основной вопрос который возникает у новичков по каждому компоненту — «что это вообще такое и для чего оно используется». Когда становится понятно «что это», вопрос «как установить» уже решается простейшим гуглением.
                        +1
                        Зачем Гугл, если есть Хабр? ;)
                          +1

                          Всё решается простейшим хабрением?)

                            0
                            я не скажу за всю Одессу…
                            но мне в 99% случаев хватает :)
                          0
                          Новичок новичку рознь, как говорится.
                          Лично у меня, несколько лет назад, при изучении данной темы и вообще фреймворка (тогда и узнал что такое композер), также кратко нашел в англоязычном сегменте инструкции, и был лишь вопрос «как использовать?», а вопрос «что это и для чего?» крайне редко возникал — по ходу дела ответ сам находился.
                            0
                            Вопрос «что это» предполагает глубокое осмысление сути, понимание устройства и архитектуры современных веб приложений.

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

                            И в общем эти два вопроса особо и не связаны. Но человек, который хорошо понимает «что это», скорее всего со сложностями в вопросах установки даже не столкнется — для него это также естественно как набирать текст. А вот если человек не понимает ничего, то инструкция «как установить» ответа на вопрос «что это» ему не даст.
                              0
                              В целом согласен, хоть и отношусь к типу людей, которые вначале изучат «как установить» и, наблюдая за ошибками, понимаю суть куда лезет, чего делает (не всегда, но бывает), и уже в ходе работы познаю «что это».
                          +1
                          Прочитал, даже захотелось поставить, хотя бы на посмотреть, хотя по роду деятельности и не нужно. Спасибо.
                            +8
                            осилил
                            последний раз, когда я читал лярву для новичков, там все было куда проще

                            БЫДЛОКОДЕРЫ, ОСТАНОВИТЕСЬ!!!1

                            давайте разбирать, правда у меня куда-то пропал редактор с неудобными кнопками цитирования, так что буду так писать в кавычках

                            «Установка Laravel 5.3
                            Перед началом разворачивания фреймворка убедитесь, что на компьютере установлены утилиты Composer и NodeJS.»

                            т.е. для установки пхп фреймворка мне надо установить еще 100 мегабайт яваскрипта?

                            «На сайте sass-lang.com находим ссылку на Ruby Installer — жмем ее и качаем установочник, тыкая в большую красную кнопку. Устанавиваем, перезагружаем компьютер.»

                            т.е. для писания цсс мне надо установить еще почти 100 мегабайт руби? только для того, чтобы собирать цсс из исходников?

                            «Далее, в файле `config/app.php` добавляем сервис-провайдер `Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,` в блок `providers`.»

                            что мне это дает?
                            мануал в стиле «делай а, делай б» зачем? так надо!!!

                            «Давно перешел с CSS-фреймворка Twitter Bootstrap в пользу «материального» дизайна MaterializeCSS, поэтому заходим на сайт и качаем исходники для `SASS`.»

                            и чем он лучше? я посмотрел — как будто стили поменяли и контролы выглядят по-другому
                            были привычные кнопки, чекбоксы и все такое, теперь непонятно что и даже не видно границ рамок полей ввода

                            «Собственно, вот и все.
                            Приятного пользования.»

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

                            короче реально уже достали
                              +2
                              вы уже засрали все что можно

                              ну зачем так категорично?
                              что мощный 4х ядерный процессор не может переварить все эти нагромождения

                              напоминает знакомый плач админов на тему «великой и могучей программы 1С»

                                0
                                NodeJS обеспечивает работу Elixir. Без него невозможно это реализовать. В статье есть ссылка что такое Эликсир. Почитайте.

                                т.е. для писания цсс мне надо установить еще почти 100 мегабайт руби? только для того, чтобы собирать цсс из исходников?

                                А ты вручную будешь конвертировать SASS в CSS?
                                  +1
                                    0
                                    Это мне?) Вроде как про Эликсир не я хай поднимал)
                                    Наоборот, использую его вовсю уже давно)
                                      0
                                      Я про то, что зачем ставить Ruby?
                                        –1
                                        Возможно, это у меня ошибка такая была, но еще со времен 5.1, когда начал пользоваться SASS, эликсир выдавал ошибку без предустановленного node-sass, который выдавал ошибку без руби, скачанного с сайта sass-lang.com.
                                        Может это и исправили, но я не проверял. Делаю как привык.
                                          +1
                                          Если вы не сделаете компиляцию принудительно с помощью Ruby, то он не нужен. Компиляция по-умолчанию выполняется Libsass, который подключается через node-sass, который подключается через gulp-sass, который подключается через laravel-elixir.
                                            0
                                            Вроде все понял. На досуге пересмотрю свой взгляд на эту тему.
                                            Чую, до этого на костылях сидел)
                                            Спасибо!
                                              –1
                                              ты сидел на костылях и даже не замечал этого?
                                              а мне это глаза режет

                                              если есть артизан, то он должен уметь собирать хотя бы цсс, ладно уж там яваскрипт оставим
                                              я вообще думал, что для сборки сас есть софт под виндовс или плагин для иде типа пхпшторм
                                                0
                                                К сожалению, не замечал. Как-то привык.
                                                  +2
                                                  Не должен artisan собирать ни стили, ни скрипты, ни картинки пережимать и т. д. Он для backend. Работа с frontend это нода уже давно и прочно. Вот руби в этом стеке лишний конечно.
                                      +1
                                      Materialize стоило подтянуть через npm, а не идти и качать с сайта.

                                        0
                                        Так-то оно правильно, да лично у меня сложность возникает с разворачиванием репы на новом месте — так он вместе с репой подтянется, а через npm его дополнительно подтягивать нужно.
                                        Пытался на него шторм натравить, но он его не видит и на новом месте также приходится хоть вручную, хоть через шторм его выкачивать.

                                        Может это я чего-то еще не знаю, но, пока что, делаю как умею.
                                          0
                                          Не понял, какие трудности? прописываете зависимость в package.json и всё. Но ставить то конечно надо будет `npm i`. Вы же вендорный php код тоже не храните в репе и делаете `composer inst`.
                                            0
                                            Исправил. Спасибо!)
                                          0
                                          Вчера чистый проект поднял и подтянул materialize-css через npm. Версия что в npm, что на сайте — 0.97.7, НО при подключении из репы вылезает ошибка в консоли — «Vel function not found», а при загрузке «вручную» файла с офф сайта — все норм.
                                          А так да, раньше я как-то делал неправильно. С репы лучше загружать.
                                        +2
                                        Последний аргумент сбил с ног. Как он вообще взаимосвязан с предыдущими пунктами? Какая взаимосвязь рабочего окружения разработчика и финального результата?
                                          –4
                                          прямой нет конечно
                                          но я тут показал, как автор написал про пхп фреймворк для новичков, а получилось так, что новичку чтобы начать работать с пхп и писать какое-то приложение — надо установить 100500 костылей и непонятно зачем они нужны

                                          создается такое впечатление, что один идиот не понял, как что-то делать просто и придумал свой костыль
                                          потом другой идиот выдумал еще один костыль и к нему костыль
                                          это я про сас
                                          цсс усложнили настолько, чтобы для того чтобы писать цсс надо выдумать сас, а чтобы из сас получить цсс надо еще компилятор

                                          на стороне разработчика получается целая куча разного хлама, чтобы этим хламом сделать сайт, который будет валить браузер

                                          вот это круто, вот это уже даже не надо, это пикотехнологии веб 3.0
                                            +3
                                            Вы всерьез считаете что препроцессоры(и постпроцессоры?) для css придумали и используют «идиоты которые не поняли, как и что делать просто»?
                                              –5
                                              именно так
                                              раньше же как-то писали без всяких сас? писали
                                              чего сейчас не могут? хотели облегчить? ну и дальше классика: хотели как лучше, а получилось как всегда

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

                                              на хабре с дизайном намудрили что-то и 2-3 вкладке на хроме в андроиде и хром падает
                                              планшет куплен в 2012 году с гигом озу
                                              раньше вкладок 5 откроеш и читаеш себе

                                              или сайт с виду простенький, чистенький дизайн, а за собой тянет мегабайт скриптов и шрифтов только потому, что где-то надо было поставить пару иконок из шрифтов
                                                +1
                                                Зачем нам вообще компьютеры, машины, дома? Раньше же люди как-то жили в пещерах, прикрывались листиками и бегали с дубинками за разным зверьем…

                                                Ебей, лично у меня грузится ровно за 4 секунды с включенными adBlock, adBlock Plus, Ghostery и Kaspersky Protection при том, что комп не сказать что быстрый — лично мне за глаза хватает.

                                                Вот пруф




                                                По поводу Хабры с дизайном…

                                                Вот главная страница

                                                  +1
                                                  Вы показываете просто свою некомпетентность. Причем тут те мнимые (потому как я не вижу у себя таковых и доказательств в виде таймлайнов загрузки и т.п. я не вижу) тормоза описанных вами сайтов и препроцессинг css?
                                                  раньше же как-то писали без всяких сас? писали
                                                  чего сейчас не могут?

                                                  Ну это вообще даже не знаю как на такое отвечать) Представляете, могут, но не хотят, потому что лучше стало. И на производительность конечного результата (при условии отсутствия ошибок, которые так то и с простым css навернуть можно) наличие препроцессора не влияет. А вот на скорость разработки и удобство поддержки очень даже влияет.
                                                    –3
                                                    препроцессинг не при чем, вам трудно понять мою писанину и ход мысли, т.к. отсутствует образное мышление
                                                    оно позволяет моментально понимать смысл несвязанных частей мысли

                                                    раскладываю последовательно в логическую цепочку

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

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

                                                    т.е. усложнили жизнь путем ввода ненужной сущности «мобильный сайт»
                                                    в 100 раз усложнили цсс, потому что теперь надо писать их под разные размеры экранов и естественно это потянуло автоматизацию стилей

                                                    теперь нам надо выучить синтаксис и трюки написания стилей, чтобы улучшить производительность труда
                                                    это легко, когда ты до этого 5 лет каждый день писал стили, а ты представь себе человека, который с нуля входит? да у него мозги разорвет

                                                    и вот этот огромный один файл цсс на 200к подгружается и парсится браузером, занимая кучу времени
                                                    а там еще подгружается шрифт какой и яваскрипты фреймворка
                                                    и вот уже хром на планшете сожрал все озу и был прибит системой

                                                    делали сайты для мобильных платформ, а они там рушат браузер, потому что делатель тестировал не на планшете, а на десктопе путем изменения размера окна браузера
                                                    в лучшем случае на новом ифоне

                                                    теперь понятно, как сас привел к падению браузера?

                                                    «доказательств в виде таймлайнов загрузки»
                                                    при чем тут время загрузки? я говорю о времени отрисовки и ощущениям тяжести
                                                    я могу ощущать эту тяжесть при прокрутке страницы и в 2003 тот же ебей грузился сразу на скорости меньше мегабита и точно так же как и сегодня — тогда там покупали и продавали

                                                    сейчас при аукционах проходит куча времени, прежде чем запрос уйдет на сервер и нельзя даже близко прикинуть время и либо слишком рано накинул или уже аукцион закончился и все потому что отрисовка страницы стала медленная

                                                    для фф есть плагин, который в 3д показывает слои и это дает наглядное представление о нагромождении и хаосе в окончательном коде, который выглядит как лапша, зато у разраба код чистенький и разложен по полочкам и собирается автоматом
                                                    а браузер и так все схавает, да только вот давиться уже начал
                                                    +1
                                                    Всё дело в скорости разработки и дальнейшей поддержки, поэтому придумали препроцессоры.
                                                      –1
                                                      Сейчас буду утрировать, но где быстрее писать, и где проще ошибиться?
                                                      (ситуация типа после нескольких часов утомительной верстки)

                                                      Условно зададим блокам белый фон

                                                      CSS:
                                                      .div1 {
                                                          background-color: #ffffff;
                                                      }
                                                      
                                                      .div2 {
                                                          background-color: #ffffff;
                                                      }
                                                      
                                                      .div3 {
                                                          background-color: #fffff1;
                                                      }
                                                      


                                                      SASS:
                                                      $background-color: #ffffff;
                                                      
                                                      .div1 {
                                                          background-color: $background-color;
                                                      }
                                                      
                                                      .div2 {
                                                          background-color: $background-color;
                                                      }
                                                      
                                                      .div3 {
                                                          background-color: $background-color;
                                                      }
                                                      
                                                        +2

                                                        Предложу альтернативный вариант на Sass:


                                                        $background-color: #fff;
                                                        @for $i from 1 through 3 {
                                                          .div#{$i} { background-color: $background-color; }
                                                        }
                                              +2
                                              Статья вроде бы для новичков.
                                              Вы описываете, что Вы делаете и как Вы это делаете.
                                              Но не описываете для чего все это делаете.
                                              Т.е. новички поставив все по вашему мануалу потом долго будут думать «что со всем этим делать».
                                                0
                                                Когда я начинал изучение этого фреймворка, на дворе появился 5.0. Мануалов на русском языке практически не было на тот момент.
                                                Когда смотрел практические видеоуроки, зная технический английский, быстро разобрался что к чему. Причем, продолжительность многих уроков, как правило, не превышает 3-5 минут.
                                                После наши российские разработчики выкладывали почти то же самое на русском языке. В среднем, ролики длятся 10-20 минут, НО после просмотра половины таких роликов в голове мысли: «что это вообще было?», «зачем потратил столько времени впустую, если ответ на вопрос так и не нашел?».
                                                Да, российский люд больше воды лить любит (не все, но все же).

                                                Исходя из этого, при написании статьи и опирался на практику, а не на теорию. Кому надо будет — погуглят консольные команды да названия, учитывая что краткое описание, все же, я предоставил, как и ссылки на подробное описание.
                                                  0
                                                  Лара в принципе довольно легко изучается, особенно при использовании Laracast.
                                                  И начинал работать приблизительно в то же время, что и Вы.
                                                  Но как мне кажется в статье для «новичков» должно быть описание «для чего», иначе это уже не статья для новичков, а просто мануал по установке конкретных модулей.
                                                    0
                                                    Люди, пишущие любые инструкции, отчасти выступают в роли учителей. Ведь, инструкции чему-то же учат.
                                                    Как известно, учителя делятся на два типа: теоретики и практики.
                                                    Первые подробно объясняют что откуда взялось, за что отвечает, для чего нужно и как использовать. Вторые же, в основном, опираются на практический опыт, т.е. — вот вам факт и его нужно использовать так-то. Минимум теории.
                                                    Я отношусь ко второй группе.

                                                    На совершенство статьи и не претендовал. В статье почти «сухие» действия, коих, на мой взгляд, достаточно для общего представления действий.
                                                    Люди, которым мало изложенного в тексте, могут перейти по прикрепленным ссылкам, где уже теоретики написали инструкции с подробным описанием что-откуда-куда-зачем.
                                                +2

                                                У меня несколько вопросов:
                                                1) Зачем ставить openserver, когда достаточно php и встроенного сервера в него?
                                                2) Зачем public и composer.lock в ignore?
                                                2.1) Почему там же _ide_helper но ничего нет про стабы моделей, который он генерирует?
                                                3) Зачем ставить левый installer, когда лара создаётся через create-project?

                                                  +2
                                                  1) Чтобы Redis и PostreSQL работали «из коробки» :)
                                                    0
                                                    Отвечу так же по-порядку:
                                                    1) Под виндой чтоб все «из коробки» работало — прям над моим комментом об этом cjmaxik написал.
                                                    2) Про composer.lock уже обсудили чуть выше, а про паблик — не весь паблик в игнор. Там правила, некоторые файлы оставлять.
                                                    Вот, прогоняю gulp — он создает в папке `public/build` ресурсы с версией. Загоняем их в репу. На другом компе выгружаем с репы, меняем исходник — gulp — гоним в репу. В результате у нас ненужные файлы копятся, ведь, старые-то не удаляются.
                                                    Также у меня в папке public подключен storage — если его не запретить на выгрузку — он все файлы из папки гонит в репу. Это не есть гут.
                                                    2.1) Во времена 5.0 читал где-то на эту тему, что не стоит включать их в сборку. Также, во времена уже даже 5.2, при попытке залить пул-реквесты в пакеты на гитхабе, авторы пакетов просят убрать этот файл и перезалить пул-реквест.
                                                    4) «Левый» инсталлер, это который на офф сайте написан?)

                                                    First, download the Laravel installer using Composer:
                                                    composer global require «laravel/installer»


                                                    Make sure to place the ~/.composer/vendor/bin directory (or the equivalent directory for your OS) in your $PATH so the laravel executable can be located by your system.

                                                    Once installed, the laravel new command will create a fresh Laravel installation in the directory you specify. For instance, laravel new blog will create a directory named blog containing a fresh Laravel installation with all of Laravel's dependencies already installed:

                                                    laravel new blog

                                                      0

                                                      1) Это аргумент, да, я бы согласился, если бы это требовалось бы реально. Только они никак не относятся к изучению фрейма, как следствие — лишний акцент на технологии.


                                                      2) Как раз js\css должен собираться локально и пуллиться в репу сбилженный, т.к. это обязанность фронтэндера, а бекендер вообще ничего не должен знать о том как это всё собирается, ему нужен результат. И… В папке паблик лежит сторадж, что? о_0


                                                      2.1) По-этому надо их игнорить все, все 3 файла, а не только 2. Логично? =)


                                                      3) Да, "левый" инсталлер который написан на оф.сайте. Никто вам не запрещает его самому использовать, но заставлять новичков разбираться в этой глючной и никому не нужной хреновине — довольно самонадеянно по-моему. Потом приходит в чат километр таких людей и кричат "а почему это не пашет", а "почему то". И т.д. и выясняется в конце, что у одного денвер, у другого вагрант, у третьего ещё что-то там. А спрашивать "зачем" — бессмысленно. Отвечают — "так на сайте написано, а куда и что это — я не понимаю". И если в случае с вагрантом, докером, да даже с опенсервером есть какой-то смысл в этом действе, то инсталлер… А вы вот ответите в чём его преимущество? ;)

                                                        0
                                                        1. Это да. Просто упомянул, что есть средство значительно лучше денвера)
                                                        2. Я за. Проблема — лишние файлы в репе. Еще подумаю над этим вопросом. По поводу storage в доке написано. В 5.2 версии нужно было симлинк вручную прописывать, а тут команду дали: `php artisan storage:link` — она автоматом так делает. Симлинк `/public/storage` ведет на `/storage/app/public`
                                                        2.1. Тоже подумаю)
                                                        3. По инсталлеру никто не заставляет. Всего лишь написал что он есть и как сделать, чтобы заработал. Там же и написал:
                                                        Для этого у нас есть две команды на выбор:

                                                        laravel new blog
                                                        и
                                                        composer create-project --prefer-dist laravel/laravel blog


                                                        Они обе выполняют одно и то же действие, разница лишь… И так видно в чем разница)


                                                        Преимущество? С практической точки зрения между обеими командами преимуществ нет, ибо выполняют одно и то же действие одинаково. А с точки зрения времени, первую и писать быстрее, и запоминать легче. Например, `laravel new mysite` я помню наизусть, а `create-...` дальше не помню — надо лезть в офф доку, искать строку, копировать и вставлять в консоль. Лично для меня муторно.
                                                          +1
                                                          1. Лол, спасибо, что-то проглядел такое! =)
                                                          2. И как же указать папку и версию фрейма (ну например нужен LTS) для create blog? ;) А если долго запоминать — есть:
                                                            а) IDE с визуальной штукенцией
                                                            б) alias
                                                            в) IDE с автокомплитом
                                                            0
                                                            Вряд ли большинство новичков будет принудительно выбирать LTS, учитывая что их, насколько я понял, больше не будет.
                                                            Большинство введет одну из двух комманд по ману. Это факт. А кому потребуются параметры — воспользуются командой через композер.
                                                      0
                                                      `create-project` качает фрейм средствами композера, а `laravel new` — установщиком Лары, устанавливаемый самым первым по ману:
                                                      First, download the Laravel installer using Composer:

                                                      composer global require «laravel/installer»
                                                      0
                                                      5.3 уже стабилен? На продакшене кто-нибудь использует?
                                                        0
                                                        5.3.7 уже версия официальная)
                                                          0
                                                          Если про фреймворк.
                                                          +1
                                                          5.3 это версия ларавел или РНР?
                                                          +1
                                                          Просто оставлю это здесь — laravelrus/laravel-skeleton. Пулл-реквесты крайне приветствуются.
                                                            0
                                                            Добавил линк в статью. Пусть будет.
                                                            +1
                                                            По пункту отправки писем. Очень удобно использовать mailtrap.io.

                                                            По окружению: уже или «по взрослому» работать и повторять прод в виртуалке или забить на redis, apache, nginx.
                                                            ставим в .env
                                                            CACHE_DRIVER=file
                                                            SESSION_DRIVER=file
                                                            QUEUE_DRIVER=sync

                                                            и работаем через встроенный сервер. В итоге нужны только php+node+git. Можно и базу sqlite использовать.
                                                              +1
                                                              `DB_CONNECTION` — используемый тип драйвера. В случае с PostgreSQL указываем `pgsql`, а в случае с MySQL/MariaDB — `mysql`.


                                                              Не совсем верно. Это не тип драйвера это имя подключения по умолчанию из конфига database.connections.
                                                                0
                                                                Исправил. Спасибо!
                                                                0
                                                                А мне вот недавно встретилась информация, но Ларавель требует каких-то там настроек сервера, которые очень сильно затрудняют его использование на shared-хостинге. Вплоть до полной невозможности. Да?
                                                                –3
                                                                Я предполагаемый новичок при использовании фреймворков (Реально не было необходимости использования фреймворков любых, хватает своих самописов за пару часов). Сейчас «модно» использовать фреймворки, и при устройстве на работу необходимо знать хотя бы основные моменты их использования.
                                                                И мне совершенно не понятно для чего и почему нужно так много операций проводить. Оперсервер ставится просто кнопочками Next и Готово. (предполагаемо) Laravel как и другие фреймворки просто скачиваются/копируются в папку домена, единственно надо знать что и зачем скачивать/копировать. А дальше любимый нотепад и вперед на амбразуры по инструкции аля «Мой первый блог на Laravel».
                                                                Вот такая инструкция для меня как новичка бы подошла. А так выходит, что чуть ли не убегать от использования фреймворков с такими хелпами приходится…
                                                                  0
                                                                  Каждому свое. Лично мне на начальных стадиях знакомства, подобная информация помогла и то была только в англоязычном сегменте.
                                                                  Здесь, как говорится, всем не угодишь. Кому-то поможет, а кому-то нет.
                                                                    +1
                                                                    Вы сейчас из какого года нам написали? (Это к >Сейчас «модно» использовать фреймворки)
                                                                      –1
                                                                      Сейчас, это значит зашёл на hh и просерфил требования. Я же написал что новичок.
                                                                      И судя по комментариям к статьям — ваш вопрос также «модный»
                                                                    +1
                                                                    В пункте про описание gitignore команды npm. Или у меня в отображении страницы косяк?
                                                                      0
                                                                      Нет, не у тебя.
                                                                      Вчера текст обновлял и не заметил где накосячил. Сейчас исправлю.
                                                                      +1
                                                                      Лучше в config/app.php не указывать провайдеров, которые необходимы только для разработки.

                                                                      Рекомендуют использовать для этого app/Providers/AppServiceProvider.php.

                                                                      В методе register:

                                                                      if ($this->app->environment() == 'local') {
                                                                      $this->app->register('Laracasts\Generators\GeneratorsServiceProvider');
                                                                      $this->app->register('GrahamCampbell\Exceptions\ExceptionsServiceProvider::class');
                                                                      $this->app->register('Barryvdh\Debugbar\ServiceProvider::class');
                                                                      $this->app->register('Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class');
                                                                      }
                                                                        –1
                                                                        Такое неоднозначное чувство, когда решил зайти прочитаь статью для новичков о фреймворке, на котором работаешь уже давно и мало того, что от самой статьи не увидел никакой практической пользы для новичков, так еще и вредных советов наоставляли в ней вагон. Про вредные советы при этом пишут выше, а автор чуть ли не с пеной у рта спорит. Но я зайду с другой стороны — зачем автор написал сие творение? Вроде уже даже документации на русский достаточно много перевели, для самых упертых противников английского языка. Нет — всеравно будем писать статьи с вредными советами. Ждем статью о том как сделать блог на ларавел.
                                                                          +1
                                                                          где «Developer» — имя моего компьютера

                                                                          Может всё таки имя пользователя?

                                                                          Only users with full accounts can post comments. Log in, please.