Статьи

6 причин переехать в усадьбу Ларавеля

Примечание: чтобы быстро приступить к работе с Homestead, см. Этот быстрый совет . Для объяснения того, что это такое, читайте ниже.

Laravel Усадьба , в двух словах:

официальный, предварительно упакованный «ящик» Vagrant, который предоставляет вам прекрасную среду разработки, не требуя установки PHP, веб-сервера и любого другого серверного программного обеспечения на локальном компьютере.

Другими словами, он автоматически делает то, что мы делали раньше, вручную через Vagrant и PuPHPet в подобных статьях.

Так что же отличает его от обычной установки Vaprobash / Vagrant / PuPHPet? Посмотрим.

1. Это работает

В отличие от других популярных решений для упрощения настроек Vagrantfile, Homestead редко не загружается, и если это происходит, это исправляется в течение нескольких минут. Если вы имели дело с решениями GUI Vagrant, вы, вероятно, заметили, как редко можно запустить все это после самого первого запуска. Это всегда что-то вроде устаревшего или чрезмерно обновленного Puppet, устаревших репозиториев Ubuntu или какой-то другой загадочной ошибки, требующей энергичных «форумов» для деконструкции. Усадьба просто … работает.

Homestead устанавливается на Ubuntu 14.04. с PHP 5.5, настолько новым, насколько это возможно, без погружения в область бета / RC , Nginx (потому что мы все уже отказались от Apache, верно?), MySQL и Postgres, так что вы мгновенно готовы и к Heroku ( по умолчанию это Heroku Postgres), Node (для всех ваших статических задач по компиляции ресурсов, фоновых задач и других менее важных для бизнеса вещей), Redis, Memcached и Beanstalkd (для всех ваших потребностей в кэшировании и организации очередей), Laravel Envoy (для всех ваших удаленных задачи сервера) и Fabric + Hipchat Extension, чтобы вы могли выполнять развертывание приложения через Hipchat (также называемый chatops).

2. Это одобрено Otwell

Хомстед, являющийся официальным, как, например, сделанный Тейлором Отвеллом, отцом Ларавела, означает, что он автоматически должен соответствовать определенным стандартам. В то время как сообщество Laravel не лишено своей драмы (кого волнует, как называется класс? Если революционно новый фреймворк называет модель картофелем, фасадом или ракетным кораблем, это прекрасно, пока работает картофель / фасад / ракетный корабль). ), именно исключительность участия Тейлора в нем подчеркивает простоту и качество, которые так необходимы в современном мире PHP. Мы видели слишком много проектов с открытым исходным кодом, разрушенных командами эго, ревностными участниками или некомпетентными мастерами на все руки, и я лично считаю, что почти исключительное участие Тейлора в улучшении Laravel — это то, что заставляет его сиять над остальными и по-настоящему позволяет ему конкурировать с Phalcon по качеству.

Homestead — это его собственный проект, называемый «официальной средой местного развития», и он сделает все возможное, чтобы поддерживать его высокое качество и обеспечивать его постоянную работу. Что-нибудь меньшее, и это пятно на его репутации. В наши дни в PHP нет лучшей гарантии долгосрочной надежности проекта, чем то, что он (в основном) принадлежит человеку, который так заботится о качестве.

3. Быстро настроить

Установка Homestead — это кусок пирога. Следуя инструкциям на странице документации, все, что вам нужно сделать, это добавить коробку усадьбы в ваш Vagrant (если у вас ее еще нет) и клонировать репо.

Есть дополнительный шаг, к которому мы не привыкли — настройка SSH. Это также легко сделать, и после клонирования репозитория необходимо отредактировать файл Homestead.yaml. Просто укажите соответствующие строки на ваш ключ (ы) SSH, и все готово. В моем случае мне пришлось изменить это:

 --- ip :   "192.168.10.10" memory :   2048 cpus :   1 authorize :   /Users/ me /. ssh / id_rsa . pub keys : 
     -   /Users/ me /. ssh / id_rsa folders : 
     -  map :   /Users/ me / Code to :   /home/ vagrant / Code sites : 
     -  map :  homestead . app to :   /home/ vagrant / Code / Laravel / public variables : 
     -  key :  APP_ENV value :   local 

