# Basis ### Inleiding Op de financiële beurs kan je aandelen kopen van bijvoorbeeld Ajax, Netflix Faceboot (Meta), Tesla of ABN Amro. Met een aandeel koop je een (heel) klein stukje van het bedrijf. Maakt het bedrijf winst dan deel jij via dat aandeel ook mee in de winst. Je opdrachtgever heeft gevraag om een CRID te maken zodat hij zijn aandelenbezit kan bijhouden. De applicatie moet in het Engels. De naam van de applicatie wordt *stock*, dat is Engels voor aandeel. ### Wat moet je weten? Je kent HTML, PHP, CSS en je hebt ervaring met programmeren in de MVC-structuur. Zoals we dat met Yii gedaan hebben. ### Composer Composer is de installer voor PHP-tools en frameworks zoals Yii en Laravel. Je hebt composer al geïnstalleerd. Maar voor de zekerheid hier nog een keer de link: [https://getcomposer.org/doc/00-intro.md#installation-windows](https://getcomposer.org/doc/00-intro.md#installation-windows) ### Maak nieuw Laravel project We maken een nieuw Laravel project en noemen dat *stock*. ``` composer create-project laravel/laravel stock ``` Open dit project in VCS. In de terminal start je de development server van Laravel. ``` php artisan serve ``` Ga naar de browser en open localhost:8000. Je ziet de welkom pagina van Laravel. ### Maak een nieuwe database Start XAMPP en maak met [http://localhost/phpmyadmin](http://localhost/phpmyadmin) een nieuwe database en noem die *stock*. [![image-1667033012461.png](https://www.roc.ovh/uploads/images/gallery/2022-10/scaled-1680-/image-1667033012461.png)](https://www.roc.ovh/uploads/images/gallery/2022-10/image-1667033012461.png) In Laravel (in VCS) op je de .env file en je verandert de database *laravel* naam naar *stock* [![image-1667033254058.png](https://www.roc.ovh/uploads/images/gallery/2022-10/scaled-1680-/image-1667033254058.png)](https://www.roc.ovh/uploads/images/gallery/2022-10/image-1667033254058.png) ### Migrations In Laravel maak je de database tabel niet in phpmyadmin, maar dat doe je met Laravel. De reden hiervoor is dat als je je code aan iemand anders geeft de database tabellen door Laravel worden aangemaakt. Als we het model maken dan wordt er vanzelf een migratie file aangemaakt. ``` php artisan make:model Stock --migration ``` Ga nu naar database/migrations en open de file xxxxxxx\_create\_stocks\_table.php De functie up() is aangemaakt, maar bevat twee standaard regels. Bereid de functie uit zodat deze er als volgt komt uit te zien. ```PHP public function up() { Schema::create('stocks', function (Blueprint $table) { $table->increments('id'); $table->string('stock_name'); $table->string('ticket'); $table->decimal('value', 8, 2); $table->timestamps(); }); } ``` Nu geven we Laravel het commando om de database tabel te maken volgens onze beschrijving. ``` php artisan migrate ``` Ga naar phpmyadmin en controleer of de tabel is aangemaakt. Stel je wil de tabel veranderen dan kun je met het volgende commando kun je de migratie dan opnieuw uitvoeren. ``` php artisan migrate:refresh ``` Laravel maakt meer tabellen aan, maar de stock tabel moet er ook bij staan. [![image-1667034023416.png](https://www.roc.ovh/uploads/images/gallery/2022-10/scaled-1680-/image-1667034023416.png)](https://www.roc.ovh/uploads/images/gallery/2022-10/image-1667034023416.png) ### Model Het model voor stock staat in app/Models/Stock.php. Met regel 9 verwijzen we naar de juiste tabelnaam, *stocks*. ```PHP class Stock extends Model { protected $fillable = [ 'stock_name', 'ticket', 'value' ]; protected $table = 'stocks'; use HasFactory; } ``` Regel 3 t/m 8 zorgt ervoor dat de velden door de gebruiker via Laravel zijn aan te passen. Regel 9 zorgt ervoor dat we de database met handige Laravel functies kunnen raadplegen en aanpassen. ### Waar staat wat in Laravel? De belangrijkste file locaties in Laravel zijn.
**database naam** .env
**migratie bestanden** database/migrations
**routes** web.php
**models** app/Models/
**controllers** app/Http/Controllers/
**views** resources/views/
\--