<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.foxmask.info/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>FoxMaSk'Z h0m3 - Dev-Gamer World - MVC</title>
  <link>http://www.foxmask.info/</link>
  <description>La passion du developpement web et des jeux en ligne</description>
  <language>fr</language>
  <pubDate>Sat, 17 May 2008 20:35:51 +0200</pubDate>
  <copyright>foxmask ownz</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>CakePHP (1.2.0.6311) sorti tout chaud du four</title>
    <link>http://www.foxmask.info/post/2008/01/03/CakePHP-sorti-tout-chaud-du-four</link>
    <guid isPermaLink="false">urn:md5:ac67fe1d31eb55bc329b15cfe65879c3</guid>
    <pubDate>Thu, 03 Jan 2008 17:36:00 +0100</pubDate>
    <dc:creator>foxmask</dc:creator>
        <category>CakePHP</category><category>MVC</category>    
    <description>    &lt;p&gt;En cette période d'épiphany, &lt;a href=&quot;http://cakephp.org/&quot; hreflang=&quot;en&quot;&gt;CakePHP&lt;/a&gt; tire (non pas les rois) une version beta 1.2.0.6311 de son zoli :D framework MVC .&lt;/p&gt;


&lt;p&gt;Au menu plein d'améliorations et corrections de bugs ( dont voici &lt;a href=&quot;https://trac.cakephp.org/wiki/changelog/1.2.x.x&quot; hreflang=&quot;en&quot;&gt;la liste complète&lt;/a&gt; ) dont une amélioration qui me fait plaisir concernant la gestions des plugins et des controllers &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Pour ceux qui douterait de l'utilité/fiabilité de ce framework, sachez que celui ci est &quot;juste&quot; utilisé par le petit site &lt;a href=&quot;http://addons.mozilla.org/&quot; hreflang=&quot;en&quot;&gt;Mozilla Addons&lt;/a&gt; &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>CakePHP - PunBB - statistique du forum</title>
    <link>http://www.foxmask.info/post/2007/12/22/CakePHP-PunBB-statistique-du-forum</link>
    <guid isPermaLink="false">urn:md5:1b44d8dbec4490c5160dfc653a150245</guid>
    <pubDate>Wed, 26 Dec 2007 00:00:00 +0100</pubDate>
    <dc:creator>foxmask</dc:creator>
        <category>CakePHP</category><category>MVC</category><category>PunBB</category>    
    <description>    &lt;p&gt;Quelques conceptes de bases.&lt;/p&gt;


&lt;p&gt;Pour pouvoir afficher des info réutilisables dans ses Views CakePHP fourni des &quot;Helpers&quot; et des Elements
Le Helper étend les possibilités des Vues et les Elements sont des petits bouts de code php/html qui peuvent étre affichés plusieurs fois dans la même page.&lt;/p&gt;


&lt;p&gt;Ainsi donc le &quot;bloc de stats&quot; pourrait très bien être affiché dans plusieurs pages pour chacun des plugins news/articles/lexique etc..&lt;/p&gt;


&lt;p&gt;Donc nous allons faire un element &quot;app/views/elements/stats.ctp&quot; comme suit&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;?php
$bloc-&amp;gt;startBloc(__('Forums statistics',true), 'stats');				
				
$pt_total_users = $this-&amp;gt;requestAction('users/nbUsers');
$pt_last_user 	= $this-&amp;gt;requestAction('users/lastUser');	
$pt_total_posts = $this-&amp;gt;requestAction('forum/stats');
?&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;?php echo __('Total numbers of members:',true).' '.$pt_total_users['0']['0']['total_user']?&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;?php echo __('Newest resgistered user:',true).' &amp;lt;a href=&amp;quot;'.pt_forum_url.'profile.php?id='.$pt_last_user['0']['User']['id'].'&amp;quot;&amp;gt;'.$pt_last_user['0']['User']['username']?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;?php echo __('Total numbers of topics:',true).' '.$pt_total_posts['0']['0']['total_topics']?&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;?php echo __('Total numbers of posts:',true).' '.$pt_total_posts['0']['0']['total_posts']?&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&amp;lt;?php
$bloc-&amp;gt;endBloc();
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;comment tout cela fonctionne&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;dans le script app/app_controller.php de notre applications nous faisons ceci&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
class AppController extends Controller {
public $helpers = array ('Bloc','Html');
...
}
&lt;/pre&gt;

&lt;p&gt;et le helper bloc contient ceci (app/views/helpers/bloc.php):&lt;/p&gt;
&lt;pre&gt;
&amp;lt;?php
class BlocHelper extends Helper {
 	 	
 	function startBloc($title='',$id='') {	
		static $i;	
		$id = $id != '' ? $id : $i;		
		$res = '';
		$res .= &amp;quot;\t&amp;quot;.'&amp;lt;div class=&amp;quot;block&amp;quot; id=&amp;quot;'.$id.'&amp;quot;&amp;gt;'.&amp;quot;\n&amp;quot;;		
		if ($title!='')
			$res .= &amp;quot;\t&amp;quot;.'&amp;lt;h2&amp;gt;&amp;lt;span&amp;gt;'.$title.'&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;'.&amp;quot;\n&amp;quot;;		
		$res .= 
		&amp;quot;\t\t&amp;quot;.'&amp;lt;div class=&amp;quot;box&amp;quot; id=&amp;quot;box_'.$id.'&amp;quot;&amp;gt;'.&amp;quot;\n&amp;quot;;
		
		if (PT_DEFAULT_THEME == 'punbb') 
			$res .= &amp;quot;\t\t\t&amp;quot;.'&amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;'.&amp;quot;\n&amp;quot;;
		
		echo $res;
		$i++;
	}
	function endBloc() {
 		if (PT_DEFAULT_THEME == 'punbb') {		
			echo 
			&amp;quot;\t\t\t&amp;quot;.'&amp;lt;/div&amp;gt;'.&amp;quot;\n&amp;quot;.
			&amp;quot;\t\t&amp;quot;.'&amp;lt;/div&amp;gt;'.&amp;quot;\n&amp;quot;.
			&amp;quot;\t&amp;quot;.'&amp;lt;/div&amp;gt;';
 		} 
 		else {
 			echo 
			&amp;quot;\t\t&amp;quot;.'&amp;lt;/div&amp;gt;'.&amp;quot;\n&amp;quot;.
			&amp;quot;\t&amp;quot;.'&amp;lt;/div&amp;gt;'; 			
 		}
	} 
 	
}
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Ainsi paré&amp;nbsp;: le controlleur principal dispose d'un helper bloc &lt;br /&gt;
donc la vue peut utiliser $bloc-&amp;gt;endBloc et -&amp;gt;startBloc&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;ceci est une premiere etape :&lt;br /&gt;
suit ensuite dans notre element les 3 lignes&amp;nbsp;: &lt;br /&gt;&lt;/p&gt;
&lt;pre&gt;

$pt_total_users = $this-&amp;gt;requestAction('users/nbUsers');
$pt_last_user 	= $this-&amp;gt;requestAction('users/lastUser');	
$pt_total_posts = $this-&amp;gt;requestAction('forum/stats');
&lt;/pre&gt;

&lt;p&gt;ces 3 lignes effectuent des &quot;requestAction&quot; lequelles permettent d'accèder aux methodes &lt;em&gt;nbUser&lt;/em&gt; et &lt;em&gt;lastUser&lt;/em&gt; de la class   &lt;strong&gt;UsersController &lt;/strong&gt; et à la methode &lt;em&gt;stats&lt;/em&gt; de la class &lt;strong&gt;ForumControllers&lt;/strong&gt;, en voici le détail :&lt;br /&gt;&lt;/p&gt;

&lt;pre&gt;

&amp;lt;?php
class UsersController extends AppController {
	public $name 	= 'Users';
[...]
	public function lastUser () {		
		$strQuery =  'SELECT id, username FROM '.DB_PREFIX.'users as User' .
						' ORDER BY registered DESC LIMIT 1';
		$resultset = $this-&amp;gt;User-&amp;gt;query($strQuery);
		return $resultset; 									
	}	
	public function nbUsers () {
		
		$strQuery = 'SELECT COUNT(id)-1 AS total_user FROM '.DB_PREFIX.'users AS User ';		  
		$resultset = $this-&amp;gt;User-&amp;gt;query($strQuery);
		return $resultset; 	
     }
[...]
}
&lt;/pre&gt;


&lt;p&gt;ceci nous permet donc d'avoir facilement les information de stats de notre forum de manière utlra simplissime dans un bloc qui s'affichera ou bon vous semble comme suit&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;&amp;lt;?php  echo $this-&amp;gt;renderElement('stats');?&amp;gt;&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>CakePHP - PunBB - architecture generale</title>
    <link>http://www.foxmask.info/post/2007/12/22/CakePHP-PunBB-architecture-generale</link>
    <guid isPermaLink="false">urn:md5:747dace0ae09ed885374595b9d2be3a8</guid>
    <pubDate>Mon, 24 Dec 2007 10:30:00 +0100</pubDate>
    <dc:creator>foxmask</dc:creator>
        <category>CakePHP</category><category>MVC</category><category>PunBB</category>    
    <description>    &lt;p&gt;Voici l'architecture générale avec la liste des répertoires de son application&lt;/p&gt;


&lt;p&gt;- &lt;strong&gt;app&lt;/strong&gt;&lt;br /&gt;
--- &lt;strong&gt;config&lt;/strong&gt; contient les fichiers de config de son application tel database.php, bootstrap.php etc..&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;--- &lt;strong&gt;controllers&lt;/strong&gt; contient les controllers de votre application&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;--- &lt;strong&gt;locales&lt;/strong&gt; contient les traductions &lt;br /&gt;&lt;/p&gt;


&lt;p&gt;--- &lt;strong&gt;models&lt;/strong&gt; contient les models&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;--- &lt;strong&gt;plugins&lt;/strong&gt; contient des applications nommé plugins (détail plus bas)&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;--- &lt;strong&gt;vendors&lt;/strong&gt; contient des librairies externes à CakePHP et nécéssaire à son application&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;--- &lt;strong&gt;views&lt;/strong&gt; contient les views de votre application&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;--- &lt;strong&gt;webroot&lt;/strong&gt; contient la partie &quot;web&quot; de votre application
--- &lt;strong&gt;webroot&lt;/strong&gt;/forum/ l'endroit où est installé punBB !&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;le répertoire &lt;strong&gt;plugins&lt;/strong&gt; reprend l'integralité de l'arborscence MVC ce qui donne&amp;nbsp;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;plugins&lt;/strong&gt; &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;- &lt;strong&gt;news&lt;/strong&gt; &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;- &lt;strong&gt;news&lt;/strong&gt;/news_app_controller.php class du controller du plugins news &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;- &lt;strong&gt;news&lt;/strong&gt;/news_app_model.php  class du mdel du module du plugin news&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;- &lt;strong&gt;news&lt;/strong&gt;/&lt;em&gt;controllers&lt;/em&gt;/news_controller.php le controlleur du plugin news&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;- &lt;strong&gt;news&lt;/strong&gt;/&lt;em&gt;models&lt;/em&gt;/news.php le model du plugin news&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;- &lt;strong&gt;news&lt;/strong&gt;/&lt;em&gt;views&lt;/em&gt;/themed/punbb/news/index.ctp la vue principale du module news&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;La configuration apache devra donc définir un VirtualHost sur le répertoire app/webroot/ comme DOCUMENT_ROOT.&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>CakePHP - débuter son projet avec &quot;Bake&quot;</title>
    <link>http://www.foxmask.info/post/2007/12/22/CakePHP-debuter-son-projet-avec-Bake</link>
    <guid isPermaLink="false">urn:md5:ec68cb9855d6db94fc59d92b5342c34d</guid>
    <pubDate>Sat, 22 Dec 2007 11:32:00 +0100</pubDate>
    <dc:creator>foxmask</dc:creator>
        <category>CakePHP</category><category>MVC</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://cakephp.org/&quot; hreflang=&quot;en&quot;&gt;CakePHP&lt;/a&gt; permet de générer son application en quelques petites minutes grâce à &quot;bake&quot;&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Pour ce faire on ouvre une console (windows ou linux c'est kifkif) et on se fait&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;code&gt;cake bake foxmask&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;pour créer l'arboresence du projet &quot;foxmask&quot;&lt;/p&gt;


&lt;p&gt;ensuite on créé le répertoire config dans le répertoire &quot;foxmask&quot; on défini les paramètre de connexion à sa/ses base(s) de données et on peut se lancer dans la création des Models Views Controller comme suit&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;code&gt;cake bake -app foxmask&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Il vous suffira donc de suivre les choix des menus dans la console et en quelques instants vous aurez achevé votre projet &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Il restera alors à fignoler des détails mais vous pouvez dores et déjà accéder à votre application via http://localhost/foxmask/&lt;/p&gt;


