• Nenhum resultado encontrado

LARAVEL FRAMEWORK - Webshop Boomberoepsonderwijs

N/A
N/A
Protected

Academic year: 2023

Share "LARAVEL FRAMEWORK - Webshop Boomberoepsonderwijs"

Copied!
15
0
0

Texto

(1)

LARAVEL FRAMEWORK

(2)

COLOFON

Boom beroepsonderwijs

info@boomberoepsonderwijs.nl www.boomberoepsonderwijs.nl Auteurs: Gabriel Sánchez Cano Titel: Laravel framework

ISBN: 978 90 3725 7182, maakt deel uit van pakket 978 90 3725 7205 Eerste druk/eerste oplage

© Boom beroepsonderwijs 2021

Behoudens de in of krachtens de Auteurswet gestelde uitzonderingen mag niets uit deze uitgave worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand, of openbaar gemaakt, in enige vorm of op enige wijze, hetzij elektronisch, mechanisch, door fotokopieën, opnamen of enige andere manier, zonder voorafgaande schriftelijke toestemming van de uitgever.

Voor zover het maken van reprografische verveelvoudigingen uit deze uitgave is toegestaan op grond van artikel 16h Auteurswet dient men de daarvoor wettelijk verschuldigde

vergoedingen te voldoen aan de Stichting Reprorecht (www.reprorecht.nl). Voor het overnemen van (een) gedeelte(n) uit deze uitgave in bijvoorbeeld een (digitale) leeromgeving of een reader in het onderwijs (op grond van artikel 16, Auteurswet 1912) kan men zich wenden tot Stichting Uitgeversorganisatie voor Onderwijslicenties (Postbus 3060, 2130 KB Hoofddorp,

www.stichting-uvo.nl).

De uitgever heeft ernaar gestreefd de auteursrechten te regelen volgens de wettelijke

bepalingen. Degenen die desondanks menen zekere rechten te kunnen doen gelden, kunnen zich alsnog tot de uitgever wenden.

Door het gebruik van deze uitgave verklaart u kennis te hebben genomen van en akkoord te gaan met de specifieke productvoorwaarden en algemene voorwaarden van Boom

beroepsonderwijs, te vinden op www.boomberoepsonderwijs.nl

(3)

INHOUD

Inleiding ... 6

Hoofdstuk 1 Project-1:-Laravel-ontwikkelomgeving ... 8

Theoriebron-Laravel-ontwikkelomgeving ... 9

Theoriebron-Een-Laravelproject-met-Composer-creëren ... 14

Theoriebron-Artisan-CLI ... 16

Begrippen ... 17

Hoofdstuk 2 Project-2:-Objectgeoriënteerd-programmeren ... 19

Theoriebron-Klassen ... 20

Theoriebron-Properties-en-datatypen ... 21

Theoriebron-Constructors ... 23

Theoriebron-Objecten ... 24

Theoriebron-Garbage-collection ... 25

Begrippen ... 27

Hoofdstuk 3 Project-3:-Objecten-en-methodes ... 28

Theoriebron-Access-methodes ... 29

Theoriebron-De-$this-pointer ... 30

Theoriebron-Methode-calls ... 31

Theoriebron-Encapsulation-(inkapseling) ... 31

Theoriebron-Primitieve-en-non-primitieve-datatypes ... 33

Theoriebron-Eigen-methodes ... 34

Theoriebron-Methode-overloading-(overschrijven) ... 35

Begrippen ... 37

Hoofdstuk 4 Project-4:-Subklassen ... 38

Theoriebron-Van-klasse-naar-subklassen ... 39

Theoriebron-Klasse-inheritance-(erven) ... 40

Theoriebron-Klasse-uitbreiden-in-subklasse ... 42

Theoriebron-Parentmethode-overschrijven ... 44

Theoriebron-Inheritance-implementeren ... 45

Begrippen ... 46

Hoofdstuk 5 Project-5:-Interfaces ... 47

Theoriebron-Interfaces ... 48

Theoriebron-Abstracte-klasse ... 50

Theoriebron-Abstracte-klasse-implementeren ... 51

Theoriebron-Objectcommunication ... 53

Theoriebron-Foutafhandeling-met-exceptions ... 54

