Project

General

Profile

News

Tutoriel mis à jour, et nouvelles vidéos

Added by imikado over 10 years ago

Il y a désormais 11 vidéos de tutoriaux:

1.Installation du framework
2.Hello World
3.Créer un module CRUD
4.Créer un module intégrable: menu
5.Utiliser un layout et ses "emplacements"
6.Créer une application avec deux tables liées
7.Utilisez le plugin jQuery
8.Faire de l'url rewriting
9.Créer un module d'authentification pour restreindre l'accès à votre application
10.Créer un module intégrable lié à un autre module
11.Gérer les permissions/droits

http://mkdevs.com/screencasts.html

Une petite correction et nouveaux tutoriaux vidéos

Added by imikado over 10 years ago

Dans le cas de l'url rewritin, le chemin vers le fichier des routes était incorrect (dans le fichier conf/site.ini.php)
Plusieurs tutoriaux vidéos ont été ajoutées, ils sont ajourd'hui au nombre de 8
- Installation du framework
- Hello World
- Créer un module CRUD
- Créer un module intégrable: menu
- Utiliser un layout et ses "emplacements"
- Créer une application avec deux tables liées
- Utilisez le plugin jQuery
- Faire de l'url rewriting

L'adresse: http://mkdevs.com/screencasts.html

Nettoyage/optimisation suite audit Sonar

Added by imikado over 10 years ago

Ces rapports vont de l'alerte de complexité d'une méthode, à la longueur maximum d'une ligne en passant par la découverte de variables non utilisées...
Suite à cet audit, j'ai procédé à quelques corrections permettant d'atteindre la note de 89,6% selon le profil "Zend"
Pour ceux qui souhaiteraient découvrir plus en détail Sonar, je vous conseille cet article http://dupot.org/post-10.html

(Pour information, Sonar Way:93,2% et Zend profile:97,7% )

Amélioration de l'ORM et du builder

Added by imikado over 10 years ago

Concernant l'ORM, vous pouvez choisir de passer les parametres soit les uns apres les autres, soit via un tableau
Exple:

$this->findMany('SELECT * FROM article WHERE etat=? AND auteur_id=?',$etat_actif,$auteur_id);

ou
$this->findMany('SELECT * FROM article WHERE etat=? AND auteur_id=?',array($etat_actif,$auteur_id) );

Pour le builder:
1. Désormais lorsque vous créez un projet, celui-ci a son titre renseigné avec le nom du projet
2. Lorsque vous générez un module CRUD intégrable, en commentaire de son fichier main.php vous avez les instructions pour l'intégrer au sein d'un autre module

Quelques mises à jour

Added by imikado over 10 years ago

Des modifications ont été faite concernant la génération de modules CRUD intégrables.
Un tutorial a d'ailleurs été ajouté afin de mieux comprendre son utilisation
Ainsi qu'une correction concernant l'affichage des erreurs en mode "production" pour qu'un site livré en production soit totalement muet

Amélioration de la sécurité du plugin xsrf

Added by imikado over 10 years ago

Désormais vous pouvez renforcer la sécurité de votre plugin xsrf en activant l'unicité du jeton.
Celui-ci est enregistré en session à sa création, ainsi, un même jeton ne peut être utilisé qu'une seule fois.
Pour activer cette sécurité supplémentaire, une nouvelle variable "xsrf.session.enabled" fait son apparition dans le fichier con/site.ini.php

  
[security]
;XSRF ou CSRF,bSecuriteXSRF utilisation de jeton dans le CRUD, plus d'infos: http://fr.wikipedia.org/wiki/Cross-Site_Request_Forgeries
;XSS, bSecuriteXSS protection des variables GET,POST... via getParam( , plus d'infos http://fr.wikipedia.org/wiki/XSS
xsrf.enabled=1
xsrf.timeout.lifetime=(60*3)
xss.enabled=1
xsrf.session.enabled=1

note: cette sécurité supplémentaire nécessite l'activation d'une session, vous pouvez désactiver cette sécurité pour certains formulaires via la méthode "disableSession" du plugin

Amélioration de la génération de module CRUD intégrable

Added by imikado over 10 years ago

Une nouvelle classe abstraite abstract_moduleembedded fait son apparition afin de faciliter la création de module CRUD intégrable.

<?php
class module_examplemodule extends abstract_moduleembedded{

   public static $sModuleName='examplemodule';
   public static $sRootModule;
   public static $tRootParams;

   public function __construct(){
       self::setRootLink(_root::getParamNav(),null);
   }
   public static function setRootLink($sRootModule,$tRootParams=null){
       self::$sRootModule=$sRootModule;
       self::$tRootParams=$tRootParams;
   }
   public static function getLink($sAction,$tParam=null){
       return parent::_getLink(self::$sRootModule,self::$tRootParams,self::$sModuleName,$sAction,$tParam);
   }
   public static function getParam($sVar,$uDefault=null){
       return parent::_getParam(self::$sModuleName,$sVar,$uDefault);
   }
   public static function redirect($sModuleAction,$tModuleParam=null){
       return parent::_redirect(self::$sRootModule,self::$tRootParams,self::$sModuleName,$sModuleAction,$tModuleParam);
   }

   (...)

Lorsque vous utilisez un module intégrable, celui-ci doit toujours vous retourner sa vue.
Ensuite pour simplifier le code, les methodes getLink, getParam et redirect sont redéfinis afin de prendre en compte le nom de votre module ainsi que le contexte de la page pour éviter les risques de colisions
Ainsi vous pouvez avoir deux module CRUD ou plus au sein de la même page sans que la soumission d'un formulaire n'impacte l'autre.

*CRUD: Create Read Update Delete (une page de listage, une de modification, d'ajout, de visualisation et une dernière de suppression)

(21-30/62)

Also available in: Atom