&lt;p&gt;Plus de détails sur le &lt;a href=&quot;http://www.cakephp.org/screencasts/view/3&quot;&gt;Tuto de creation de blog en vidéo&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Poursuivre avec &lt;a href=&quot;http://www.foxmask.info/post/2007/12/06/CakePHP-et-PunBB-%3A-introduction&quot;&gt;CakePHP intégrant PunBB&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>CakePHP et PunBB : introduction</title>
    <link>http://www.foxmask.info/post/2007/12/06/CakePHP-et-PunBB-%3A-introduction</link>
    <guid isPermaLink="false">urn:md5:d85933bf29d6491adac75eea934fe6dc</guid>
    <pubDate>Thu, 06 Dec 2007 14:00:00 +0100</pubDate>
    <dc:creator>foxmask</dc:creator>
        <category>CakePHP</category><category>MVC</category><category>PunBB</category>    
    <description>    &lt;p&gt;Après l'édpisode des &lt;a href=&quot;http://www.foxmask.info/post/2007/11/11/Framework-PHP5-Comparatif&quot; hreflang=&quot;fr&quot;&gt;comparatifs de framework PHP&lt;/a&gt;, voici une astuce pour vous permettre de franchir le pas vers CakePHP (un bon framework PHP utilisant MVC) tout en utilisant PunBB comme outil de forum.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;L'idée de base est la suivante&amp;nbsp;: je veux créer un portail basé sur le framework CakePHP mais en utilisant une seul et unique session entre mon portail et mon forum.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Donc pour y parvenir, dans le script dispatcher.php de CakePHP je fais le classique include du script common.php de punbb comme suit :&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;j'edite le script cake/dispatcher.php et au dessus de&lt;/p&gt;

&lt;pre&gt;
 class Dispatcher extends Object {
&lt;/pre&gt;


&lt;p&gt;j'ajoute&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
 define('PUN_ROOT',WWW_ROOT. 'forums/');
 require PUN_ROOT.'include/common.php';
&lt;/pre&gt;


&lt;p&gt;de là, partout dans CakePHP nous avons la &quot;main&quot; sur les variables punBB et la gestion de la session.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Donc dans mon controlleur gérant l'utilisateur contiendra ni plus ni moins qu'un copier/coller du code de gestion de la fonction login (avec l'action = in et out selon le cas)&lt;br /&gt;&lt;/p&gt;
&lt;pre&gt;
  class UsersController extends AppController {
      public function login ()
    {
    	global $pun, $db, $pun_config, $db_type, $lang_login;
        $this-&amp;gt;set('error', false);
       #soumission du formulaire de login
        if (!empty($this-&amp;gt;data))
        {
      #analyse du login/pass ; recherche dans la base et creation du cookie
       }
     }
   }
&lt;/pre&gt;

&lt;p&gt;évidement on n'oubliera pas d'ajouter un global $pun_user  par exemple, dans la fonction login, pour manipuler les données que cette variable contient.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Dans un prochain billet, j'aborderai les vues (le &lt;strong&gt;V&lt;/strong&gt; de &lt;em&gt;MVC&lt;/em&gt; &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; et comment produire un menu et recuperer dans un bloc de son portail les 'n' derniers sujets recents du forum.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Framework PHP5 - Comparatif</title>
    <link>http://www.foxmask.info/post/2007/11/11/Framework-PHP5-Comparatif</link>
    <guid isPermaLink="false">urn:md5:4e21e2143f2e15f74237733cfa193a8c</guid>
    <pubDate>Sun, 11 Nov 2007 18:30:00 +0100</pubDate>
    <dc:creator>foxmask</dc:creator>
        <category>CakePHP</category><category>LAMP-WAMP</category><category>MVC</category><category>PHP</category>    
    <description>    &lt;p&gt;A la recherche d'un Framwork PHP5 utilisant l'architecture bien connu qu'est le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur&quot; hreflang=&quot;fr&quot;&gt;&quot;Modèle - Vue - Controleur&quot; ou MVC&lt;/a&gt; pour coder un logiciel libre &quot;dernière génération&quot; &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; , j'ai croisé sur mon chemin nombre de ceux &lt;a href=&quot;http://fr.wikipedia.org/wiki/Liste_de_frameworks_PHP&quot; hreflang=&quot;fr&quot;&gt;cités sur wikipedia&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Pour ceux ne connaissant pas le MVC, le principe est le suivant&amp;nbsp;: le &lt;strong&gt;M&lt;/strong&gt;odèle gère la logique métier et les accès aux bases de données, la &lt;strong&gt;V&lt;/strong&gt;ue gère l'affichage de ce que voit l'utilisateur avec l'écran, le &lt;strong&gt;C&lt;/strong&gt;ontroleur gère les evenements déclenchés par l'utilsateur.
La &lt;strong&gt;force&lt;/strong&gt; de cette architecture est sa &lt;strong&gt;modularité&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://jelix.org/&quot; hreflang=&quot;en&quot;&gt;Jelix&lt;/a&gt; écrit en PHP5 - projet jeune et dynamique.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Avantage&lt;/strong&gt;&amp;nbsp;: pour ceux codant déjà en POO&amp;nbsp;; tout y est&amp;nbsp;; DAO, CRUD et tout le toutim.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inconvénient&lt;/strong&gt;&amp;nbsp;: un peu &quot;jeune&quot; et pas si facile que cela à apréhender à prime abord mais en prennant bien son temps on fini par arriver à faire ce qu'on veut.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cible&lt;/strong&gt;&amp;nbsp;: Tout developpeur, webmaster, pas de restriction pour projet de logiciel libre&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cakephp.org&quot; hreflang=&quot;en&quot;&gt;CakePHP&lt;/a&gt; écrit en PHP (tout court) et supportant PHP5 parfaitement - on peut donc coder en PHP5 en utilisant celui ci.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Avantage&lt;/strong&gt;&amp;nbsp;: &lt;strong&gt;très&lt;/strong&gt; complet&amp;nbsp;; communauté active&amp;nbsp;; projet dynamique.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inconvénient&lt;/strong&gt;&amp;nbsp;: pas préhemptif (à mon goût), manque cruellement de doc ... version beta ...&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cible&lt;/strong&gt;&amp;nbsp;: Tout developpeur, webmaster, pas de restriction pour projet de logiciel libre&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://codeigniter.com/tutorials/&quot; hreflang=&quot;en&quot;&gt;CodeIgniter&lt;/a&gt; écrit en PHP &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Avantage&lt;/strong&gt;&amp;nbsp;: &lt;strong&gt;très&lt;/strong&gt; facile de mise en oeuvre - tuto videos de 9et 20mn bleuffant&amp;nbsp;!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inconvénient&lt;/strong&gt;&amp;nbsp;: ... pas encore trouvé ...&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cible&lt;/strong&gt;&amp;nbsp;: les developpeurs de site web ne publiant pas de soft sous GPL ....&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.symfony-project.com/&quot; hreflang=&quot;en&quot;&gt;Symfony&lt;/a&gt; écrit en PHP5 - le mastodonte&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Avantage&lt;/strong&gt;&amp;nbsp;: complet et adapté pour un milieu pro ou pour un hébergement permettant de toucher à la config PHP. Dispose de scripts permettant de generer les class modèle via des scripts de CRUD (Create Request Update Delete).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inconvénient&lt;/strong&gt;&amp;nbsp;: on ne peut pas coder un logiciel libre &quot;portable&quot; d'hebergeur à hébergeur pour la raison évoquer ci dessus ... on doit pouvoir toucher au include_path dans le php.ini. Même si certains directive apache le permette&amp;nbsp;; tous les hébergeurs ne l'autorisent pas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cible&lt;/strong&gt;&amp;nbsp;: les developpeurs en entreprise&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://framework.zend.com/&quot; hreflang=&quot;en&quot;&gt;Zend Framework&lt;/a&gt; écrit en PHP5 - la reference.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Avantage&lt;/strong&gt;&amp;nbsp;: la référence&amp;nbsp;? :D&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incovénient&lt;/strong&gt;&amp;nbsp;: je réitèrerai l'inconvénient pour Symfony. Si vous pouvez toucher au include_path de php.ini alors le coeur balance entre ZF ou Symfony.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cible&lt;/strong&gt;&amp;nbsp;: les developpeurs en entreprise&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;em&gt;&lt;strong&gt;Addendum &lt;/strong&gt;&lt;/em&gt;&amp;nbsp;:
après avoir approfondi l'histoire de licence pour CodeIgniter, il apparait &lt;a href=&quot;http://codeigniter.com/forums/viewthread/44788/P15/&quot; hreflang=&quot;en&quot;&gt;que CI permette de releaser son soft sous GPL&lt;/a&gt; tant qu'on ne touche pas au core ou bien qu'on en averti son auteur.&lt;/p&gt;



&lt;p&gt;Conclusion&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;mon choix se porterait sur&amp;nbsp;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;CakePHP pour les avantages évoqués &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;li&gt;CodeIgniter (puisque utilisable à souhait !)&lt;/li&gt;
&lt;/ol&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>