Ik ben sinds kort bezig met het ZEND Framework en het bevalt mij erg goed alleen loop ik nu op een paar dingen vast waarvoor ik even een topic aanmaak zodat ik een paar vragen kan stellen.

Ik heb een tabel genaamd 'users' met de data van de users en het inlog gedeelte met Zend_Auth (via AJAX) werkt prima! Nu vraag ik mij af hoe ik het beste de data van de user(s) kan gaan uitlezen. Ik heb nu een Auth helper om de gegevens voor de huidige gebruiker uit te lezen:

<?php
/**
* Auth helper
*
* @version $Revision$
* @copyright Copyright (c) 2012
* @package Zend_View
* @subpackage Helper
*/
class Custom_View_Helper_Auth extends Zend_View_Helper_Abstract {
/**
* Zend_Auth variable
*
* @access private
* @var Zend_Auth
*/
private $_auth;

/**
* Initalize helper
*
* @access public
* @return object $this Return itself
*/
public function auth() {
$this->_auth = Zend_Auth::getInstance();

return $this;
}

/**
* The ID of the user
*
* @access public
* @return integer The ID of the user
*/
public function getUserId() {
return $this->_auth->getIdentity()->userId;
}

/**
* The email address of the user
*
* @access public
* @return string The email address of the user
*/
public function getUserMail() {
return $this->_auth->getIdentity()->userMail;
}

/**
* The first name of the user
*
* @access public
* @return string The first name of the user
*/
public function getUserFirstName() {
return $this->_auth->getIdentity()->userFirstName;
}

/**
* The first name of the user
*
* @access public
* @return string The first name of the user
*/
public function getUserLastName() {
return $this->_auth->getIdentity()->userLastName;
}

/**
* The full name of this user
*
* @access public
* @return string The full name of the user
*/
public function getUserName() {
return $this->userFirstName() . ' ' . $this->userLastName();
}

/**
* The gender of the user
*
* @access public
* @return string The gender of the user
*/
public function getUserGender() {
return $this->_auth->getIdentity()->userGender;
}
}
?>

Nu vraag ik mij af of ik deze class zou houden of dat ik een algemen class (helper) ga maken, bijvoorbeeld: 'Custom_View_Helper_User(s)' (meervoud of enkelvoud?) en hier de data uit ga halen doormiddel van 'getUserMail($id)' etc etc.. Wat is verstandig? Aangezien er straks ook andere gebruikers worden aangepast en dan moet die data ook uit te lezen zijn, of zou ik hiervoor 2 apparte helpers maken? Een voor de huidige gebruiker (Auth helper) en een voor de overige gebruikers (User(s) helper).

Het voordeel van een Auth helper is dat ik niet continu het ID hoef mee te geven aan de helper, maar dit zou ik kunnen oplossing door in de User(s) helper standaard het ID van de huidige gebruiker mee te geven.

Het nadeel van een Auth helper is dat alles uit de sessie wordt gehaald waardoor na het aanpassen van de data in de database (of gebruiker wijzigt zijn eigen gevens) deze sessie niet meer up-to-date is, natuurlijk kun je dit opnieuw wegschrijven naar de sessie.

Ik hoop dat het een beetje duidelijk is, ik vindt het een lastige keuze..

Fijne dag!
Bumpy. Het zou fijn zijn als iemand zou willen helpen, thanks!
Bumpy. Het zou fijn zijn als iemand zou willen helpen, thanks!
Ik denk dat je even een PM naar Kees of Niels moet sturen om goed antwoord te krijgen, niet heel veel mensen hebben hier denk ik ervaring metZF.
Oke, zal Kees of Niels even aanspreken. Hoop dat er alsnog iemand kan reageren zodat de rest er ook wat aan heeft.
Ik ga er zo even naar kijken! Eigenlijk zouden ZF vragen bij mij bovenaan moeten staan :p
Hoi PHP scripter,

Waarom niet gewoon een User model? En die naar de view toe parsen?
Of begrijp ik dan jouw vraag verkeerd?

Weet je wat een helper precies moet doen? En waarom je evt voor een helper moet kiezen? Een helper maak je wanneer je bepaalde functionaliteit in meerdere controllers / actions nodig hebt.

Niels
Hey Niels,

Dus dan kan ik beter een Users Model aanmaken en deze via de controller naar de view sturen? Ik weet waar helpers voor zijn maar ik vondt deze View Helper ook wel kunnen omdat ik dit in bijna elke view nodig ga hebben.

Gr.
Hoi PHP Scripter,

Ja inderdaad. Daarnaast, om te controleren of iemand identity heeft, kan je wel een view helper gebruiken. (miss overdosis, maar om even een view helper uit te leggen)

Niels
Niels Kieviet op 18/04/2012 20:54:03

Hoi PHP Scripter,

Ja inderdaad. Daarnaast, om te controleren of iemand identity heeft, kan je wel een view helper gebruiken. (miss overdosis, maar om even een view helper uit te leggen)

Niels


De database table heet 'Users', moet ik dan een User model maken of is het dan een Users model? Nooit over nagedacht.

<?php $this->user->getNameById(); ?>
<?php $this->users->getNameById(); ?>

Reageren