Begrippen ... 58

Hoofdstuk 6 Project-6:-Design-patterns ... 59

Theoriebron-Prototype-design-pattern ... 60

Theoriebron-Het-singleton-design-pattern ... 66

Begrippen ... 68

(4)

Hoofdstuk 7 Project-7:-Databases ... 69

Theoriebron-Namespaces ... 70

Theoriebron-De-PDO-database-interface ... 71

Begrippen ... 78

Hoofdstuk 8 Project-8:-Datamapper-pattern ... 79

Theoriebron-Object-Relational-Mapping ... 80

Theoriebron-CRUD-methoden ... 82

Begrippen ... 88

Hoofdstuk 9 Project-9:-MVC-pattern ... 89

Theoriebron-Model-View-Controller ... 90

Theoriebon-MVC-met-datamapper ... 97

Theoriebron-Routers ... 103

Begrippen ... 107

Hoofdstuk 10 Project-10:-MVC-in-Laravel ... 108

Theoriebron-Views ... 109

Theoriebron-Routes ... 110

Theoriebron-Blade-templates ... 111

Theoriebron-Public-assets ... 113

Theoriebron-Navigatie-met-hyperlinks ... 114

Theoriebron-Controllers ... 114

Theoriebron-lay-outs ... 117

Begrippen ... 121

Hoofdstuk 11 Project-11:-Bootstrap-in-Laravel ... 123

Theoriebron-Bootstrap ... 124

Theoriebron-Designprincipes ... 125

Theoriebron-Bootstrap-classes ... 126

Theoriebron-Bootstrap-UI-components ... 129

Theoriebron-De-Alert-component ... 131

Theoriebron-Herbruikbare-components-met-$slot ... 133

Theoriebron-De-Modal-component ... 133

Begrippen ... 135

Hoofdstuk 12 Project-12:-Eloquent-in-Laravel ... 137

Theoriebron-Eloquent-in-Laravel ... 138

Begrippen ... 147

Hoofdstuk 13 Project-13:-CRUD-met-Eloquent ... 149

Theoriebron-CRUD ... 150

Theoriebron-CRUD-methodes ... 155

Reportage-creëren ... 156

Theoriebron-Forms-in-Laravel ... 156

Theoriebron-Error-en-success-alerts ... 163

Theoriebron-Reportage-editen ... 171

Begrippen ... 176

(5)

Hoofdstuk 14 Project-14:-Autorisaties-in-Laravel ... 177

Theoriebron-Laravel-Auth ... 178

Theoriebron-Persoonlijker-gebruikerservaring ... 181

Begrippen ... 183

Hoofdstuk 15 Project-15:-Zelfstudie ... 184

Zelfstudieproject ... 185

Index ... 186

(6)

INLEIDING

Digitale leeromgeving

Bij sommige opdrachten heb je hulpmiddelen nodig. Bijvoorbeeld filmpjes,

formulieren of een link naar een website. Deze staan allemaal in de digitale leeromgeving. Dit icoontje verwijst naar de digitale leeromgeving. Om hier te komen ga je naar

digitaal.boomonderwijs.nl/beroepsonderwijs.

Eerste keer inloggen in de digitale omgeving

Voordat je de digitale leeromgeving kunt gebruiken moet je je licentie activeren.

• Overleg met je docent welk type account je gebruikt.

• Ga naar www.boomberoepsonderwijs.nl/licentie.

• Bekijk de instructiefilm of lees het stappenplan.

• Volg de stappen.

Daarna kun je aan de slag!

Inleiding

Dit boek gaat over het werken met het framework Laravel. Een framework is een set geprefabriceerde bouwblokken van software. Dit zijn bouwblokken met generieke functionaliteiten die programmeurs gebruiken voor specifieke software-oplossingen. Ze gebruiken frameworks om snel prototypes en applicaties op te bouwen. Met gebruik van deze basis-softwareblokken hoeven programmeurs niet elke keer nieuwe applicaties vanaf nul te beginnen. De beste frameworks hebben een grote community gebruikers en een rijk ecosysteem aan extra software-libraries. Laravel is een van 's werelds meest populaire PHP-webframeworks voor het bouwen van webapplicaties gebaseerd op de Model View Controller (MVC) architectuur.

