Posted on 26 January 2011 by adrien
Un problème simple: comment afficher une date & heure comme ceci: 26/01/2011 15h30 ?
Normalement il faudrait juste échapper le caractère ‘h’ avec un backslash mais ça ne marche pas sous Zend. La solution aussi est simple, voici le code:
$date = new Zend_Date($datefromdb, "yyyy-MM-dd HH:mm:ss");
print($date->toString("dd/MM/yyyy HH'h'mm"));
Site officiel de Zend
Posted on 17 November 2010 by adrien
Le framework Recess vous permet de créer des api REST en PHP pour vos applications.
Il possède entre autres un système sympa de générations d’objets (models) et une génération automatique de formulaires pour pouvoir les créer/modifier/supprimer/mettre à jour.
Seulement il peut arriver que vous n’ayez pas envie qu’un champ soit modifiable car vous lui attribuez une valeur directement dans votre code source, donc autant ne pas afficher le bouton ou champ input correspondant.
Pour ceci, c’est très simple, on reprend une méthode déjà exposé dans ce billet précédent sur le traitement avant insertion mais qu’on applique pour notre forms:
/** !Route GET, new */
function newForm
() {
$this->_form
->to(Methods
::POST, $this->urlTo('insert'));
unset($this->_form
->inputs['theFieldToHide']);
return $this->ok('editForm');
}
Et c’est tout, votre formulaire ne contiendra pas ce champ. Simple mais il fallu que je fouille pour trouver!
Posted on 06 May 2010 by adrien
Dans un de mes projets, j’utilise le framework Recess pour créer une API REST en php. Ce framework est intéressant mais jeune et il peut être long de trouver une information simple.
Ici mon besoin était de faire un traitement sur le model avant son insertion en base. On peut facilement faire ceci en utilisant l’annotation !Before dans l’objet. Voici un exemple:
class user
extends Model
{
/** !Column PrimaryKey, Integer, AutoIncrement */
public $id;
/** !Column DateTime */
public $creation_date;
/** !Column String */
public $name;
/** !Before insert */
public function beforeInsert
() {
$this->creation_date = time();
}
/** !Before update */
public function beforeUpdate
() {
//we block update of creation date
unset($this->creation_date);
}
}
On remarque en passant que les champs qui sont en datetime en base de donnée sont traités en timestamp sous Recess.
Lors de l’update on fait un unset sur la variable $creation_date, ainsi elle ne sera pas traitée par le framework.