tbergeron->myHeadInsideOut(); » symfony http://tbergeron.com Tue, 20 Jul 2010 06:19:03 +0000 en hourly 1 http://wordpress.org/?v=3.0.2 Comment créer un projet Symfony sous Lighttpd http://tbergeron.com/technologie/comment-creer-un-projet-symfony-sous-lighttpd/ http://tbergeron.com/technologie/comment-creer-un-projet-symfony-sous-lighttpd/#comments Tue, 26 May 2009 19:20:03 +0000 tom http://tbergeron.com/?p=721 Après l’installation de Lighttpd, j’ai tout suite remarqué des performances très agréables.

Mais tout après, j’ai un peu regretté mon installation. Pourquoi? Car Lighttpd ne supporte pas les fichiers .htaccess!

Tout d’abord il vous faudra avoir accès aux configs de votre installation. Sinon eh bien: vous êtes dans la merde!

Bon alors, c’était bien une installation de Symfony que nous voulions faire?

Voici la magie de Zamphir:

$HTTP["host"] =~ "VOTRE DOMAINE/IP,ETC" {
  server.document-root = "/repertoire/web/de/votre/installation/symfony"
  alias.url += (
    "/sf" => "/usr/share/php/data/symfony/web/sf",
  )
  url.rewrite-once = (
    "^/(.*)\.(.*)" => "$0",
    "^/([^.]+)$" => "/index.php/$1",
    "^/$" => "/index.php"
  )
}
  1. Tout d’abord nous pointons notre vhost sur le bon répertoire.
  2. Ensuite, on dit à lighttpd que le contenu du répertoire /sf est /usr/share/php/data/symfony/web/sf (Pour Ubuntu)
  3. On fait la fameuse règle de rewrite qui nous manque du au non-support des htaccess

C’est pas trop mal comme utilisation, je commence même a bien aimer le fonctionnement de lighttpd!

]]>
http://tbergeron.com/technologie/comment-creer-un-projet-symfony-sous-lighttpd/feed/ 0
Supporter des structure de données parents/enfants http://tbergeron.com/technologie/supporter-des-structure-de-donnees-parentsenfants/ http://tbergeron.com/technologie/supporter-des-structure-de-donnees-parentsenfants/#comments Fri, 01 May 2009 17:21:12 +0000 tom http://tbergeron.com/?p=774 Aujourd’hui les enfants je vais vous montrer comment généré une liste avec des enfants à l’infinie.

Dans la base de donnée, nous avons ce style de donnée:

ID	PARENT_ID	TEXT
1	0		test
2	1		sous-test
3	0		nouveau test
4	2		sous-sous-test
5	1		sous-test 2

Comme vous pouvez voir, la structure est très simple. Nous avons nos entrées avec leurs titres, et dans la colonne PARENT_ID nous avons les références qui pointent sur leurs parents.

Un fois généré la structure HTML ressemblera à ceci:

  • test
    • sous-test
      • sous-sous-test
    • sous-test 2
  • nouveau test

Alors, allons-y! Vous remarquerez évidement que comme à l’habitude j’utilise symfony comme framework.

NB: Il est bien facile à voir que j’utilise Propel pour rejoindre et manipuler ma base de donnée. Si vous utilisez tout simplement des requêtes MySQL hardcodé vous pouvez traduire mon code à votre aise!

$c = new Criteria();
 
//Je vais chercher tout les donnée que ma db contient:
$todo = TodoPeer::doSelect($c);
 
//Ensuite je créer des arrays qui contiendront l'arborescence de mes données
$refs = array(); $list = array();
//Je fais passé les résultats de ma requête dans un foreach qui compilera mon array
foreach ($todo as $data) {
	//J'entre les premières données dans l'array
	$thisref = "$refs[ $data->getId() ];
	$thisref['parent_id'] = $data->getParentId();
	$thisref['name'] = $data->getTitle();
	//Je vérifie si l'entrée a des enfants.
	if ($data->getParentId() == 0) {
		//Si non j'entre l'entrée au premier niveau.
		$list[ $data->getId() ] = "$thisref;
	} else {
		//Si oui je crée l'enfant dans un nouveau niveau.
		$refs[ $data->getParentId() ]['children'][ $data->getId() ] = "$thisref;
	}
}