Laravel is een web-applicatieframework met een expressieve en elegante syntax.

In Laravel is de basis voor webontwikkeling al gelegd - zodat je snel kunt beginnen met het creëren van je webapplicatie.

Leerdoelen

1. Je kunt de Laravel ontwikkelomgeving installeren.

2. Je kunt objectgeoriënteerd programmeren in PHP.

3. Je begrijpt de conceptenobjectenenmethodes.

4. Je begrijpt het conceptSubklassen.

5. Je begrijpt het conceptinterfaces.

6. Je begrijpt design patterns.

7. Je kunt databases creëren.

8. Je kunt het datamapper pattern coderen.

9. Je kunt het MVC pattern coderen.

10. Je begrijpt het MVC pattern in Laravel.

11. Je kunt Bootstrap in Laravel implementeren.

(7)

12. Je kunt Eloquent in Laravel implementeren.

13. Je kunt CRUD met Eloquent in Laravel implementeren.

14. Je kunt Auth in Laravel implementeren.

Bij de opbouw is gebruikgemaakt van de taxonomie van Romiszowski, waarin onderscheid wordt gemaakt tussen kennis (het opslaan van informatie) en vaardigheden (acties uitvoeren om een doel te bereiken).

Elk hoofdstuk bestaat uit:

theorie, begrippen en opdrachten

Hierbij leer je over en oefen je met de praktijk.

vaardigheidlabs

Hierbij doe je een beroep op je reproductieve vaardigheden: acties uitvoeren om een doel te bereiken.

Test je kennis

Hiermee kun je jouw kennis van de theorie testen.

Aan het einde van het boek lever je een zelfstudieproject in. Hierbij doe je een beroep op je productieve vaardigheden: creativiteit en planningsvaardigheden; ze gaan gepaard met (complexe) beslissingsvorming op bewust of onderbewust niveau. Je moet de geleerde informatie spontaan toepassen in nieuwe situaties, waarin niet van tevoren geoefend is. Er moeten nieuwe oplossingen voor nieuwe problemen bedacht worden.

(8)

HOOFDSTUK 1

PROJECT 1: LARAVEL ONTWIKKELOMGEVING

Frameworks zijn constant aan het ontwikkelen met als gevolg dat de versies van het framework en bijbehorende libraries belangrijk zijn. Migratie naar nieuwe versies is een regelmatig proces.

In dit boek werken we met de nieuwste versie van Laravel 8 en de packagemanagers, die ons helpen met het creëren van een ontwikkelomgeving.

Aan het eind van dit hoofdstuk

1. kun je Homebrew voor Mac installeren en configureren 2. kun je Scoop voor Windows installeren

3. kun je PHP installeren en configureren

4. kun je phpMyAdmin installeren en configureren 5. kun je Composer installeren

6. kun je een IDE installeren

7. kun je een basis Laravel-app creëren.

(9)

Theoriebron Laravel ontwikkelomgeving

Om te kunnen beginnen met coderen in Laravel moeten we eerst een ontwikkelomgeving creëren. Deze ontwikkelomgeving bestaat uit de volgende softwarepackages en -modules:

Homebrew

Homebrew(voor Mac of Linux) is een gratis open source packagemanagersystem voor het installeren van softwarepackages in MacOS- en Linux-systemen. Zo kun je je lokale

ontwikkelomgeving met de benodigde softwarepackages en libraries creëren.

Scoop

Homebrew is voor Mac of Linux. Het beste package managementsystem voor Windows isScoop.

PHP

PHPis de programmeertaal voor het framework Laravel. PHP is een algemeen scripting programmeertaal, bijzonder geschikt voor de ontwikkeling van webapplicaties. PHP is ontworpen in 1994 door de Deens-Canadese programmeur Rasmus Lerdorf.

MySQL

MySQLis een open source Structured Query Language (SQL) en organiseert data in een of meer tabellen waar de kolommen gerelateerd aan elkaar zijn.

PhpMyAdmin

phpMyAdminis een open source Relational Database Management System (RDBMS) geschreven in PHP voor het administreren en webhosting van MySQL databases.

XAMPP

XAMPPis een open source cross-platform met de Apache webserver en de MySQL-database.

