Welcome to the Cookbook

loading...

3.4.3 De configuratie klasse

Ondanks dat er weinig zaken geconfigureerd moeten worden in CakePHP is het soms handig om voor je applicatie je eigen configuratie regels te hebben. In het verleden heb je misschien eigen configuratie waarden gedefinieerd door variabelen of constanten te declareren in bepaalde bestanden. Door dit te doen was je verplicht om elke keer dat de waarden nodig waren het configuratiebestand te includen.

De nieuwe Configure klasse van CakePHP kan gebruikt worden voor het opslaan en lezen van applicatie- of runtime specifieke waarden. Wees voorzichtig, deze klasse staat je toe om er alles in op te slaan en het dan te gebruiken in elk ander deel van je code: dit is een zekere verleiding tot het breken met het MVC patroon waar CakePHP voor ontwikkeld is. Het hoofddoel van de Configure klasse is om variabelen die tussen vele objecten gedeeld worden centraal te bewaren. Onthoud dat je probeert te leven volgens het principe "conventie boven configuratie" en dat je niet eindigt met het verbreken van de MVC structuur die we op zijn plek hebben gezet.

Deze klasse werkt als een singleton en zijn methoden kunnen aangeroepen worden vanuit elke plek in je applicatie, in een statische context.

<?php Configure::read('debug'); ?>
  1. <?php Configure::read('debug'); ?>

3.4.3.1 Methoden in Configure

3.4.3.1.1 write

write(string $key, mixed $value)

Gebruik write() om data op te slaan in de configuratie van de applicatie.

Configure::write('Company.name','Pizza, Inc.');
Configure::write('Company.slogan','Pizza for your body and soul');
  1. Configure::write('Company.name','Pizza, Inc.');
  2. Configure::write('Company.slogan','Pizza for your body and soul');

het gebruik van de punt-notatie in de $key parameter. Je kunt deze notatie gebruiken om je configuratie in te delen in logische groepen.

Het bovenstaande voorbeeld kan ook in één aanroep geschreven worden:

Configure::write(
    'Company',array('name'=>'Pizza, Inc.','slogan'=>'Pizza for your body and soul')
);
  1. Configure::write(
  2. 'Company',array('name'=>'Pizza, Inc.','slogan'=>'Pizza for your body and soul')
  3. );

Je kunt Configure::write('debug', $int) gebruiken om te wisselen tussen de debug en de productie modus wanneer je maar wilt. Dit is vooral handig voor AMF of SOAP interacties waar debug informatie een probleem kan veroorzaken bij het parsen.

3.4.3.1.2 read

read(string $key = 'debug')

Gebruik read om configuratie gegevens van de applicatie te lezen. Standaard wordt CakePHP's belangrijke debug waarde geretourneerd. Als een sleutel is gespecificeerd, dan worden de betreffende gegevens geretourneerd. Wanneer we het bovenstaande voorbeeld van write() gebruiken, dan kunnen we die data als volgt terugleven:

Configure::read('Company.name');    //levert: 'Pizza, Inc.'
Configure::read('Company.slogan');  //levert: 'Pizza for your body and soul'
 
Configure::read('Company');
 
//levert: 
array('name' => 'Pizza, Inc.', 'slogan' => 'Pizza for your body and soul');
  1. Configure::read('Company.name'); //levert: 'Pizza, Inc.'
  2. Configure::read('Company.slogan'); //levert: 'Pizza for your body and soul'
  3. Configure::read('Company');
  4. //levert:
  5. array('name' => 'Pizza, Inc.', 'slogan' => 'Pizza for your body and soul');

3.4.3.1.3 delete

delete(string $key)

Wordt gebruikt om informatie te verwijderen uit de configuratie van de applicatie.

Configure::delete('Company.name');
  1. Configure::delete('Company.name');

3.4.3.1.4 load

load(string $path)

Gebruik deze methode om configuratie informatie te laden uit een specifiek bestand.

// /app/config/messages.php:
<?php
$config['Company']['name'] = 'Pizza, Inc.';
$config['Company']['slogan'] = 'Pizza for your body and soul';
$config['Company']['phone'] = '555-55-55';
?>
 