Vous remarquerez que le code utilisé est très court et rapide. Cela empêche l’utilisation de milliers de requêtes!

Et maintenant pour afficher correctement l’arborescence vous aurez besoin de cette fonction.

function generate_tree($arr) {
	//Ouverture du premier ul.
	$html = "<ul>";
	//Boucle récursive qui créera les prochains ul.
	foreach ($arr as $v) {
		//Ajout d'un entré au même niveau.
		$html .= "<li>".$v['name']."</li>";
		//Si un enfant existe, on rappel la même fonction récursivement
		if (array_key_exists('children', $v)) {
			$html .= "".toUL($v['children'])."";
		}
	}
	//On ferme le ul initial!
	$html .= "</ul>";
	//Et on renvoie le contenu
	return $html;
}

C’est ce qui conclut ce léger tutorial qui avait pour but de vous rendre la tâche facile avec ces structures de données qui sont habituellement bien difficile a manipuler.

]]>
http://tbergeron.com/technologie/supporter-des-structure-de-donnees-parentsenfants/feed/ 0
Update! http://tbergeron.com/blog/update/ http://tbergeron.com/blog/update/#comments Sun, 05 Apr 2009 14:28:59 +0000 tom http://tbergeron.com/?p=611 Voici ce qu’il se passe dans ma vie c’est temps-ci:

  1. Utilisation massive du framework PHP Symfony.
  2. Découverte de GIT (version management), ça torche svn. solide!
  3. Création d’un système de blog que j’avance très très rapidement fait avec symfony, et publié sur github.

Voici quelques screenshots:

picture-1 picture-3 picture-4 picture-5 a

En deux jour, j’ai beaucoup avancer, vous pouvez voir le code sur mon repo github. Je suis entrain de terminer la gestion des articles et ensuite je l’utiliserai pour un techblog perso à l’adresse http://pousli.net/blog

Mon but n’est pas de réinventé la roue, mais bien de créer un système versatile, et bien reprogrammable. Je me fou de la gestion des plugins car tout sera programmé quand j’en aurai envie et dans l’ordre que je veux. Une semaine ce sera un système de commentaire, l’autre ce sera un système de gestion de medias, etc. Un beau petit challenge qui est entre autre un bon passe temps.

Apart çà, et bien ça va toujours bien avec ma femme, au bureau aussi et pas mal partout héhé. La vie quand c’est bien balancé et organisé ça rock en modit. Moi qui croyait que de vivre tout croche c’était cool… c’est encore plus cool de savoir qu’ont est bien entouré et que je serai encore vivant demain matin… Héhé. Tsé c’est le fun faire le hors la loi, mais tsé les lois ça peut-être été inventé pour justement… vivre? ;)

Keep on rocking in a free world!

]]>
http://tbergeron.com/blog/update/feed/ 0
Mini update http://tbergeron.com/blog/mini-update/ http://tbergeron.com/blog/mini-update/#comments Thu, 12 Mar 2009 17:12:05 +0000 tom http://tbergeron.com/?p=585 Hey, long time no… write?

Voici les dernières nouvelles à propos de moi en ce formidable jeudi 12 mars 2009.

Toune du jour: Brand New – Guernica
Problème du jour: Desjardins, c’est de la marde.
Nouveautées:

  1. Nouvelle télé HD
  2. Nouveau fil HDMI pour xbox 360 (SICK!)
  3. Nouveau serveur de développement à la maison (powermac quicksilver 867mhz, 1gb ram, ubuntu server 8.10)

Job: ça va très bien au bureau.
Amour: ça va plus que bien, ma femme est plus que merveilleuse. même si la petite à une grosse grippe :S
Coup de coeur du jour: Evernote (dans ma mémoire c’était poche, mais depuis quelques updates ça rock.)
Pensée du jour: Des boutons et des menus sur un site. C’est pas du design, mais bien du contenu.
Chialage du jour: Du shipping Ontario->Québec sa devrait pas prendre 1 semaine batard!

Nouveauté sur le site: Sondages, répondez-y en grand nombre!

Dans les choses qui s’enviennent: certains projets reliés à symfony sur mon nouveau serveur. Lorsque j’aurai régler mon problème. (Unsupported Propel driver: mysql;: Check your configuration file)

]]>
http://tbergeron.com/blog/mini-update/feed/ 2