MAMP

MAMPis een open source Mac-platform met de Apache webserver en de MySQL-database.

Composer

Composeris een packagemanager voor het installeren en updaten van alle libraries en packages die een Laravelproject nodig heeft.

Visual Studio Code

Een Integrated Development EnvironmentIDEis een softwareapplicatie met uitgebreide faciliteiten voor softwareontwikkelaars. In dit boek gebruiken we Visual Studio Code. Maar er mogen andere IDE's gebruikt worden.

(10)

Opdracht 1 Installeer Homebrew

Ga naar: https://brew.sh/

Volg het stappenplan om Homebrew te installeren:

Open je terminal.

1.

Kopieer en plak het volgende Curl commando:

/bin/bash -c "$(curl -fsSL

https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2.

Voer dit Curl commando uit.

3.

Voer in je terminal vervolgens het volgende git-commando uit:

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch –unshallow

4.

Voer de volgende brew commando’s uit om Homebrew te configureren:

brew --version brew doctor

5.

brew update brew cleanup brew cask cleanup

Opdracht 2 Scoop (voor Windows) installeren

Ga naar de website https://scoop.sh om Scoop in Windows te installeren. Voer de stappen in de documentatie uit.

Opdracht 3 PHP installeren

Laravel 8 heeft PHP 7.3+ of hoger nodig. Controleer of de PHP-versie in je OS voldoet aan deze vereiste.

Code 1.1 brew search php

Controleer met Homebrew in je terminal of PHP is geïnstalleerd:

brew search php

1.

Vraag je PHP-versie aan:

php -v

2.

(11)

Als je PHP-versie kleiner is dan 7.3 moet je deze verwijderen en een nieuwe versie installeren.

In dat geval volg je de volgende stappen:

De-installeer zo nodig PHP met Homebrew:

brew uninstall php

1.

Installeer zo nodig PHP met Homebrew:

brew install php

brew services start php brew services list

2.

Opdracht 4 MySQL installeren

Laravel 8 gebruikt MySQL voor het creëren van databases. Controleer of MySQL geïnstalleerd is in je operating system.

Code 1.2 brew search mysql.

Controleer met Homebrew in je terminal of MySQL is geïnstalleerd:

1.

brew search mysql

Als resultaat zie je alle installaties van MySQL. Je ziet een vink naast je geactiveerde MySQL-installatie.

Als MySQL niet geactiveerd is, moet je deze alsnog installeren. In dat geval volg je de volgende stap:

Installeer zo nodig MySQL met Homebrew:

brew install mysql 1.

Opdracht 5 PhpMyAdmin installeren

We hebben phpMyAdmin nodig voor het administreren van databases. Controleer of phpMyAdmin is geïnstalleerd.

Hoofdstuk 1 Project 1: Laravel ontwikkelomgeving

(12)

Code 1.3 brew search phpmyadmin.

Controleer met Homebrew in je terminal of phpMyAdmin is geïnstalleerd:

1.

brew search phpmyadmin

Als resultaat zie je alle installaties van phpMyAdmin. Je ziet een vink naast je geactiveerde installatie.

Als phpMyAdmin niet geactiveerd is, moet je deze alsnog installeren. In dat geval volg je de volgende stap:

Installeer zo nodig phpMyAdmin met Homebrew:

brew install phpmyadmin brew info phpmyadmin 1.

Opdracht 6 Configureer phpMyAdmin

Het vorige commando Brew info phpmyadmin geeft meer informatie voor het configureren van phpMyAdmin en de Apacheserver. Voer het volgende stappenplan uit:

Open het bestand httpd.conf als volgt:

sudo nano /etc/apache2/httpd.conf

1.

