Skip to main content

01 Waar zijn we gebleven?

We kijken even terug wat we in Yii L1 hebben gedaan en aan het eind van deze terugblik configureren we onze bestaande Yii installatie zodat we in de vervolg stappen beschikken over twee handige debug functies.

We hebben in de vorige lessenserie over Yii hebben we het volgende behandeld:

  • installatie
  • CRUD maken (via GUI in Yii)
  • MVC
  • Routing
  • Menu in Yii
  • Grid view in Yii

Weet je nog wat dat allemaal is, doe dan de quiz. Wil je de quiz super goed maken of weet je niet precies meer wat al deze termen inhouden lees dan even verder.

Samenvatting Yii - level 1

Installatie YII

Voor de installatie hebben we composer nodig. Als composer is geïnstalleerd dan kunnen we een nieuw Yii project beginnen met het commando:

composer create-project --prefer-dist yiisoft/yii2-app-basic <naam van het nieuwe project>

<naam van het nieuwe project> moet je dan vervangen door de naam van jouw project (in de vorige lessen world).

Als je met (bijv.) VCS jouw nieuwe Yii project folder opent dan kun je de Yii webserver starten met:

php yii serve

Als Yii eenmaal is geïnstalleerd dan moet je nog een paar zaken wijzigen zoals de database naam en de manier waarop jij routing wilt gebruiken. Hiervoor moet je de volgende bestanden aanpassen:

  • config/web.php
  • config/db.php

Wil je meer ddetaisl weten, kijk dan nog een keer hier.

CRUD

Crud staat voor Create, Read, Update en Delete. Dat zijn de vier basishandelingen die je op een tabel in de database kunt uitvoeren. Dat kan met plain PHP, met Yii, met Laravel, en met nog veel meer systemen. Crud is vaak de basis van een web applicatie. Met Yii kun je een hele crud applicatie laten genereren. Je hoeft heir dus niets voor te coderen.

MVC

MVC staat voor model, view controller. En is een manier waarop je in Yii en Laravel je code opdeelt.

In het model beschrijf je hoe en waar de data in de database wordt opgeslagen.

In de view beschrijf je hoe de data aan de gebruiker wordt getoond Hierin zt vaak veel HTML/CSS en andere opmaak elememten.

In de controller beschrijf je waar de gegevens in de view vandaan komen en voer je eventueel bewerkingen of berekeningen uit op de data.

Routing

Routing is de vertaling van de URL (jouw webadres) naar een bestand op de webserver.

Dus hoe vertaald www.domain.com/rapport/edit.php?id=1 zich naar een bestand. Of stel dat je op de pagina van de genoemde URL iets wit wijzigen hoe weet je dan welk bestand je moet openen?

In Yii en Laravel is de routing anders dan bij XAMPP.

Wil je dit nog eens nalezen klik dan hier.

Menu

Yii heeft zijn eigen ingebouwde manier om een menu te maken. In de menu les van Yii Level 1 hebben we gezien hoe je een menu kan aanmaken of kan wijzigen.

Yii Grid

Yii heeft een handige grid view waarmee je data in een soort Excel blad kan zien. Je kan sorteren en zoeken net als Excel en je hoeft er bijna niets voor te coderen. In deze les van Yii level 1 hebben we kennis gemaakt van de Yii grid view.

Opdracht debugging

Om straks de opgave goed te kunnen maken, gaan we een eenvoudige debug functie maken.

Easy Debugging

Als je de aanpassingen in dit onderdeel uitvoert, dan kun je later in de code de volgende twee functies gebruiken:

d($objectnaam) bekijk $object de code loopt gewoon door.
dd($objectnaam) bekijk $object de uitvoering van de code stopt.

Hoe krijg je dit? Eenvoudig twee stappen.

Stap 1, New file config/functions.php

<?php
/**
 * Debug function
 * d($var);
 */
function d($var,$caller=null)
{
    if(!isset($caller)){
        $caller = debug_backtrace(1)[0];
    }
    echo '<code>Line: '.$caller['line'].'<br>';
    echo 'File: '.$caller['file'].'</code>';
    echo '<pre>';
    yii\helpers\VarDumper::dump($var, 10, true);
    echo '</pre>';
}

/**
 * Debug function with die() after
 * dd($var);
 */
function dd($var)
{
    $caller = debug_backtrace(1)[0];
    d($var,$caller);
    die();
}

Stap 2, Edit config/web.php - voeg regel 3 en 4 toe.

<?php

/* Include debug functions */
require_once(__DIR__.'/functions.php');
Inleveren

Niets, maar zorg ervoor dat je de aanpassingen goed hebt uitgevoerd anders loop je in de vervolg stappen vast.

--