login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Kern variabelen in CakePHP (Opgelost)

Offline ikki007 - 03/10/2008 17:25
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Hallo,

In ons project hebben we een aantal variabelen die we graag door het hele systeem (dus in zowel de models als controllers) willen gebruiken.
Nu hebben we al geprobeerd dit in de app_controller.php te zetten maar zodra we dan $this->siteurl in een functie in de user model willen gebruiken werkt dit niet.
Waar moeten we deze variabelen plaatsen en hoe gebruiken.

Jarno

8 antwoorden

Gesponsorde links
Offline jvs - 03/10/2008 18:58
Avatar van jvs HTML beginner Ben nog niet zo bekend met mvc frameworks maar is dat niet iets voor het register...
Offline ikki007 - 03/10/2008 18:59
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
jvs schreef:
Ben nog niet zo bekend met mvc frameworks maar is dat niet iets voor het register...


Hmm, waar vind je die?
Offline nemesiskoen - 04/10/2008 11:10 (laatste wijziging 04/10/2008 11:11)
Avatar van nemesiskoen Gouden medaille

PHP expert
Die maak je zelf, of als het om zend gaat: zend_Registry. En in die andere frameworks is er hoogstwaarschijnlijk een synoniem. Je moet je ook wel afvragen of het User model die informatie moet weten. Want meestal is dit niet het geval en duid dit op een slecht ontwerp.
Offline ikki007 - 04/10/2008 11:30
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
vage schreef:
Je moet je ook wel afvragen of het User model die informatie moet weten. Want meestal is dit niet het geval en duid dit op een slecht ontwerp.


Kan je dit misschien wat verder uitlichten?
Offline nemesiskoen - 04/10/2008 13:19 (laatste wijziging 04/10/2008 13:22)
Avatar van nemesiskoen Gouden medaille

PHP expert
There are few things in life so hard to put up with as the annoyance of a good example... maargoed, here goes nothing:
Stel je hebt een klasse Klant en een klasse Rekening. Een Rekening hoort bij een Klant, maar heeft niets te maken met diens naam, dus mag hier ook niets mee doen. De klasse Rekening heeft maar één en slechts één verantwoordelijkheid. Dit kan dan bv. zijn: informatie over het saldo van de eigenaar van de rekening. Begrijp je?

Nu vraag ik me af: wat moet een User met een siteurl?

Edit: je kan altijd (als je van een goor design houd) een klasse App_MVC maken, waarin je alles zet, en dan laat je Model en Controller daarvan erven. Of Abstract_Model en Abstract_Controller, of whatever. Die App_MVC moet je in dat laatste geval dan wel abstract maken. Maar dit is echt een lelijk iets dus daarom kan je beter een Registry gebruiken (wat mij dus onnodig lijkt omdat elke klasse bijhoud wat het moet weten en kan dus via andere klassen altijd aan de juiste informatie komen, of de juiste acties triggeren (als dat onder diens verantwoordelijkheid valt))

volg je nog?
Offline ikki007 - 04/10/2008 13:21
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Op die manier, dat begrijp ik en dat is ook helemaal gescheiden van elkaar.
Het gaat hier om de naam van het project, wat vaker terugkomt, vandaar.
Offline nemesiskoen - 04/10/2008 13:23 (laatste wijziging 04/10/2008 13:23)
Avatar van nemesiskoen Gouden medaille

PHP expert
Wat heeft een User met een Project te maken?
Kan dat dan niet opgeslagen worden in een instantie van de klasse Project?
Offline ikki007 - 04/10/2008 13:26
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
De User wordt ook niet in de registry opgeslagen.

Nee, ik bedoelde dat de 'sitename' in de klasse User gebruikt moet worden (en meer klassses).

Het is trouwens opgelost, voor de geinteresseerde mensen:

Dit in je bootstrap:

  1. Configure::load('config');


In dit geval dus config.php aanmaken in de map config, en je configuratie als volgt invoeren:

  1. $config['Settings'] = array(
  2. 'siteurl' => 'localhost'
  3. );


Let erop dat je geen namen gebruikt die al door CakePHP gebruikt zijn (zoals 'App'), dan gaat het framework door de war.

Opvragen kan als volgt:

  1. $siteurl = Configure::read('Settings.siteurl');
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s