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!
2.560 views