Voor onze interne systemen maken wij gebruik van het Laravel framework die het ontwikkelen veel makkelijker en sneller maakt. Het framework kunnen we middels packages van derden uitbreiden waardoor het integreren van Twitter veel sneller kan.
Zoals de meeste Laravel ontwikkelaars gebruikten we in Laravel 4 de workbench commando. Taylor Otwell heeft deze commando uit Laravel 5 gehaald om ontwikkelaars aan te sporen de packages niet alleen voor Laravel te ontwikkelen maar ook voor los gebruik zonder het framework. Hoewel hier begrip voor is maakt het voor ons het ontwikkelen van de packages toch iets lastiger. En de packages zijn in ons geval enkel voor Laravel en niet als stand-alone bedoeld.
@reinink @philsturgeon @assertchris @CalEvans yeah i purposefully removed my “workbench” tool from Laravel bc I want a PHP wide solution
— Taylor Otwell (@taylorotwell) January 16, 2015
Gelukkig is het makkelijk om de workbench commando terug te krijgen in Laravel 5. Na het vergelijken van de code en dependencies van Laravel 4 en 5 kwam ik op de volgende oplossing:
1. Voer de volgende commando’s uit om composer de workbench bestanden te laten installeren:
composer require "illuminate/workbench:dev-master" composer update
2. Nu moeten we Laravel vertellen dat workbench aanwezig is. Open config/app.php (of je environment config bestand) en voeg het volgende toe aan de array met providers:
'IlluminateWorkbenchWorkbenchServiceProvider',
3. Open bootstrap/autoload.php en voeg het volgende toe na de lijn met “require __DIR__.’/../vendor/autoload.php’;”:
/* |-------------------------------------------------------------------------- | Register The Workbench Loaders |-------------------------------------------------------------------------- | | The Laravel workbench provides a convenient place to develop packages | when working locally. However we will need to load in the Composer | auto-load files for the packages so that these can be used here. | */ if (is_dir($workbench = __DIR__.'/../workbench')) { IlluminateWorkbenchStarter::start($workbench); }
Nu weet Laravel dat het de workbench bestanden moet laden. Voila, je kan de workbench commando weer gebruiken.
Opmerking: Er is een reden waarom Taylor de commando heeft weggelaten en het is aannemelijk dat het in de toekomst niet meer zal werken. Maar het kan handig zijn om een beetje met Laravel 5 te spelen.