в

 --- ip :   "192.168.10.10" memory :   2048 cpus :   1 authorize :  C : \Users\Bruno\.ssh\id_rsa . pub keys : 
     -  C : \Users\Bruno\.ssh\id_rsa folders : 
     -  map :  D : \VM\vagrant_boxes\homestead\Homestead to :   /home/ vagrant / Code sites : 
     -  map :  homestead . app to :   /home/ vagrant / Code / Laravel / public variables : 
     -  key :  APP_ENV value :   local 

После запуска vagrant up все должно vagrant up на свои места:

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

4. Порты

Homestead по умолчанию открывает некоторые важные порты, что упрощает обслуживание и управление вашей базой данных и другим установленным программным обеспечением на виртуальной машине с хост-машины. Например, чтобы подключиться к установленной базе данных MySQL с MySQL Workbench, установленной на вашем хост-компьютере (в моем случае Windows), вы просто вводите необходимые учетные данные в окне подключения:

К портам MySQL и Postgres по умолчанию просто добавляется ноль (т. Е. 33060 для MySQL вместо 3306), что позволяет подключаться к localhost (127.0.0.1:33060) и предоставляет доступ к БД на ВМ.

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

5. Лучшие практики и точки соприкосновения

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

6. Легко добавлять сайты

Из-за простоты конфигурационного файла, который можно настроить при точной настройке Homestead, добавление новых сайтов (vhosts) очень просто — вам даже не нужно иметь дело с отдельными конфигурациями vhost в файлах nginx.

По умолчанию в файле Homestead.yaml регистрируется один виртуальный хост с именем homestead.app, который служит сайтом по умолчанию для конфигурации сервера виртуальной машины. Вы можете получить к нему доступ напрямую, перейдя по IP- адресу виртуальной машины в своем браузере на обычном порту 80: http://192.168.10.10 . Однако вы можете захотеть, чтобы дополнительные приложения или проекты работали и были доступны по имени через браузеры вашего хост-компьютера. Вот тут-то и появляется блок «сайты». Определив другой сайт следующим образом:

 sites : 
     -  map :  homestead . app to :   /home/ vagrant / Code / Laravel / public 
     -  map :  homestead2 . app to :   /home/ vagrant / Code / H2 / public    

Вы регистрируете новый vhost. Затем, если вы добавите имя этого нового сайта в файл hosts (на любой платформе), вы сможете получить доступ к новому сайту по имени через браузер, только теперь вам нужно сделать это через порт 8000: http://homestead2.app:8000 ,

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

Недостающие особенности

Среди некоторых отсутствующих функций я бы назвал следующие:

  • В Homestead отсутствует глобальная установка композитора, а это значит, что вы должны получать ее вручную для каждого проекта
  • Вышеупомянутая проблема с портами — было бы лучше, если бы порты были просто открыты, чтобы можно было подключаться к IP-адресу виртуальной машины, а не к IP-адресу локального хоста через определенный порт. Это позволит избежать конфликтов портов и позволит одновременно запустить несколько виртуальных машин Homestead.
  • Там нет Laravel. Homestead было бы неплохо включить базовый проект Laravel по умолчанию в vhost по умолчанию, так что можно начать разработку мгновенно, не создавая новый с нуля.
  • Поддержка HHVM была бы аккуратной, в духе Vaprobash

Вывод

Laravel Homestead — одна из лучших и наиболее стабильных сред PHP Vagrant. Он очень быстро загружается, содержит очень мало зависимостей, которые могут сломаться во время работы, и настраивает современную, обновленную среду PHP, чтобы сразу начать взлом.

Вы используете это? Дайте нам знать.