Ich habe ein Modul erstellt, welches mir die Userid von ZfcUser nach dem Einloggen in eine Tabelle schreibt. Ist die Struktur empfehlenswert oder wie kann man es verbessern. Im Modul.php steht:
PHP-Code:
namespace Userlog;
use 
Userlog\Model\UserlogTable;     
    public function 
getServiceConfig() {
        return array(
            
'factories' => array(
                
'log_mapper' =>  function($sm) {
                    
$dbAdapter $sm->get('Zend\Db\Adapter\Adapter');
                    
$table = new UserlogTable($dbAdapter);
                    return 
$table;
                },                
            ),
        );
    }
    
    public function 
onBootstrap($e) {
        
$sm $e->getApplication()->getServiceManager();
        
$zfcAuthEvents $e->getApplication()->getServiceManager()->get('ZfcUser\Authentication\Adapter\AdapterChain')->getEventManager();
            
        
$zfcAuthEvents->attach'authenticate', function( $authEvent ) use( $sm ){
            
$entity = array('usernr' => $authEvent->getIdentity());
            
$mapper     =  $sm->get'log_mapper' );
            
$userlog = new \Userlog\Entity\Userlog;
            
$hydrator = new \Zend\Stdlib\Hydrator\ClassMethods();
            
$hydrator->hydrate($entity$userlog);
            
$entity_new $hydrator->extract($userlog); 
            
$mapper->saveUserlog($entity_new);               
        });
    } 
Die Userid trage ich in die Tabelle ein mit:
PHP-Code:
namespace Userlog\Model;

use 
Zend\Db\TableGateway\AbstractTableGateway;
use 
Zend\Db\Adapter\Adapter;

class 
UserlogTable extends AbstractTableGateway
{
    protected 
$table 'userlog';

    public function 
__construct(Adapter $adapter)
    {
        
$this->adapter $adapter;
        
$this->initialize();       
    }
    
    public function 
saveUserlog($userlog)
    {
        
$data = array(
            
'usernr' => $userlog["usernr"],            
        );    
        
$this->insert($data);         
    }

Wie gesagt es funktioniert aber ich bin mir immer sehr unsicher ob da noch ein Controller oder ein Service hin muss.