ZF : comprendre le fonctionnement des urls

Url de ZF et distribution des rôles aux contrôleurs

Avec Zend Framework, de base le système mis en place par le contrôleur est celui-ci :

url module contrôlleur action paramètre
http://exemple.test/ default index index
http://exemple.test/news default news index
http://exemple.test/news/ajouter default news ajouter
http://exemple.test/news/modifier/id/5 default news modifier id=5
http://exemple.test/news/modifier/?id=5 default news modifier id=5

Avec des modules perso

Maintenant ajoutons la gestion des modules news et livredor:

 $ctrl->setControllerDirectory(     array(         'news'    => '/module/news/controllers',         'livredor'    => '/livredor/ctrl'     ) ); 
url module contrôlleur action paramètre
http://exemple.test/ default index index
http://exemple.test/news news index index
http://exemple.test/news/ajouter news ajouter index
http://exemple.test/news/modifier/id/5 news modifier id
http://exemple.test/news/modifier/?id=5 news modifier index id=5

Comprendre le Zend_Controller_Router_Route

ce que l’on vient de voir s’explique par ceci :

 $route = new Zend_Controller_Router_Route(     ':module/:controller/:action/*',     array('module' => 'default') ); $router->addRoute('default', $route); 

Ce qui correspond à l’option par défaut. De plus, ceci nous montre un exemple de paramètre par défaut, en effet à module, on attribue la valeur default.

Allons plus loin et créer nos propres routes!

Route personnalisée

imagions un espace membre, on désire afficher chaque profile. On pourrait imaginer quelque chose du genre : http://exemple.test/profil/voir/id/5 ou encore http://exemple.test/profil/voir/membre/grummfy afin d’avoir le contrôleur profil et et l’action voir. Cependant ce n’est ni joli, ni pratique. Utilisons donc le Zend_Controller_Router_Route

 $route = new Zend_Controller_Router_Route(     'profiledemembre/:username/*',     array(         'controller' => 'profil',         'action'     => 'voir'     ) ); $router->addRoute('myProfileRoute', $route); 

Ce qu’on fait pour les url du type http://exemple.test/profiledemembre/grummfy, on assigne les valeurs suivantes :

 * controller = profil  * action = voir  * username = grummfy, ceci via les :  * et on garde la possibilité d'avoir des paramètres avec *

Dans le contrôleur profil, on fera ceci :

 <?php public function voirAction() {     $request = $this->getRequest();     $username = $request->getParam('username');     // ou     $username = $this->_getParam('username'); } 

Aller plus loin

Le manuel de Zend vous enseignera comment faire des url avec expression régulière ou encore des rotue static, et bien plus! Mais aussi cette autre page : http://framework.zend.com/manual/fr…

MyWsp : du nouveau?

Comme certains m’ont posée la question, j’y réponds.

Oui MyWsp avance, lentement mais surement.

La dernière nouveauté visible est le logo (temporaire à définitif), visible sur le site officiel et logo2 .

Cependant ce n’est aps tout, j’ai définit presque entièrement ce que j’appelle le package de base, c’est-à-dire, un truc que l’on ne sais pas utilisé tout seul, mais indispensable au fonctionnement de tout le reste! En gros le package de base comprendra :

  • RSS
  • outils de sécurités tel : antispam, antiflood, …
  • système de session basic
  • mail simple
  • système de cache
  • gestion de base de données
  • bbcode, html et autre système d’écriture (avec possibilité de plugins pour oa7code, textile, wiki, wikini, wiki+, …)
  • peut-être un système de tpl mais je verrais à la longue!
  • système d’erreur très simple donc sans log
  • upload simple
  • quelques surfonction, genre date avec strftime, et d’autres truc utiles …
  • système de gestion des modules
  • Administration

Avec cela les modules principaux verront rapidement le jour. Cependant, le gros point noir reste la gestion des modules (qui n’est pas programmer du tout, le reste est surtout une question de retouche). En effet, j’ignore encore comment je vais faire fonctionner le tout de manière optimale, que se soit pour un ou 250 modules…

Pour les questions, les idées n’hésité pas à répondre en commentaires ou à me contacter!

Enregistrer son écran sous GNU/Linux

Lors de la création de de tuto vidéo il est très intéressant de pouvoir enregistrer son écran et ainsi permettre une compréhension plus élevée de ce qu’explique le dit tuto.

Ainsi, cherchant a m’entrainer à faire quelques tuto pour MyWsp, je me suis dit mais pourquoi pas en faire pour FSB.

J’ai donc réfléchi a comment faire les meilleurs video, et me suis dit la capture d’écran est encore le plus simple.
Donc, comment faire. Faire des recherches, je connais deux trois logiciel mais sans plus. Et hop grâce à Google je tombe sur ceci : petit description de logiciel de capture video

Bref génial, je vous laisse lire l’article. Moi je compte utiliser xvidcap.

Repasser via Kino et Audacity pour remettre le tout ensemble (son, video, texte).

Je dirait une dernière choses, pensez aussi que si vous utiliser un texte en sous-titre cela permet d’être traduit plus facilement… (et permet aussi au sourd de comprendre ce que vous faites ….)

Edit :
j’en profite pour rajouter ceci : http://www.funix.org/fr/linux/main-…
et le site de funix en général : http://www.funix.org/ qui contient pas mal de truc intéressant

et surtout Lprod tout sous la production sous linux!

MyWsp

Apparement je ne l’ai pas encore présenté, quoi cela? Ben MyWSP!

Donc, qu’est ce que MyWsp?

Bonne question, si je le savait … Ben oui c’est assez difficile à décrire.

  • Au informaticien, je dirait : un mélange entre un cms, un framework, une api web, …
  • Au autres je dirait : un mélange de beacoup de choses …

Lire la suite