<?php
Configure::load('messages');
Configure::read('Company.name');
?>
  1. // /app/config/messages.php:
  2. <?php
  3. $config['Company']['name'] = 'Pizza, Inc.';
  4. $config['Company']['slogan'] = 'Pizza for your body and soul';
  5. $config['Company']['phone'] = '555-55-55';
  6. ?>
  7. <?php
  8. Configure::load('messages');
  9. Configure::read('Company.name');
  10. ?>

merk op dat ieder key-value is gerepresenteerd in het bestand met de $config array. Elke andere variabele in dat bestand wordt genegeerd door de load() functie.

3.4.3.1.5 version

version()

Retourneert de CakePHP versie voor de huidige applicatie.

3.4.3.2 CakePHP kern configuratie variabelen

De originele tekst van deze rubriek is gewijzigd nadat deze is vertaald. Help om dit verschil op te lossen. Je kunt:

Meer informatie over vertalingen

De Configure klasse wordt gebruikt om een set van kern CakePHP configuratie variabelen te beheren. Deze variabelen kunnen worden gevonden in app/config.core.php. Hieronder staat een beschrijving van elke variabele en hoe deze je CakePHP applicatie beïnvloedt.

Configure variabele Beschrijving
debug Verandert de CakePHP debug output.

0 = Productie mode. Geen output.
1 = Toon fouten en waarschuwingen.
2 = Toon fouten, waarschuwingen en SQL.
3 = Toon fouten, waarschuwingen, SQL en een overzicht van alle controller variabelen.
App.baseUrl Verwijder het commentaar voor deze definitie als je niet van plan bent om Apache's mod_rewrite te gebruiken met CakePHP. Vergeet niet om ook je .htaccess bestanden te verwijderen.
Routing.admin Verwijder het commentaar voor deze definitie als je gebruik wilt maken van de voordelen van CakePHP's admin routes. Geef deze variabele de naam van de admin route die je wilt gebruiken. Meer over dit onderwerp komt later.
Cache.disable Wanneer deze variabele true is, dan is caching op de hele website uitgeschakeld.
Cache.check Wanneer deze variabele true is, dan is caching van views ingeschakeld. Het is dan nog steeds nodig om de caching aan te zetten in de controllers, maar deze variabele schakelt de detectie van die instellingen in.
Session.save Vertelt CakePHP welk mechanisme te gebruiken voor het opslaan van sessies.

php = Gebruik de standaard PHP sessie opslag.
cake = Sla de sessie gegevens op in /app/tmp
database = Sla de sessie gegevens op in een database tabel. Wees er zeker van dat je de tabellen aanmaakt met het SQL bestand dat zich bevindt in /app/config/sql/sessions.sql.
Session.table De naam van de tabel (zonder prefix) die de sessie informatie bevat.
Session.database De naam van de database die de sessie informatie bevat.
Session.cookie De naam van de cookie die gebruikt wordt om sessies te volgen.
Session.timeout Basis sessie timeout in seconden. De werkelijke waarde hangt af van Security.level.
Session.start Start de sessie automatisch wanneer de waarde true is.
Session.checkAgent Wanneer de waarde false is, zullen de CakePHP sessies niet controlleren of de user agent verandert tussen requests.
Security.level Het niveau van beveiliging in CakePHP. De sessie timeout tijd, die is gedefinieerd in 'Session.timeout', wordt vermenigvuldigt volgens de instellingen hier.

Geldige waarden:
'high' = x 10
'medium' = x 100
'low' = x 300

'high' en 'medium' maken ook session.referer_check mogelijk
Security.salt Een willekeurige tekenreeks die gebruikt wordt voor security hashing.
Acl.classname, Acl.database Constanten die worden gebruikt voor CakePHP's Access Control List functionaliteit. Meer informatie is te vinden in het hoofdstuk over Access Control Lists.

Cache configuratie is ook te vinden in core.php — Dit zal later worden behandelt, dus houd deze pagina in de gaten.

De Configure klasse kan gebruikt worden om kern configuratie instellingen te wijzigen wanneer je dat wilt. Dit kan bijvoorbeeld vooral handig zijn als je debug instellingen aan wilt zetten voor een bepaald stuk logica in je applicatie.

3.4.3.3 Configuration Constants

Er is geen nog vertaling vertaling voor deze rubriek. Help ons en vertaal dit.. Meer informatie over vertalingen

While most configuration options are handled by Configure, there are a few constants that CakePHP uses during runtime.

Constant Description
LOG_ERROR Error constant. Used for differentiating error logging and debugging. Currently PHP supports LOG_DEBUG.