Development

Documentation/nl_NL/book/1.0/02-Exploring-Symfony-s-Code (diff)

You must first sign up to be able to contribute.

Changes between Version 15 and Version 16 of Documentation/nl_NL/book/1.0/02-Exploring-Symfony-s-Code

Show
Ignore:
Author:
Stefan.Koopmanschap (IP: 86.94.154.72)
Timestamp:
09/10/07 22:29:49 (10 years ago)
Comment:

Chapter 2 finished

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/nl_NL/book/1.0/02-Exploring-Symfony-s-Code

    v15 v16  
    687687'''Constanten''' 
    688688 
    689 Surprisingly, you will find very few constants in symfony. This is because constants have a major drawback in PHP: you can't change their value once they are defined. So symfony uses its own configuration object, called sfConfig, which replaces constants. It provides static methods to access parameters from everywhere. Listing 2-20 demonstrates the use of sfConfig class methods. 
    690  
    691 Listing 2-20 - Using the sfConfig Class Methods Instead of Constants 
    692  
    693 // Instead of PHP constants, 
     689Verrassend genoeg zal je maar weinig constanten vinden in symfony. Dit is omdat in PHP constanten een groot nadeel hebben: Je kan hun waarde niet aanpassen nadat ze gedefinieerd zijn. Daarom gebruikt symfony een eigen configuratie object, genaamd sfConfig, die deze constanten vervangt. Het bied statische methodes om van overal toegang te krijgen tot parameters. Listing 2-20 demonstreert het gebruik van de sfConfig class methodes. 
     690 
     691''Listing 2-20 - Gebruik van de sfConfig class methodes in plaats van constanten'' 
     692{{{ 
     693#!php 
     694<?php 
     695// In plaats van PHP Constanten, 
    694696define('SF_FOO', 'bar'); 
    695697echo SF_FOO; 
    696 // Symfony uses the sfConfig object 
     698// Gebruikt symfony het sfConfig object 
    697699sfConfig::set('sf_foo', 'bar'); 
    698700echo sfConfig::get('sf_foo'); 
    699  
    700 The sfConfig methods support default values, and you can call the sfConfig::set() method more than once on the same parameter to change its value. Chapter 5 discusses sfConfig methods in more detail. 
    701 Class Autoloading 
    702  
    703 Classically, when you use a class method or create an object in PHP, you need to include the class definition first. 
    704  
     701}}} 
     702 
     703De sfConfig methodes ondersteunen standaard waardes en je kan de sfConfig::set() methode vaker aanroepen om de waarde van de parameter aan te passen. Hoofdstuk 5 gaat in meer detail in op de sfConfig methodes. 
     704 
     705'''Class Autoloading''' 
     706 
     707Vanouds is het altijd zo geweest dat je, wanneer je een class methode gebruikt of een object aanmaakt in PHP, je eerst de class definitie moet includen. 
     708 
     709{{{ 
     710#!php 
     711<?php 
    705712include 'classes/MyClass.php'; 
    706713$myObject = new MyClass(); 
    707  
    708 But on large projects with many classes and a deep directory structure, keeping track of all the class files to include and their paths takes a lot of time. By providing an __autoload() function (or a spl_autoload_register() function), symfony makes include statements unnecessary, and you can write directly: 
    709  
     714}}} 
     715 
     716Maar bij grote projecten met veel classes en een diepe directory structuur is het bijhouden van all die class bestanden en hun paden om te includen een lastige klus. Door het bieden van een __autoload() functie (of een spl_autoload_register() functie), maakt symfony de include statements overbodig, en kan je direct schrijven: 
     717 
     718{{{ 
     719#!php 
     720<?php 
    710721$myObject = new MyClass(); 
    711  
    712 Symfony will then look for a MyClass definition in all files ending with php in one of the project's lib/ directories. If the class definition is found, it will be included automatically. 
    713  
    714 So if you store all your classes in lib/ directories, you don't need to include classes anymore. That's why the symfony projects usually do not contain any include or require statements. 
    715  
    716     For better performance, the symfony autoloading scans a list of directories (defined in an internal configuration file) during the first request. It then registers all the classes these directories contain and stores the class/file correspondence in a PHP file as an associative array. That way, future requests don't need to do the directory scan anymore. This is why you need to clear the cache every time you add or move a class file in your project by calling the symfony clear-cache command. You will learn more about the cache in Chapter 12, and about the autoloading configuration in Chapter 19. 
    717  
    718 Summary 
    719  
    720 Using an MVC framework forces you to divide and organize your code according to the framework conventions. Presentation code goes to the view, data manipulation code goes to the model, and the request manipulation logic goes to the controller. It makes the application of the MVC pattern both very helpful and quite restricting. 
    721  
    722 Symfony is an MVC framework written in PHP 5. Its structure is designed to get the best of the MVC pattern, but with great ease of use. Thanks to its versatility and configurability, symfony is suitable for all web application projects. 
    723  
    724 Now that you understand the underlying theory behind symfony, you are almost ready to develop your first application. But before that, you need a symfony installation up and running on your development server. 
     722}}} 
     723 
     724Symfony zal dan zoeken naar een MyClass definitie in alle bestanden die eindigen op php in een van de lib/ directories van het project. Als de class definitie wordt gevonden zal het deze automatisch includen. 
     725 
     726Dus als je alle classes in de lib/ directories opslaat, dan hoef je geen classes meer te includen. Dat is waarom een symfony project normaal gesproken geen include or require statements bevat. 
     727 
     728  Voor een betere performance scant symfony een lijst met directories (gedefinieerd in een intern configuratiebestand) tijdens de eerste request. Het registreert dan alle classes die in deze directories worden gevonden en slaat deze class/bestand lijsten op in een PHP bestand als een associatieve array. Op die manier hoeven de directory scans niet meer bij elke aanroep uitgevoerd te worden. Dit is ook waarom je de cache moet legen nadat je een class toevoegt of verplaatst binnen je project. De cache leeg je met het symfony clear-cache commando. Je zal meer leren over de cache in Hoofdstuk 12, en over de configuratie van het autoloaden in Hoofdstuk 19. 
     729 
     730'''Samenvatting''' 
     731 
     732Het gebruik van een MVC framework dwingt je om je code te verdelen en te organiseren volgens de conventies van het framework. Presentatiecode gaat naar de view, data manipulatie gaat naar het model, en de aanvraag manipulatie logica gaat in de controller. Het maakt het gebruik van het MVC patroon zowel behulpzaam als erg limiterend. 
     733 
     734Symfony is een MVC framework geschreven in PHP 5. De structuur van het framework is ontworpen om het beste van het MVC patroon te krijgen, met het grootste gebruiksgemak. met dank aan de uitgebreidheid en de configurabiliteit is symfony zeer bruikbaar voor alle web applicatie projecten. 
     735 
     736Nu dat je de onderliggende theorie achter symfony kent, ben je bijna klaar om je eerste applicatie te ontwikkelen. Maar voordat je dat doet, moet je een symfony installatie op je ontwikkelomgeving werkend krijgen.