IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

[Zend 2.x] Mettre les objets g�n�r�s par zend/factories en session


Sujet :

Zend Framework PHP

  1. #1
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    D�cembre 2002
    Messages
    1 548
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : D�cembre 2002
    Messages : 1 548
    Par d�faut [Zend 2.x] Mettre les objets g�n�r�s par zend/factories en session
    Bonjour,

    Je cr�e de nombreux composant via les fichiers de config de zend (module.config.php) notamment avec les factories.

    Par exemple voici la section 'factories' d'un de mes modules :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    'service_manager' => array(
    	'factories' => array(
    		'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
    		'\Translate\EntitiesFactory' => function($sm){
    								$session = $sm->get('session');										
    								$factory = EntitiesFactory::getInstance($session);
    								return $factory;
    						}
    	),
    ),
    Je voudrais qu'automatiquement ces objets soient mis en session. Est-ce possible ? En effet, dans cet exemple, je d�clare le translator qui charge un fichier contenant des libell� traduti dans plusieurs langues. EntitiesFactories, fais de m�me avec des fichiers csv plus complexe de code/libell�.

    Pour le moment, ces fichiers sont lu � chaque chargement de page. S'ils �taient en session, je pense que mon appli serait plus performante, car de nombreux acc�s disque seraient �vit�s.

    Merci de m'�clairer sur le fait que zend puisse ou non mettre les objets qu'il g�n�re en session.

  2. #2
    Membre �clair�
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    51
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 51
    Par d�faut
    Salut,

    A priori si ton objet n'est pas d�pendant de l'utilisateur, il faudrait mieux le mettre en cache.

    Voici par exemple comment je met en cache mon objet Acl

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    public function getServiceConfig()
    {
    	return array(
    		'factories' => array(
    			'cache' => function () {
    				return \Zend\Cache\StorageFactory::factory(array(
    					'adapter' => array(
    						'name' => 'filesystem',
    						'options' => array(
    							'cache_dir' => __DIR__ . '/../../data/cache',
    							'ttl' => 100
    						),
    					),
    					'plugins' => array(
    						array(
    							'name' => 'serializer',
    							'options' => array(
     
    							)
    						)
    					)
    				));
    			},
    			'acl' => function ($sm) {
    				$cache = $sm->get('cache');
    				$acl = $cache->getItem('acl');
    				if (!$acl) {
    					$config = $sm->get('config');
    					$acl = new Acl();
    					if (isset($config['acl'])) {
    						if (isset($config['acl']['resources'])) {
    							foreach ($config['acl']['resources'] as $string) {
    								$acl->addResource($string);
    							}
    						}
    						if (isset($config['acl']['roles'])) {
    							foreach ($config['acl']['roles'] as $string) {
    								$acl->addRole($string);
    							}
    						}
    						if (isset($config['acl']['allow'])) {
    							foreach ($config['acl']['allow'] as $row) {
    								$acl->allow($row['role'], $row['resource'], $row['action']);
    							}
    						}
    					}
    					$cache->setItem('acl', serialize($acl));
    				} else {
    					$acl = unserialize($acl);
    				}
     
    				return $acl;
    			},
     
     
    		),
    	);
        }

Discussions similaires

  1. les warnings g�n�r� par zend studio
    Par nana_md dans le forum Zend Framework
    R�ponses: 3
    Dernier message: 12/09/2013, 13h02
  2. [HTML] Nommer les boutons g�n�r�s par <input type=file>
    Par elspliffo dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 4
    Dernier message: 13/09/2007, 12h45
  3. Recuperer les controls g�n�r�s par access
    Par petozak dans le forum IHM
    R�ponses: 5
    Dernier message: 26/07/2007, 23h05
  4. coch� tous les checkbox g�n�r� par php
    Par Henry9 dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 20/07/2007, 13h13
  5. R�ponses: 2
    Dernier message: 11/12/2006, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo