symfony vite fait partie1

I- BREVE PRESENTATION DU FRAMEWORK

Symfony est un Framework PHP crée par une équipe française et base sur le model vue contrôleur qui est devenu un classique en matière d’application web.
Symfony utilise tout un ensembles d’outils et de methodes dont la plupart existaient déjà pour faciliter la programmation : Doctrine ou Propel pour le mapping objet relationnel , des outils de templating de Ruby On Rails


II- ORGANISATION D’UN PROJET SYMFONY
Un projet Symfony est organise en application on peut avoir plusieurs applications dans un meme projet. Dans une application on trouve des modules et dans les modules on trouve des actions. Ca c’est la partie controleur. Puisque Symfony respecte le modele MVC il y a evidement une couche de mapping objet relationnel (ORM).

Application : les applications dans un projet symfony accèdent aux mêmes données mais par le biais d’IHM differents. Par exemple dans un site de e-commerce nous pouvons avoir deux applications : un frontend pour les clients du site et un backend réservé a l’administration.
Modules : ils représentent les différentes parties d’une application et correspondent souvent a un bjet du modèle qu’ils permettent de manipuler.
Ex : j’ai dans mon application besoin de gérer un ensemble de clients et leurs caractéristiques j’aurai surement une table client dans ma bd et ainsi un module client me permettant de faire un ensemble d’opérations (édition, suppression, ajout…) sur les éléments de ma table
Actions : ils permettent de définir la manière d’interagir avec le module. Une action correspond a un ou plusieurs operations du module. et chaque action est compose d’une partie controleur et d’une partie vue.
Le mapping objet relationnel : Symfony utilise les deux outils (au choix ) Doctrine et Propel pour son modèle de donnée. Ces outils génèrent automatiquement un ensemble de classes a partir des tables de la base de donnée.
Un grand avantage de l’ORM est qu’il permet une independance par rapport a la syntaxe specifiques a une base de donnee.

INSTALLATION

prerequis
Pour commencer nous aurons besoin d’un server web (Apache) , d’un moteur de base de donnees (MySQL pour moi) , et de php dans sa version 5.2.4 ou superieure.

pour regler le probleme une bonne fois pour toute j’installe apache telechargeable ici
la version 1.4 de Symfony est disponible ici
Il faut noter (juste en passant) que Symfony est livre avec un outil en ligne de commande qui vous permet d’automatiser un certain nombre de taches (nous y reviendrons !)
ps: Il existe un script php ici qui execute vous permet de voir si votre configuration php est la bonne pour symfony !

installation
Il existe deux maniere d’installer symfony : nous pouvons l’installer globalement sur la machine ou l’integrer a chacun de nos projet. optons pour la seconde methode (cela nous permettra d’assurer l’independance de chacun de nos projet parraport aux autres).
Nous allons installer notre framework a partir de l’archive precedement telecharge. Rien de bien complique :
1- creons dans le dossier htdocs de xampp un nouveau repertoire nomme « test » ce repertoire contiendra notre projet symfony. Et dans le repertoire « test » creons le repertoire « lib\vendor »
2- Decompressons l’archive precedement telecharge (symfony-1.4.11.zip) dans le repertoire « lib\vendor » et renomons le en « symfony ». Nous avons ainsi une arborescence de ce type : computer\local disk (C:)\xampp\htdocs\test\lib\vendor\symfony

Publicités

CashKeeper

partager sur facebook
PRESENTATION DE L’APPLICATION
un gestionnaire de fonds avec une interface en wolof et anglais realise en j2me avec netbeans Ide.
Jai utilise une visual midlet qui permet de mettre en place graphiquement toute la structure de l’appli et des record stores pour la persistence des donnees .

voici un peu ce que ca donne a l’execution (installtion) :

(capture)
capture d'ecran du menu principale de l'appli

et voici un apercu de l’arborescence dans net beans :

arborescence
arborescence du projet sou netbeans IDE

integrer wordpress a un projet symfony

partager partager sur facebook

integrer wordpress a symfony sans etre expert en symfony

inspire en grande partie par l’article :http://blog.codeclarity.com/2009/12/02/integrating-symfony-and-wordpress/

merci a  » codeclarity »

etape1: decompresser une version de  wordpress dans votre projet

telecharger la derniere version de wordpress et le decompresser dans le repertoire web de votre projet symfony

on a par exemple une arborescence de ce type apre cette operation:

web/blog/index.php

web/blog/license.txt

web/blog/readme.html

etape2:copier les controleur  index.php et  frontend_dev.php(controleur pour lenvironnement de developement) sur l meme repertoir puis renommer les copies respectivement en wordpress.php et wordpress_dev.php

ajouter a leur contenu respectifs les 2  lignes suivantes:

define(‘WP_USE_THEMES’, true);

require_once(sfConfig::get(‘sf_web_dir’) . ‘/blog/wp-load.php’);

ajouter dans le fichier .htacces juste avant la redirection pour index.php (ligne 15 dans l fichier par defaut)

les lignes suivantes:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^blog/(.*)$ wordpress.php [QSA,L]

ceci permet de gerer les redirection d’url pour les controleur que nous venons de creer

etape3: generer un module pour wordpress

la commande commande ressemble a ceci  ./symfony:generate-module frontend wordpress

puis gerer le routing en ajoutant dans routing.yml:

blog:

url:   /blog/*

param: { module: wordpress, action: index }

implementer l’action qui execute wordpress en modifiant la fonction executeindex dans le fichier

apps/frontend/modules/wordpress/actions/actions.class.php

la fonction ressemble a ceci:

public function executeIndex(sfWebRequest $request) {

ob_start();

wp();

require_once( ABSPATH . WPINC . ‘/template-loader.php’ );

if (function_exists(‘is_feed’) && is_feed()) {

ob_end_flush();

throw new sfStopException();

}

else {

$this->blog = ob_get_clean();

}

}

et mettre dans apps/frontend/modules/wordpress/templates/indexSuccess.php la ligne suivante

< ?php echo $sf_data->getRaw(’blog’); ?>

etape 4: certaine fonctions de word press portent le meme nom que des fonctions de symfony (il s’agit des fonctions esc_js()  et  __()  )il va donc falloir les renommer en  wp_esc_js et  wp__

pour cela sou linux les commandes suivantes devrai marcher (pour ceux qui sont sous windows je n’ai pas de solution)

find . -name « *.php » -print | xargs sed -i ‘s/\(\b\)esc_js\(\b\)/\1wp_esc_js\2/g’

find . -name « *.php » -print | xargs sed -i ‘s/\(\b\)__\(\b\)/\1wp__\2/g’

etape 5: wordpress affiche son contenu en utilisant par defaut son theme. pour changer cela on peu supprimer tous les appel aux fonctions get_header(), get_footer() et  get_sidebar() dans les fichiers du theme utilisé

la liste des fichiers suceptibles d’etre modifiés:

404.php

archive.php

archives.php

image.php

index.php

links.php

page.php

search.php

single.php

etape 6: executer l’installation de wordpress si ce n’est deja fait fichier en suivant les instructions dans le fichier readme

apres l’installation on remarque que la redirection vers la page d’administration donne une erreur 404 (url not found)

ceci peut etre corige en ajoutant au fichier .htacces la redirection:

RewriteRule ^blog/wp-admin/$ blog/wp-admin/index.php (blog represente le repertoire contenant wordpress)

etape7: generer le model

./symfony doctrine:generate-model

enjoy!!!

source codeclarity  http://blog.codeclarity.com/2009/12/02/integrating-symfony-and-wordpress/
partager partager sur facebook