Lokale Magento 2 ontwikkel locatie met Laravel Valet

05 februari 2017

Mijn grootste frustratie toen ik een hele tijd gelede startten met mijn Magento 2 webshop avontuur was het opzetten van een goede ontwikkel omgeving en het installeren van Magento 2. Dit behoort al enige tijd tot het verleden maar zie nog vaak genoeg ontwikkelaars die hun frustratie uitten op Twitter, Fora of Stack Exchange. Omdat we nu dagelijks met nieuwe Magento 2 webshops bezig zijn is het opzetten van een snelle test locatie absoluut cruciaal. In deze post alles wat je nodig hebt om Magento 2 lokaal te draaien in minder dan 3 minuten.

Magento 2 Lokale ontwikkel omgeving

We gaan een lokale webserver opzetten die Magento 2 lokaal laat draaien zonder enige hassle. We gaan Laravel Valet gebruiken als lokale webserver, en gebruiken daar bovenop een Magento2 driver (Overigens hebben we ook een magento1 driver). Die gaat zorgen voor de juiste configuratie voor het platform.

Wat is Laravel Valet

Laravel valet is een ontwikkel omgeving uitsluitend te gebruiken op Mac We hebben hier bij geen Vagrant nodig, Geen hostfile geklooi en kunnen eenvoudig zonder enige configuratie een 2e, 3e, 4e of 5e ontwikkel omgeving optuigen.

Laravel Valet komt voort uit het bekende php framework. We zijn dan ook met Laravel Valet in aanraking gekomen door de vele Laravel projecten die wij in 2015 en 2016 en inmiddels ook al in 2017 hebben ontwikkeld en opgeleverd.

Laravel Valet configureer jouw mac om altijd nginx te draaien in de achtergrond. Deze service wordt automatisch gestart bij het opstarten van jouw mac. Door een map aan te wijzen als ontwikkel locatie worden alle submappen automatisch omgezet in een *.dev ontwikkel locatie, deze extensie is overigens eenvoudig te wijzigen. Enkele highlights waarom ik Laravel Valet zo geweldig vind om te gebruiken.

  1. Je hebt een nieuwe WordPress, Magento of Laravel omgeving opgezet in enkele seconden.
  2. Installatie duurde slechts 2 a 3 minuten.
  3. Er worden door de community enorm veel drivers geschreven zodat ieder denkbaar PHP platform draait op Valet.
  4. Met een eenvoudig commando kun je je ontwikkel locatie beveiligen met SSL.
  5. Met een eenvoudig commando kun je zelfs de development locatie een unieke url geven zodat je hem tijdelijk online kan delen met klanten of mede-ontwikkelaars.
  6. PHP, MySQL en andere dependencies zijn eenvoudig los te switchen en te updaten. Zo gebruik ik voor enkele oude sites php5.6 en switch ik deze eenvoudig tijdens mijn ontwikkeling naar php7.1 of php7.2.

Laravel Valet installeren.

Laravel Valet installeren is erg eenvoudig. Hieronder staan de stappen uitgelegd. Valet gebruikt Homebrew en Composer voor de installatie dus zorg dat dit is geïnstalleerd. Controleer daarnaast of er geen andere installaties van Nginx of Apache gebruik maakt van Port 80.

  1. Install of update Homebrew naar de laatste versie brew update
  2. Installeer PHP 7.1 via homebrew via brew install homebrew/php/php71. Je kunt indien gewenst dus ook andere php versies direct installeren als dat nodig is.
  3. Installeer MySQL via brew install mysql en vervolgens brew services start mysql. Je kunt eenvoudig verbinden via 127.0.0.1 met gebruikersnaam root en zonder password.
  4. Installeer Laravel valet via composer global require laravel/valet en zorg er natuurlijk voor dat ~/.composer/vendor/bin is toegevoegd aan jouw systems $PATH. Dit kunt je controleren via echo $PATH als deze niet toegepast is draai dan export PATH="$PATH:$HOME/.composer/vendor/bin.
  5. Als laatste draaien we het valet install commando. Deze zorgt voor de configuratie van Valet, DnsMasq en de Valet daemon.

Je kunt Laravel valet evt. Handmatig starten via valet start of valet stop.

Laravel Valet Magento 2 Driver installeren

Nu we Laravel valet geïnstalleerd hebben, is het belangrijk de Magento 2 Driver te installeren. Zonder deze driver werkt Magento of Magento 2 niet met Valet.

Download de Laravel Valet Magento 2 Driver vanaf mijn Github Gists account:

<script src="https://gist.github.com/kayintveen/45ca3eb9c2c5d7f2ec2f60273b3b6b46.js"></script>

Plaats dit bestand in ~/.valet/Drivers/Magento2ValetDriver.php en herstart valet om het actief te krijgen.

Lokale Magento 2 ontwikkel omgeving opzetten.

Nu alle benodigdheden gereed zijn gaan we de ontwikkel omgeving opzetten. Als eerst moeten we Laravel Valet vertellen welke map gebruikt dient te worden. Persoonlijk heb ik altijd een Sites folder in mijn user root zitten, hierin heb ik alle lokale test en ontwikkel omgevingen draaien. mkdir ~/Sites. Hierin maak ik per site een folder aan zoals magentotest in mijn terminal in de Sites directory draaien we het commando valet park. Dit zorgt er voor dat de magentotest folder nu een eigen domein heeft gekregen magentotest.dev.

Alles is nu up en running en je kunt door gaan met de Magento 2 installatie zoals je gewend bent.

Blijf op de hoogte? Ontvang periodiek updates met interessante artikelen