38K Views

MVC: EEN nieuw Inzicht In het Bouwen van Web Toepassingen

Christopher Alexander zegt, „Elke patroon beschrijft een probleem dat optreedt over en weer in onze omgeving, en beschrijft vervolgens de kern van de oplossing voor dat probleem, op een manier dat u kunt gebruik maken van deze oplossing een miljoen keer over, zonder ooit te doen op dezelfde manier twee keer“.

Als software engineer, we hebben allemaal gehoord van mensen delen hun paar woorden van wijsheid over hoe het niet „het wiel opnieuw uitvinden“. Als er al een oplossing voor een veelvoorkomend probleem, het is in ons belang om gebruik te maken van, in plaats van het verspillen onze tijd aan het bedenken van nieuwe oplossingen en het perfectioneren van het.

Dat is grappig, want hoewel ik het niet geheel eens met niet ‚opnieuw het wiel uitvinden“, ik geloof dat perfect samenvatting van de kern van design patterns in de software engineering, en dat is wat we gaan het vandaag over hebben. Meer specifiek, we praten over het MVC patroon en hoe het speelt een belangrijke rol in de ontwikkeling van een grote applicatie.

MVC Patroon (Model – View – Controller)

MVC is een software architectuur patroon, wat eenvoudig gezegd betekent dat het een patroon voor het definiëren van de structuur en de onderliggende werking van een applicatie vanuit een architectonisch oogpunt. Traditioneel gebruikt voor het bouwen van desktop-Gui ‚ s, dit patroon is al op grote schaal wordt toegepast voor de bouw van web applicaties, en elke uitvoering van dit patroon verschillen in hun interpretatie, met subtiele verschillen. Dat wil zeggen dat er geen „juiste manier“.

MVC is, zoals de naam al doet vermoeden verdeelt de toepassing in drie samenhangende onderdelen: Model, View en Controller

  • Model: Het model is het application-object, dat is gewoon een andere manier van zeggen dat het is gebruikt voor het opslaan van de gegevens die gebruikt worden door onze applicatie, en is de brug tussen de View component & de Controller component. Het Model is niet op de hoogte van de andere twee samenstellende delen: de view en de controller.
  • : is Het model op het scherm van de presentatie, in de zin dat de weergave is van wat de gebruiker ziet wanneer het gebruik van uw applicatie. Het neemt de gegevens die pass op, en maakt dat het uiteindelijke resultaat dat zichtbaar is op het scherm. In het geval van een web-app, kan je het zien als de laatste HTML-document dat is gemaakt door de web browser (user-agent).
  • Controller: Controller definieert de manier waarop de gebruiker omgaat met onze applicatie. Het is de taak van de op te nemen in de user-ingangen, een update van de desbetreffende model dienovereenkomstig, en dan is het opnieuw renderen van het uitzicht. De Controller is wat lijm zowel het model en bekijk samen, en de meerderheid van onze applicatie logica bijbehorende user interface zich bevindt.

 

Een eenvoudige manier voor te stellen het MVC patroon is te denken aan een model met een aantal statistische gegevens. Het uitzicht maakt de gegevens die in het model in een grafiek. Dit diagram kan een cirkeldiagram of een staafdiagram, afhankelijk van wat de voorkeur van de gebruiker, die wordt afgehandeld door de controller.

Er is niet veel meer te ontdekken over het MVC patroon, wat we hebben gesproken over bovenstaande is meer dan genoeg om te begrijpen een basiskennis van it. Laten we verder gaan en het bouwen van een eenvoudige PHP applicatie te begrijpen van het MVC patroon in meer diepte.

De toepassing zullen we het gebouw zal heel eenvoudig zijn. We maken gebruik van een enkele php-bestand (index.php) voor het verwerken van de logica van onze webapplicatie. We breken onze applicatie in controllers die overeenkomen met de verschillende weergaven. Alle controllers zal gaan in de Controller directory, alle uitzicht op zal gaan in de Weergave map, en alle het model in het Model directory. Dus hier is hoe we de structuur van de mappen van onze applicatie:

Application
-> Controller
-> Model
-> View
-> index.php

 

// index.php

ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);

function autoload($className)
{
    include_once "Controller/{$className}.php";
    include_once "Model/{$className}.php";
}
spl_autoload_register("autoload");

$requestAction = !empty($_GET['action']) ? $_GET['action'] : 'Home';

switch ($requestAction) {
    case 'User':
        $controller = new UserController();
        break;
    default:
        $controller = new HomeController();
        break;
}

$controller->handleRequest();

 

// Controller/UserController.php

class UserController{
    public function handleRequest()
    {
        include "View/userView.php";
    }
}

 

// Controller/HomeController.php

class HomeController{
    public function handleRequest()
    {
        include "View/homeView.php";
    }
}

 

// View/userView.php

echo (''
    . '<h1>Web Application</h1>'
    . '<p>User View</p>'
);

 

// View/homeView.php

echo (''
    . '<h1>Web Application</h1>'
    . '<p>Home View</p>'
);

Wat we hier doen is eigenlijk het ophalen van de gegevens van de pagina die de gebruiker bezoekt vanaf $_GET[‚action‘], die als set kaarten de actie van de bijbehorende controller. Als er geen actie wordt afgestemd, dan hebben we standaard naar de Home-Controller. Voor elke controller die we hebben, hebben we ook een functie handleRequest (), die de aanvraag afhandelt en voert het applicatie dan ook het renderen van een bepaald beeld, of het omleiden van de gebruiker naar een andere pagina (bijvoorbeeld na succesvolle verzending van het formulier).

Hopelijk, als je juist de flow van de applicatie die we aan het bouwen bent hier, u zult beginnen te zien de voordelen van een MVC aanpak voor het bouwen van dingen. Voor mij persoonlijk is het een goed georganiseerd en gestructureerd. Het is zoals het verplaatsen van Procedureel Programmeren om Object Georiënteerd Programmeren, behalve in dit geval, doen we hetzelfde met het bouwen van onze toepassing.

We hebben nog niet verdwenen veel in detail te treden over het model onderdeel van het MVC patroon, maar dat is een ander onderwerp samen en iets dat ik zou willen om te vertrekken van de lezers te verkennen voor zichzelf. Voor de basis-onderdelen, kunt u werken met uw model (die is gebruikt om gegevens op te slaan) in de controller en het doorgeven van dat model op uw mening. Vergeet niet dat het model alleen het doel is om het beheer van de gegevens, en is niet op de hoogte van zowel de Controller en het Uitzicht. De Controller is wat dat lijmen zowel de View en het Model. En Bekijk hoe u uw model op de gebruiker. Er is absoluut geen noodzaak van het forceren van een model in een gezicht waar het niet nodig is, dus het is mogelijk voor een weergave die niet afhankelijk is van een model.

Category(s) Design uvdesk
. . .

Comment

Add Your Comment

Be the first to comment.

css.php