Zoek de volgende regel en verwijder het commentaarteken(#) LoadModule php5_module libexec/apache2/libphp5.so

2.

Voeg onder aan httpd.conf de volgende code toe:

Alias /phpmyadmin /usr/local/share/phpmyadmin

<Directory /usr/local/share/phpmyadmin/>

3.

Options Indexes FollowSymLinks MultiViews AllowOverride All

<IfModule mod_authz_core.c>

Require all granted

</IfModule>

<IfModule !mod_authz_core.c>

Order allow,deny Allow from all

</IfModule>

</Directory>

Start Apacheserver op:

sudo apachectl stop sudo apachectl start

4.

Start phpMyAdmin op:

http://localhost/phpmyadmin/

5.

(13)

Opdracht 7 XAMPP- en MAMP-alternatieven

Een andere optie voor MySQL en phpMyAdmin is om de XAMPP- (cross platform) of MAMP- (MacOS-)webserver stack package te installeren.

Je kunt XAMPP hier downloaden: https://www.apachefriends.org/download.html Je kunt MAMP hier downloaden: https://www.mamp.info/en/downloads/

In de volgende figuur zie je de control-panels van XAMPP en MAMP.

Figuur 1.2 XAMPP en MAMP control-panels.

Opdracht 8 Composer installeren

Om Laravel te installeren hebben we de packagemanager Composer nodig. Composer installeert en updatet alle libraries en packages die een Laravelproject nodig heeft. Composer installeert deze als dependencies.

Installeer Composer vanuit je terminal met het volgende Curl commando:

curl -sS https://getcomposer.org/installer -o composer-setup.php

1.

Voer daarna de setup uit:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

2.

Start Composer vanuit je terminal op:

composer

3.

Om de nieuwste versie van Composer te installeren kun je nu typen:

sudo composer self-update

4.

Opdracht 9 Composer voor Windows installeren

Installeer Composer voor Windows vanuit de Composerwebsite:

Ga naar de website https://getcomposer.org. Ga naar de tab Getting Started en download Composer-Setup.exe installer. Installeer Composer.

Hoofdstuk 1 Project 1: Laravel ontwikkelomgeving

(14)

Opdracht 10 Een IDE installeren

Visual Studio Code is een lightweight IDE (Integrated Development Environment) die bij softwareontwikkelaars razendsnel gegroeid is in populariteit. De reden hiervoor zijn de open source extensions voor programmeertalen als Java, C#, PHP en JavaScript.

Je kunt Visual Studio Code hier downloaden: https://code.visualstudio.com/download

Opdracht 11 VS Code extensions installeren

Installeer in Visual Studio Code de extension Laravel Blade Snippets voor het coderen van Blade components. In VS Code ziet deze extension er als volgt uit:

Figuur 1.3 Laravel Blade Snippets extension.

Installeer ook de volgende drie extensions:

Figuur 1.4 Intelephense, PHP Debug en Code Runner extensions.

Theoriebron Een Laravelproject met Composer creëren

De Laravel ontwikkelomgeving is nu compleet. In de volgende opdracht creëer je een

Laravelproject voor onze eerste app. In de meeste gevallen werk je uit de volgende drie mappen van je Laravelproject:

Controllers codeer je in de map app/http/controllers

Models codeer je in de map app/models

Views codeer je in de map app/resources/views.

(15)

De Controller

DeControllerreageert op user-events in de View en stuurt de request naar het Model. De Controller kan terugkoppelen met de View.

Het Model

HetModelheeft toegang tot de database, kan data-operaties uitvoeren en kan de View updaten met nieuwe output. De enige restrictie is dat het Model niet kan terugkoppelen met de Controller.

De View

DeViewis voor user-input (requests) en displaylogica van data (output) vanuit het Model. De View kan een verzoek (event) naar de Controller sturen. De View kan query-requests rechtstreeks naar het Model uitvoeren.

Opdracht 12 Een Laravelproject met Composer creëren

Met de "--prefer-dist option" in composer maak je een app met de nieuwste Laravelversie. Voer vanuit je terminal in VS Code het volgende Composer commando uit:

composer create-project laravel/laravel --prefer-dist mijnEersteApp

Hier creëert Composer een Laravelproject in de map laravel met de naam mijnEersteApp. Als resultaat krijg je de mappenstructuur zoals in de volgende figuur.

Hoofdstuk 1 Project 1: Laravel ontwikkelomgeving

Referências

Documentos relacionados

Sociedade Brasileira de Química SBQ 33a Reunião Anual da Sociedade Brasileira de Química BIOATIVIDADE DA N-trans-cafeoiltiramina ISOLADA DAS SEMENTES DE ANNONA CRASSIFLORA EM