<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kromack &#187; PHP</title>
	<atom:link href="http://www.kromack.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kromack.com</link>
	<description>Ressources et tutoriaux : Web 2.0 - PHP - CodeIgniter - Webdesign</description>
	<lastBuildDate>Fri, 23 Jul 2010 21:29:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP Fatal error : [soap:Client] Unable to handle request without a valid action parameter.</title>
		<link>http://www.kromack.com/zend-framework/php-fatal-error-soapclient-unable-to-handle-request-without-a-valid-action-parameter/</link>
		<comments>http://www.kromack.com/zend-framework/php-fatal-error-soapclient-unable-to-handle-request-without-a-valid-action-parameter/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 11:25:25 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[WebService]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=1119</guid>
		<description><![CDATA[

Cette erreur fatale peut subvenir lorsqu&#8217;un client SOAP tente de se connecter à un serveur en utilisant la mauvaise version de SOAP.
C&#8217;est notamment le cas lorsqu&#8217;un client tente de se connecter avec la directive SOAP_1_2 à un serveur SOAP ne supportant uniquement la directive SOAP_1_1.
L&#8217;erreur ci-dessous est alors remontée :
PHP Fatal error:  Uncaught SoapFault exception: [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fzend-framework%252Fphp-fatal-error-soapclient-unable-to-handle-request-without-a-valid-action-parameter%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22PHP%20Fatal%20error%20%3A%20%5Bsoap%3AClient%5D%20Unable%20to%20handle%20request%20without%20a%20valid%20action%20parameter.%22%20%7D);"></div>
<p>Cette <strong>erreur fatale</strong> peut subvenir lorsqu&#8217;un <strong>client SOAP</strong> tente de se connecter à un <strong>serveur</strong> en utilisant la mauvaise <strong>version de SOAP</strong>.</p>
<p>C&#8217;est notamment le cas lorsqu&#8217;un <strong>client</strong> tente de se connecter avec la <strong>directive SOAP_1_2</strong> à un <strong>serveur SOAP</strong> ne supportant uniquement la <strong>directive SOAP_1_1</strong>.</p>
<p>L&#8217;erreur ci-dessous est alors remontée :</p>
<p><strong>PHP Fatal error:  Uncaught SoapFault exception: [soap:Client] Unable to handle request without a valid action parameter. Please supply a valid soap action.</strong></p>
<p>Afin de résoudre cette erreur, il suffit d&#8217;indiquer la <strong>version à utiliser</strong> lors de la construction du <strong>client SOAP</strong> (instance de la classe <strong>Zend_Soap_Client</strong> dans cet exemple) :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1119code2'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p11192"><td class="code" id="p1119code2"><pre class="php" style="font-family:monospace;"><span style="color: #660000;">$soapclient</span> <span style="color: #000000;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Soap_Client<span style="color: #000000;">&#40;</span><span style="color: #008200;">'http://www.example.com/?WSDL'</span><span style="color: #000000;">,</span>
	<a href="http://www.php.net/array"><span style="color: #0000FF;">array</span></a><span style="color: #000000;">&#40;</span>
		<span style="color: #008200;">'soap_version'</span> <span style="color: #000000;">=&gt;</span> SOAP_1_1<span style="color: #000000;">,</span>
		<span style="color: #008200;">'encoding'</span> <span style="color: #000000;">=&gt;</span> <span style="color: #008200;">'UTF-8'</span>
	<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span></pre></td></tr></table></div>


]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/zend-framework/php-fatal-error-soapclient-unable-to-handle-request-without-a-valid-action-parameter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Astuce CodeIgniter : définir le timezone de la base de données</title>
		<link>http://www.kromack.com/codeigniter/astuce-codeigniter-definir-le-timezone-de-la-base-de-donnees/</link>
		<comments>http://www.kromack.com/codeigniter/astuce-codeigniter-definir-le-timezone-de-la-base-de-donnees/#comments</comments>
		<pubDate>Sun, 23 May 2010 12:59:54 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=1072</guid>
		<description><![CDATA[

Voici une astuce publiée sur le forum de CodeIgniter qui permet de définir le timezone à utiliser par la base de données un seule fois pour tous les modèles de l&#8217;application.
Pour réaliser cette tâche, l&#8217;auteur à simplement dérivé la classe Model de CodeIgniter afin d&#8217;exécuter la requête SQL modifiant le timezone à la construction de [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fcodeigniter%252Fastuce-codeigniter-definir-le-timezone-de-la-base-de-donnees%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Astuce%20CodeIgniter%20%3A%20d%C3%A9finir%20le%20timezone%20de%20la%20base%20de%20donn%C3%A9es%20%22%20%7D);"></div>
<p>Voici une astuce publiée sur le forum de <strong>CodeIgniter</strong> qui permet de <strong>définir le timezone</strong> à utiliser par la <strong>base de données</strong> un seule fois pour <strong>tous les modèles de l&#8217;application</strong>.</p>
<p>Pour réaliser cette tâche, l&#8217;auteur à simplement <strong>dérivé</strong> la <strong>classe Model</strong> de <strong>CodeIgniter</strong> afin d&#8217;exécuter la requête SQL modifiant le <strong>timezone</strong> à la construction de l&#8217;objet. Ainsi, comme lorsqu&#8217;on utilise <a href="http://www.kromack.com/acicrud/">ACICRUD</a>, les modèles de l&#8217;application doivent <strong>étendre la classe mère</strong> au lieu de la <strong>classe Model</strong>.</p>
<p>Voici l&#8217;exemple de code proposé par <a href="http://codeigniter.com/forums/member/129164/" rel="nofollow">flaky</a> :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1072code4'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p10724"><td class="code" id="p1072code4"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Master_model <span style="color: #000000; font-weight: bold;">extends</span> Model<span style="color: #000000;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
        parent<span style="color: #000000;">::</span>__construct<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
&nbsp;
        <span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">set_timezone</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> set_timezone<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
        <span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #000000;">&#40;</span><span style="color: #008200;">&quot;SET time_zone='+0:00'&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Some_model <span style="color: #000000; font-weight: bold;">extends</span> Master_model<span style="color: #000000;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
        parent<span style="color: #000000;">::</span>__construct<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p><em>Voir le <a rel="nofollow" href="http://codeigniter.com/forums/viewthread/150948/">post original</a>.</em></p>

]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/codeigniter/astuce-codeigniter-definir-le-timezone-de-la-base-de-donnees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le corps humain fait de HTML et de PHP !</title>
		<link>http://www.kromack.com/geeks-world/le-corps-humain-fait-de-html-et-de-php/</link>
		<comments>http://www.kromack.com/geeks-world/le-corps-humain-fait-de-html-et-de-php/#comments</comments>
		<pubDate>Sat, 15 May 2010 09:20:39 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[Geek's World]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[humour]]></category>
		<category><![CDATA[insolite]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=1042</guid>
		<description><![CDATA[

Je suis sûr que vous vous-êtes vous déjà souvent demandé en vous endormant le soir après une longue journée passée devant votre IDE favorite comment serait le corps humain s&#8217;il était construit avec du code HTML et PHP&#8230;
Heureusement, votre longue et pénible tourmente mentale s&#8217;arrête maintenant avec la réponse en image ci-dessous !  
(Non, [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fgeeks-world%252Fle-corps-humain-fait-de-html-et-de-php%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Le%20corps%20humain%20fait%20de%20HTML%20et%20de%20PHP%20%21%22%20%7D);"></div>
<p>Je suis sûr que vous vous-êtes vous déjà souvent demandé en vous endormant le soir après une longue journée passée devant votre IDE favorite <strong>comment serait le corps humain</strong> s&#8217;il était <strong>construit avec du code HTML et PHP</strong>&#8230;</p>
<p>Heureusement, votre longue et pénible tourmente mentale s&#8217;arrête maintenant avec la réponse en image ci-dessous ! <em> </em></p>
<p><small><em>(Non, ne me remerciez pas.)</em></small></p>
<p style="text-align: center;"><a href="http://www.kromack.com/wordpress/wp-content/uploads/2010/05/corps-humain-php-html.gif"><img class="aligncenter size-full wp-image-1043" title="corps humain php html" src="http://www.kromack.com/wordpress/wp-content/uploads/2010/05/corps-humain-php-html.gif" alt="corps humain php html" width="540" height="813" /></a></p>
<p><small><em>Via www.puntogeek.com</em></small></p>

]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/geeks-world/le-corps-humain-fait-de-html-et-de-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriel Acicrud : Utiliser plusieurs bases de données</title>
		<link>http://www.kromack.com/codeigniter/tutoriel-acicrud-utiliser-plusieurs-base-de-donnees/</link>
		<comments>http://www.kromack.com/codeigniter/tutoriel-acicrud-utiliser-plusieurs-base-de-donnees/#comments</comments>
		<pubDate>Sat, 08 May 2010 13:31:13 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Acicrud]]></category>
		<category><![CDATA[librairie]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=1009</guid>
		<description><![CDATA[

Tutoriel ACICRUD #5
Depuis la version 1.1, Acicrud est capable de se connecter à n&#8217;importe qu&#8217;elle base de données configurée dans le fichier system/application/database.php.
Veuillez noter que cette fonctionnalité est totalement facultative et que la librairie travaillera avec votre base de données par défaut si vous ne définissez aucune base de travail dans votre modèle.
Afin d&#8217;utiliser une [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fcodeigniter%252Ftutoriel-acicrud-utiliser-plusieurs-base-de-donnees%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Tutoriel%20Acicrud%20%3A%20Utiliser%20plusieurs%20bases%20de%20donn%C3%A9es%22%20%7D);"></div>
<h2>Tutoriel ACICRUD #5</h2>
<p>Depuis la version 1.1, Acicrud est capable de se connecter à n&#8217;importe qu&#8217;elle base de données configurée dans le fichier <em>system/application/database.php</em>.</p>
<p>Veuillez noter que cette fonctionnalité est totalement facultative et que la librairie travaillera avec votre base de données par défaut si vous ne définissez aucune base de travail dans votre modèle.</p>
<p>Afin d&#8217;utiliser une base de données différente de votre base de données par défaut, il suffit de spécifier le <strong>group</strong> à utiliser au constructeur d&#8217;<a href="http://www.kromack.com/acicrud/">ACICRUD</a>. Dans notre exemple il s&#8217;agiera d&#8217;une base de données nommée &laquo;&nbsp;<strong>rescue_database</strong>&laquo;&nbsp;.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1009code6'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p10096"><td class="code" id="p1009code6"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Exemple_Model <span style="color: #000000; font-weight: bold;">extends</span> Acicrud <span style="color: #000000;">&#123;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">//CONSTRUCTOR   </span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        parent<span style="color: #000000;">::</span>__construct<span style="color: #000000;">&#40;</span><span style="color: #008200;">'table_name'</span><span style="color: #000000;">,</span> <span style="color: #008200;">'rescue_database'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">//CUSTOM METHODS</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>


]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/codeigniter/tutoriel-acicrud-utiliser-plusieurs-base-de-donnees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dézipper en PHP sous CodeIgniter</title>
		<link>http://www.kromack.com/codeigniter/dezipper-en-php-sous-codeigniter/</link>
		<comments>http://www.kromack.com/codeigniter/dezipper-en-php-sous-codeigniter/#comments</comments>
		<pubDate>Sat, 08 May 2010 12:18:05 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[librairie]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[telechargement]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=1002</guid>
		<description><![CDATA[

Phil Sturgeon a publié une librairie extrêmement simple d&#8217;utilisation permettant de dézipper une archive via CodeIgniter sans aucune extension PECL !
Idéal si vous souhaitez extraire vos fichiers zippés via votre application !
Attention, la librairie nécessite les pré-requis techniques ci-dessous :

PHP 5.1+
CodeIgniter 1.6.x &#8211; 2.0-dev
extension ZLib

Unzip library

Télécharger la librairie Unzip
Voir le billet original


]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fcodeigniter%252Fdezipper-en-php-sous-codeigniter%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22D%C3%A9zipper%20en%20PHP%20sous%20CodeIgniter%22%20%7D);"></div>
<p><strong>Phil Sturgeon</strong> a publié une <strong>librairie</strong> extrêmement simple d&#8217;utilisation permettant de <strong>dézipper</strong> une archive via <strong>CodeIgniter</strong> sans aucune extension <strong>PECL</strong> !</p>
<p>Idéal si vous souhaitez extraire vos fichiers zippés via votre application !</p>
<p>Attention, la librairie nécessite les pré-requis techniques ci-dessous :</p>
<ul class="charte">
<li>PHP 5.1+</li>
<li>CodeIgniter 1.6.x &#8211; 2.0-dev</li>
<li>extension ZLib</li>
</ul>
<h2>Unzip library</h2>
<ul class="charte">
<li><a href="http://bitbucket.org/philsturgeon/">Télécharger la librairie <strong>Unzip</strong></a></li>
<li><a href="http://philsturgeon.co.uk/code/codeigniter-unzip">Voir le billet original</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/codeigniter/dezipper-en-php-sous-codeigniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acicrud library v1.1 for CodeIgniter released !</title>
		<link>http://www.kromack.com/codeigniter/acicrud-library-v1-1-for-codeigniter-released/</link>
		<comments>http://www.kromack.com/codeigniter/acicrud-library-v1-1-for-codeigniter-released/#comments</comments>
		<pubDate>Wed, 05 May 2010 08:30:05 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[gratuit]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[telechargement]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=986</guid>
		<description><![CDATA[


I&#8217;m proud to announce the immediate availability of the 1.1 stable version  of the Acicrud (Automatic CodeIgniter Create Read Update Delete) library  for CodeIgniter. The release 1.1 which the Git commit number is 0c28279ee917f5c37007072c090f2bbfb8795e62 brings new functionalities like multi database support and a lot of code enhancement.This release is globally easier to use [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fcodeigniter%252Facicrud-library-v1-1-for-codeigniter-released%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Acicrud%20library%20v1.1%20for%20CodeIgniter%20released%20%21%22%20%7D);"></div>
<div lang="en" xml:lang="en">
<p>I&#8217;m proud to announce the immediate availability of the 1.1 stable version  of the Acicrud (Automatic CodeIgniter Create Read Update Delete) library  for CodeIgniter. The release 1.1 which the Git commit number is 0c28279ee917f5c37007072c090f2bbfb8795e62 brings new functionalities like <strong>multi database support</strong> and a lot of code enhancement.This release is globally easier to use and <strong>the model creation code</strong> have been optimized.</p>
<p>The Acicrud library can fully manage a table for which at least the  first normal form is applicable.</p>
<p>Feel free to send your feedback on the Acicrud downloading page :</p>
<ul class="charte">
<li><a href="http://www.kromack.com/acicrud-english/">Go to the Acicrud&#8217;s  English page </a></li>
<li><a href="http://www.kromack.com/acicrud/">Aller sur la page d&#8217;Acicrud  en Français</a></li>
</ul>
<h2>Changelog</h2>
<p>The changelog of the 0c28279ee917f5c37007072c090f2bbfb8795e62 (<strong>v 1.1</strong>) is available below :</p>
<ul class="charte">
<li>Fixed a bug in the <strong>get($what, $id)</strong> method that died instead of  throwing the Exception.</li>
<li>Fixed : the last inserted ID is now  correctly updated when several <strong>create()</strong> are  called.</li>
<li>Multi database support added.</li>
<li>An associative array can now be given to the <strong>read()</strong> method to read an entry with a custon WHERE clause.</li>
<li>The model creation code have been optimized (see the new exemple tutorial).</li>
<li>An associative array can now be given to the <strong>countAll()</strong> method to count entries with a custon WHERE clause.</li>
<li>The deprecated method <strong>getFrenchDate()</strong> have been definitively removed.</li>
<li>The <strong>getBy($by, $value)</strong> method have been added (see the API documentation).</li>
<li><a href="http://www.kromack.com/codeigniter/lire-facilement-des-donnees-avec-acicrud/">Tutorial #2</a> updated (reading a row with a custom WHERE clause)</i>
<li><a href="http://www.kromack.com/codeigniter/supprimer-des-donnees-avec-acicrud/">Tutorial #4</a> updated (deleting rows with a custom WHERE clause)</i>
</ul>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/codeigniter/acicrud-library-v1-1-for-codeigniter-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter 2.0 disponible en téléchargement !</title>
		<link>http://www.kromack.com/codeigniter/codeigniter-2-0-disponible-en-telechargement/</link>
		<comments>http://www.kromack.com/codeigniter/codeigniter-2-0-disponible-en-telechargement/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 16:04:03 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[telechargement]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=961</guid>
		<description><![CDATA[

La nouvelle version du framework PHP, CodeIgniter 2.0 est disponible depuis quelques semaines en téléchargement sur la plateforme collaborative Mercurial, bitbucket. Cette nouvelle version apporte son lot de nouveautés comme une toute nouvelle librairie de gestion des frameworks JavaScript tels que jQuery ou Mootools. L&#8217;implémentation native se limite pour le moment à jQuery mais l&#8217;architecture [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fcodeigniter%252Fcodeigniter-2-0-disponible-en-telechargement%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CodeIgniter%202.0%20disponible%20en%20t%C3%A9l%C3%A9chargement%20%21%22%20%7D);"></div>
<p>La nouvelle version du <strong>framework PHP</strong>, <strong>CodeIgniter 2.0</strong> est disponible depuis quelques semaines en téléchargement sur la plateforme collaborative <strong>Mercurial</strong>, bitbucket. Cette nouvelle version apporte son lot de nouveautés comme une toute nouvelle librairie de <strong>gestion des frameworks JavaScript</strong> tels que<strong> jQuery</strong> ou <strong>Mootools</strong>. L&#8217;implémentation native se limite pour le moment à jQuery mais l&#8217;architecture du code laisse penser qu&#8217;il sera très facile d&#8217;implémenter votre librairie JavaScript préférée !</p>
<p>L&#8217;équipe d&#8217;<strong>EllisLab</strong> apporte également un nouveau concept de packages dont nous parlerons certainement très prochainement !</p>
<p>A noter également que le répertoire application à été déplacé en dehors du répertoire <em>system</em> ! Ce qui devrait nous éviter quotidiennement quelques centaines de clics !</p>
<p>Si vous n&#8217;avez pas encore tester cette version, c&#8217;est le moment de <a title="CodeIgniter 2.0" href="http://bitbucket.org/ellislab/codeigniter/overview">télécharger <strong>CodeIgniter 2.0</strong></a> !</p>

]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/codeigniter/codeigniter-2-0-disponible-en-telechargement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slides &#171;&#160;PHP 5.3 == Awesome!&#160;&#187; de la ConFoo 2010 de Montréal</title>
		<link>http://www.kromack.com/actualites/slides-php-5-3-awesomede-la-confoo-2010-de-montreal/</link>
		<comments>http://www.kromack.com/actualites/slides-php-5-3-awesomede-la-confoo-2010-de-montreal/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 18:50:28 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[Actualités]]></category>
		<category><![CDATA[ConFoo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=916</guid>
		<description><![CDATA[

Montréal organisait cette année la première édition de la CooFoo, conférence dédiée aux technologies web et en particulier à PHP, Python, Ruby, Java et .NET.
Parmi les conférences proposées, &#171;&#160;PHP 5.3 == Awesome!&#160;&#187; propose de faire un tour des nouveaux éléments et comportements du langage PHP. A découvrir sans plus tarder !
Téléchargement des slides (3,65 Mo).

]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Factualites%252Fslides-php-5-3-awesomede-la-confoo-2010-de-montreal%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Slides%20%5C%22PHP%205.3%20%3D%3D%20Awesome%21%5C%22%20de%20la%20ConFoo%202010%20de%20Montr%C3%A9al%22%20%7D);"></div>
<p>Montréal organisait cette année la première édition de la <strong>CooFoo</strong>, conférence dédiée aux technologies web et en particulier à <strong>PHP</strong>, <strong>Python</strong>, <strong>Ruby</strong>, <strong>Java</strong> et <strong>.NET</strong>.</p>
<p>Parmi les conférences proposées, <strong>&laquo;&nbsp;PHP 5.3 == Awesome!&nbsp;&raquo;</strong> propose de faire un tour des nouveaux éléments et comportements du langage PHP. A découvrir sans plus tarder !</p>
<p><a href="http://ilia.ws/files/Confoo2010_PHP53.pdf">Téléchargement des slides</a> (3,65 Mo).</p>

]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/actualites/slides-php-5-3-awesomede-la-confoo-2010-de-montreal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erreur PHP : Cannot create references to elements of a temporary array expression</title>
		<link>http://www.kromack.com/developpement/erreur-php-cannot-create-references-to-elements-of-a-temporary-array-expression/</link>
		<comments>http://www.kromack.com/developpement/erreur-php-cannot-create-references-to-elements-of-a-temporary-array-expression/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 14:21:24 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=885</guid>
		<description><![CDATA[

L&#8217;erreur fatale PHP Cannot create references to elements of a temporary array expression survient par exemple lorsqu&#8217;on tente d&#8217;assigner une variable par référence au sein d&#8217;une boucle foreach alors que le tableau d&#8217;entrée est une variable temporaire, c&#8217;est à dire générée et interprétée au sein de l&#8217;instruction foreach.
La variable n&#8217;ayant pas été déclarée et initialisée [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fdeveloppement%252Ferreur-php-cannot-create-references-to-elements-of-a-temporary-array-expression%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Erreur%20PHP%20%3A%20Cannot%20create%20references%20to%20elements%20of%20a%20temporary%20array%20expression%22%20%7D);"></div>
<p>L&#8217;erreur <strong>fatale</strong> PHP <strong>Cannot create references to elements of a temporary array expression</strong> survient par exemple lorsqu&#8217;on tente d&#8217;assigner une variable par référence au sein d&#8217;une boucle <strong>foreach</strong> alors que le tableau d&#8217;entrée est une variable temporaire, c&#8217;est à dire générée et interprétée au sein de l&#8217;instruction foreach.</p>
<p>La variable n&#8217;ayant pas été déclarée et initialisée en dehors de la boucle, l&#8217;accès aux références de chaque élément n&#8217;est donc pas possible.</p>
<p>Le code ci-dessous illustre un cas de figure où l&#8217;erreur survient, notez que les méthodes utilisées sont celles de la classes <strong>Active Record</strong> du <strong>framework CodeIgniter</strong> :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p885code9'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8859"><td class="code" id="p885code9"><pre class="php" style="font-family:monospace;"><span style="color: #660000;">$q</span> <span style="color: #000000;">=</span> <span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">o_db</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// The foreach's source array is created inside the foreach</span>
<span style="color: #808080; font-style: italic;">// This way cause the fatal error &quot;Cannot create references to elements of a temporary array expression&quot;</span>
<span style="color: #0000FF;">foreach</span><span style="color: #000000;">&#40;</span><span style="color: #660000;">$q</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">result</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000FF;">as</span> <span style="color: #000000;">&amp;</span><span style="color: #660000;">$row</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
    <span style="color: #660000;">$row</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">some_property</span> <span style="color: #000000;">=</span> <span style="color: #008200;">'some_value'</span><span style="color: #000000;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<h2>La solution</h2>
<p>Il suffit de déclarer le tableau d&#8217;entrée de la boucle foreach à <strong>l&#8217;extérieur</strong> de celui-ci :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p885code10'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p88510"><td class="code" id="p885code10"><pre class="php" style="font-family:monospace;"><span style="color: #660000;">$q</span> <span style="color: #000000;">=</span> <span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">o_db</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
&nbsp;
<span style="color: #660000;">$result</span> <span style="color: #000000;">=</span> <span style="color: #660000;">$q</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">result</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// The foreach's source array is created outside the foreach</span>
<span style="color: #808080; font-style: italic;">// This way allows to assign $row by reference</span>
&nbsp;
<span style="color: #0000FF;">foreach</span><span style="color: #000000;">&#40;</span><span style="color: #660000;">$result</span> <span style="color: #0000FF;">as</span> <span style="color: #000000;">&amp;</span><span style="color: #660000;">$row</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
    <span style="color: #660000;">$row</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">some_property</span> <span style="color: #000000;">=</span> <span style="color: #008200;">'some_value'</span><span style="color: #000000;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>


]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/developpement/erreur-php-cannot-create-references-to-elements-of-a-temporary-array-expression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriel Acicrud : ajouter des custom methods à vos modèles</title>
		<link>http://www.kromack.com/codeigniter/tutoriel-acicrud-ajouter-des-custom-methods-a-vos-modeles/</link>
		<comments>http://www.kromack.com/codeigniter/tutoriel-acicrud-ajouter-des-custom-methods-a-vos-modeles/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 18:48:12 +0000</pubDate>
		<dc:creator>Kromack</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Acicrud]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.kromack.com/?p=848</guid>
		<description><![CDATA[

Tutoriel ACICRUD #5
Dans ce cinquième tutoriel d’utilisation de la librairie ACICURD pour CodeIgniter, nous allons voir comment définir de nouvelles méthodes dans les modèles utilisant ACICRUD et comment profiter de certaines méthodes de la librairie.
Création d&#8217;une méthode spécifique
Imaginons que vous désiriez sélectionner un champ username dans une table user à partir de l&#8217;identifiant de l&#8217;utilisateur [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_monochrome" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.kromack.com%252Fcodeigniter%252Ftutoriel-acicrud-ajouter-des-custom-methods-a-vos-modeles%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Tutoriel%20Acicrud%20%3A%20ajouter%20des%20custom%20methods%20%C3%A0%20vos%20mod%C3%A8les%20%22%20%7D);"></div>
<h2>Tutoriel ACICRUD #5</h2>
<p>Dans ce cinquième tutoriel d’utilisation de la librairie <a href="http://www.kromack.com/acicrud/" target="_blank">ACICURD</a> pour CodeIgniter, nous allons voir comment définir de nouvelles méthodes dans les modèles utilisant ACICRUD et comment profiter de certaines méthodes de la librairie.</p>
<h2>Création d&#8217;une méthode spécifique</h2>
<p>Imaginons que vous désiriez sélectionner un champ <em>username</em> dans une table <em>user</em> à partir de l&#8217;identifiant de l&#8217;utilisateur <em>id</em>. Nous allons pour cela ajouter une nouvelle méthode dans notre modèle ayant exactement le fonctionnement que nous désirons et s&#8217;appuyant sur la méthode <em>$this-&gt;row()</em> qui exécute la requête <strong>Active Record</strong> et retourne un objet résultat.</p>
<p>Notez qu&#8217;il serait également possible d&#8217;utiliser la méthode <em>getAll()</em> d&#8217;ACICRUD pour arriver à ce résultat.</p>
<p>Voici le code du fichier user.php à placer dans le répertoire models :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p848code12'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p84812"><td class="code" id="p848code12"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> User <span style="color: #000000; font-weight: bold;">extends</span> Acicrud <span style="color: #000000;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">//CONSTRUCTOR</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		parent<span style="color: #000000;">::</span>__construct<span style="color: #000000;">&#40;</span><span style="color: #008200;">'user'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">//CUSTOM METHODS</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * Return the username of an user identified by his id
	 *
	 * @param int $id
	 * @return Object
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> get_username<span style="color: #000000;">&#40;</span><span style="color: #660000;">$id</span> <span style="color: #000000;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
		try <span style="color: #000000;">&#123;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// Checking if $id is a valid primary key value</span>
			<span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">checkId</span><span style="color: #000000;">&#40;</span><span style="color: #660000;">$id</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// Building the query</span>
			<span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">select</span><span style="color: #000000;">&#40;</span><span style="color: #008200;">'username'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">from</span><span style="color: #000000;">&#40;</span><span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">table</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #000000;">&#40;</span><span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">key</span><span style="color: #000000;">,</span> <span style="color: #660000;">$id</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// Returning the result</span>
			<span style="color: #0000FF;">return</span> <span style="color: #660000;">$this</span><span style="color: #000000;">-&gt;</span><span style="color: #004000;">row</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span>		
&nbsp;
		<span style="color: #000000;">&#125;</span> catch<span style="color: #000000;">&#40;</span>Exception <span style="color: #660000;">$e</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp;
			throw<span style="color: #000000;">&#40;</span><span style="color: #660000;">$e</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">;</span> <span style="color: #808080; font-style: italic;">// Throws the ACICRUD's exception</span>
&nbsp;
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Il vous est donc tout à fait possible d&#8217;ajouter vos propres comportements au sein d&#8217;un modèle héritant de la librairie ACICRUD. Notez que dans cet exemple, la méthode s&#8217;appuie également sur le système d&#8217;exceptions géré par ACICRUD. Je vous conseille donc d&#8217;inclure l&#8217;appel de la méthode <em>get_username</em> dans votre contrôleur au sein d&#8217;un bloc try/catch.</p>
<h2>Tutoriel suivant</h2>
<p>» <a href="http://www.kromack.com/codeigniter/tutoriel-acicrud-utiliser-plusieurs-base-de-donnees/">Utiliser plusieurs bases de données</a></p>

]]></content:encoded>
			<wfw:commentRss>http://www.kromack.com/codeigniter/tutoriel-acicrud-ajouter-des-custom-methods-a-vos-modeles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
