<?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>Web 2.0, Scripts PHP 5 Object Oriented, Scripts Javascript, XHTML</title>
	<atom:link href="http://blog.peewa.org/fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.peewa.org</link>
	<description></description>
	<lastBuildDate>Sat, 07 Aug 2010 09:54:18 +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>Quelques commandes Apache de base sous linux&#8230; (Fedora)</title>
		<link>http://blog.peewa.org/fr/2010/07/28/quelques-commandes-apache-de-base-sous-linux-fedora/</link>
		<comments>http://blog.peewa.org/fr/2010/07/28/quelques-commandes-apache-de-base-sous-linux-fedora/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 18:37:05 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[Peewa: le blog]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/fr/?p=342</guid>
		<description><![CDATA[
			
				
			
		
Nous allons commencer par installer le service:
su -c &#8216;yum install httpd-manual&#8217;
Puis configurer apache pour qu&#8217;il démarre comme un service:
su -lc &#8216;chkconfig httpd on&#8217;
Démarrer apache:
su -lc &#8217;service httpd start&#8217;
Arrêter apache:
su -lc &#8217;service httpd stop&#8217;
Redémarrer apache:
su -lc &#8217;service httpd restart&#8217;
Tester une nouvelle configuration:
su -lc &#8217;service httpd configtest&#8217;
Charger la nouvelle configuration sans redémarrer le service:
su -lc &#8217;service httpd [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F07%2F28%2Fquelques-commandes-apache-de-base-sous-linux-fedora%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F07%2F28%2Fquelques-commandes-apache-de-base-sous-linux-fedora%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Nous allons commencer par installer le service:<br />
<strong>su -c &#8216;yum install httpd-manual&#8217;</strong></p>
<p>Puis configurer apache pour qu&#8217;il démarre comme un service:<br />
<strong>su -lc &#8216;chkconfig httpd on&#8217;</strong></p>
<p>Démarrer apache:<br />
<strong>su -lc &#8217;service httpd start&#8217;</strong></p>
<p>Arrêter apache:<br />
<strong>su -lc &#8217;service httpd stop&#8217;</strong></p>
<p>Redémarrer apache:<br />
<strong>su -lc &#8217;service httpd restart&#8217;</strong></p>
<p>Tester une nouvelle configuration:<br />
<strong>su -lc &#8217;service httpd configtest&#8217;</strong></p>
<p>Charger la nouvelle configuration sans redémarrer le service:<br />
<strong>su -lc &#8217;service httpd reload&#8217; </strong></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Partager</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/07/28/quelques-commandes-apache-de-base-sous-linux-fedora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.3.3 Released!</title>
		<link>http://blog.peewa.org/fr/2010/07/24/php-5-3-3-released/</link>
		<comments>http://blog.peewa.org/fr/2010/07/24/php-5-3-3-released/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 17:31:48 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[Peewa: le blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php5.3.3]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/fr/?p=340</guid>
		<description><![CDATA[
			
				
			
		
Et le même jour une petite update du coté de la 5.3 comme quoi du coté de php il y a quand même des nouveautés.
Il est à noter cependant que cette mise à jour impacte la migration de vos scripts car elle modifie les contructeurs dans les espaces de noms.
Upgraded bundled sqlite to version 3.6.23.1. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F07%2F24%2Fphp-5-3-3-released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F07%2F24%2Fphp-5-3-3-released%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Et le même jour une petite update du coté de la 5.3 comme quoi du coté de php il y a quand même des nouveautés.</p>
<p>Il est à noter cependant que cette mise à jour impacte la migration de vos scripts car elle modifie les contructeurs dans les espaces de noms.</p>
<p>Upgraded bundled sqlite to version 3.6.23.1. (Ilia)<br />
Upgraded bundled PCRE to version 8.02. (Ilia)<br />
Added support for JSON_NUMERIC_CHECK option in json_encode() that converts numeric strings to integers. (Ilia)<br />
Added stream_set_read_buffer, allows to set the buffer for read operation. (Pierre)<br />
Added stream filter support to mcrypt extension (ported from mcrypt_filter). (Stas)<br />
Added full_special_chars filter to ext/filter. (Rasmus)<br />
Added backlog socket context option for stream_socket_server(). (Mike)<br />
Added fifth parameter to openssl_encrypt()/openssl_decrypt() (string $iv) to use non-NULL IV.<br />
Made implicit use of NULL IV a warning. (Sara)<br />
Added openssl_cipher_iv_length(). (Sara)<br />
Added FastCGI Process Manager (FPM) SAPI. (Tony)<br />
Added recent Windows versions to php_uname and fix undefined windows version support. (Pierre)<br />
Added Berkeley DB 5 support to the DBA extension. (Johannes, Chris Jones)<br />
Added support for copy to/from array/file for pdo_pgsql extension. (Denis Gasparin, Ilia)<br />
Added inTransaction() method to PDO, with specialized support for Postgres. (Ilia, Denis Gasparin)<br />
Changed namespaced classes so that the ctor can only be named __construct now. (Stas)<br />
Reset error state in PDO::beginTransaction() reset error state. (Ilia)<br />
Implemented FR #51295 (SQLite3::busyTimeout not existing). (Mark)<br />
Implemented FR #35638 (Adding udate to imap_fetch_overview results). (Charles_Duffy at dell dot com )<br />
Rewrote var_export() to use smart_str rather than output buffering, prevents data disclosure if a fatal error occurs (CVE-2010-2531). (Scott)<br />
Fixed possible buffer overflows in mysqlnd_list_fields, mysqlnd_change_user. (Andrey)<br />
Fixed possible buffer overflows when handling error packets in mysqlnd. Reported by Stefan Esser. (Andrey)<br />
Fixed very rare memory leak in mysqlnd, when binding thousands of columns. (Andrey)<br />
Fixed a crash when calling an inexistent method of a class that inherits PDOStatement if instantiated directly instead of doing by the PDO methods. (Felipe)<br />
Fixed memory leak on error in mcrypt_create_iv on Windows. (Pierre)<br />
Fixed a possible crash because of recursive GC invocation. (Dmitry)<br />
Fixed a possible resource destruction issues in shm_put_var(). Reported by Stefan Esser. (Dmitry)<br />
Fixed a possible information leak because of interruption of XOR operator. Reported by Stefan Esser. (Dmitry)<br />
Fixed a possible memory corruption because of unexpected call-time pass by refernce and following memory clobbering through callbacks.<br />
Reported by Stefan Esser. (Dmitry)<br />
Fixed a possible memory corruption in ArrayObject::uasort(). Reported by Stefan Esser. (Dmitry)<br />
Fixed a possible memory corruption in parse_str(). Reported by Stefan Esser. (Dmitry)<br />
Fixed a possible memory corruption in pack(). Reported by Stefan Esser. (Dmitry)<br />
Fixed a possible memory corruption in substr_replace(). Reported by Stefan Esser. (Dmitry)<br />
Fixed a possible memory corruption in addcslashes(). Reported by Stefan Esser. (Dmitry)<br />
Fixed a possible stack exhaustion inside fnmatch(). Reported by Stefan Esser. (Ilia)<br />
Fixed a possible dechunking filter buffer overflow. Reported by Stefan Esser. (Pierre)<br />
Fixed a possible arbitrary memory access inside sqlite extension. Reported by Mateusz Kocielski. (Ilia)<br />
Fixed string format validation inside phar extension. Reported by Stefan Esser. (Ilia)<br />
Fixed handling of session variable serialization on certain prefix characters. Reported by Stefan Esser. (Ilia)<br />
Fixed a NULL pointer dereference when processing invalid XML-RPC requests (Fixes CVE-2010-0397, bug #51288). (Raphael Geissert)<br />
Fixed 64-bit integer overflow in mhash_keygen_s2k(). (Clément LECIGNE, Stas)<br />
Fixed SplObjectStorage unserialization problems (CVE-2010-2225). (Stas)<br />
Fixed the mail.log ini setting when no filename was given. (Johannes)<br />
Fixed bug #52317 (Segmentation fault when using mail() on a rhel 4.x (only 64 bit)). (Adam)<br />
Fixed bug #52262 (json_decode() shows no errors on invalid UTF-8). (Scott)<br />
Fixed bug #52240 (hash_copy() does not copy the HMAC key, causes wrong results and PHP crashes). (Felipe)<br />
Fixed bug #52238 (Crash when an Exception occured in iterator_to_array). (Johannes)<br />
Fixed bug #52193 (converting closure to array yields empty array). (Felipe)<br />
Fixed bug #52183 (Reflectionfunction reports invalid number of arguments for function aliases). (Felipe)<br />
Fixed bug #52162 (custom request header variables with numbers are removed). (Sriram Natarajan)<br />
Fixed bug #52160 (Invalid E_STRICT redefined constructor error). (Felipe)<br />
Fixed bug #52138 (Constants are parsed into the ini file for section names). (Felipe)<br />
Fixed bug #52115 (mysqli_result::fetch_all returns null, not an empty array). (Andrey)<br />
Fixed bug #52101 (dns_get_record() garbage in &#8216;ipv6&#8242; field on Windows). (Pierre)<br />
Fixed bug #52082 (character_set_client &#038; character_set_connection reset after mysqli_change_user()). (Andrey)<br />
Fixed bug #52043 (GD doesn&#8217;t recognize latest libJPEG versions). (php at group dot apple dot com, Pierre)<br />
Fixed bug #52041 (Memory leak when writing on uninitialized variable returned from function). (Dmitry)<br />
Fixed bug #52060 (Memory leak when passing a closure to method_exists()). (Felipe)<br />
Fixed bug #52057 (ReflectionClass fails on Closure class). (Felipe)<br />
Fixed bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+). (Felipe)<br />
Fixed bug #52037 (Concurrent builds fail in install-programs). (seanius at debian dot org, Kalle)<br />
Fixed bug #52019 (make lcov doesn&#8217;t support TESTS variable anymore). (Patrick)<br />
Fixed bug #52010 (open_basedir restrictions mismatch on vacuum command). (Ilia)<br />
Fixed bug #52001 (Memory allocation problems after using variable variables). (Dmitry)<br />
Fixed bug #51991 (spl_autoload and *nix support with namespace). (Felipe)<br />
Fixed bug #51943 (AIX: Several files are out of ANSI spec). (Kalle, coreystup at gmail dot com)<br />
Fixed bug #51911 (ReflectionParameter::getDefaultValue() memory leaks with constant array). (Felipe)<br />
Fixed bug #51905 (ReflectionParameter fails if default value is an array with an access to self::). (Felipe)<br />
Fixed bug #51899 (Parse error in parse_ini_file() function when empy value followed by no newline). (Felipe)<br />
Fixed bug #51844 (checkdnsrr does not support types other than MX). (Pierre)<br />
Fixed bug #51827 (Bad warning when register_shutdown_function called with wrong num of parameters). (Felipe)<br />
Fixed bug #51822 (Segfault with strange __destruct() for static class variables). (Dmitry)<br />
Fixed bug #51791 (constant() aborts execution when fail to check undefined constant). (Felipe)<br />
Fixed bug #51732 (Fileinfo __construct or open does not work with NULL). (Pierre)<br />
Fixed bug #51725 (xmlrpc_get_type() returns true on invalid dates). (Mike)<br />
Fixed bug #51723 (Content-length header is limited to 32bit integer with Apache2 on Windows). (Pierre)<br />
Fixed bug #51721 (mark DOMNodeList and DOMNamedNodeMap as Traversable). (David Zuelke)<br />
Fixed bug #51712 (Test mysql_mysqlnd_read_timeout_long must fail on MySQL4). (Andrey)<br />
Fixed bug #51697 (Unsafe operations in free_storage of SPL iterators, causes crash during shutdown). (Etienne)<br />
Fixed bug #51690 (Phar::setStub looks for case-sensitive __HALT_COMPILER()). (Ilia)<br />
Fixed bug #51688 (ini per dir crashes when invalid document root are given). (Pierre)<br />
Fixed bug #51671 (imagefill does not work correctly for small images). (Pierre)<br />
Fixed bug #51670 (getColumnMeta causes segfault when re-executing query after calling nextRowset). (Pierrick)<br />
Fixed bug #51647 Certificate file without private key (pk in another file) doesn&#8217;t work. (Andrey)<br />
Fixed bug #51629 (CURLOPT_FOLLOWLOCATION error message is misleading). (Pierre)<br />
Fixed bug #51627 (script path not correctly evaluated). (russell dot tempero at rightnow dot com)<br />
Fixed bug #51624 (Crash when calling mysqli_options()). (Felipe)<br />
Fixed bug #51615 (PHP crash with wrong HTML in SimpleXML). (Felipe)<br />
Fixed bug #51609 (pg_copy_to: Invalid results when using fourth parameter). (Felipe)<br />
Fixed bug #51608 (pg_copy_to: WARNING: nonstandard use of \\ in a string literal). (cbandy at jbandy dot com)<br />
Fixed bug #51607 (pg_copy_from does not allow schema in the tablename argument). (cbandy at jbandy dot com)<br />
Fixed bug #51605 (Mysqli &#8211; zombie links). (Andrey)<br />
Fixed bug #51604 (newline in end of header is shown in start of message). (Daniel Egeberg)<br />
Fixed bug #51590 (JSON_ERROR_UTF8 is undefined). (Felipe)<br />
Fixed bug #51583 (Bus error due to wrong alignment in mysqlnd). (Rainer Jung)<br />
Fixed bug #51582 (Don&#8217;t assume UINT64_C it&#8217;s ever available). (reidrac at usebox dot net, Pierre)<br />
Fixed bug #51577 (Uninitialized memory reference with oci_bind_array_by_name) (Oracle Corp.)<br />
Fixed bug #51562 (query timeout in mssql can not be changed per query). (ejsmont dot artur at gmail dot com)<br />
Fixed bug #51552 (debug_backtrace() causes segmentation fault and/or memory issues). (Dmitry)<br />
Fixed bug #51445 (var_dump() invalid/slow *RECURSION* detection). (Felipe)<br />
Fixed bug #51435 (Missing ifdefs / logic bug in crypt code cause compile errors). (Felipe)<br />
Fixed bug #51424 (crypt() function hangs after 3rd call). (Pierre, Sriram)<br />
Fixed bug #51394 (Error line reported incorrectly if error handler throws an exception). (Stas)<br />
Fixed bug #51393 (DateTime::createFromFormat() fails if format string contains timezone). (Adam)<br />
Fixed bug #51347 (mysqli_close / connection memory leak). (Andrey, Johannes)<br />
Fixed bug #51338 (URL-Rewriter is still enabled if use_only_cookies is on). (Ilia, j dot jeising at gmail dot com)<br />
Fixed bug #51291 (oci_error doesn&#8217;t report last error when called two times) (Oracle Corp.)<br />
Fixed bug #51276 (php_load_extension() is missing when HAVE_LIBDL is undefined). (Tony)<br />
Fixed bug #51273 (Faultstring property does not exist when the faultstring is empty) (Ilia, dennis at transip dot nl)<br />
Fixed bug #51269 (zlib.output_compression Overwrites Vary Header). (Adam)<br />
Fixed bug #51257 (CURL_VERSION_LARGEFILE incorrectly used after libcurl version 7.10.1). (aron dot ujvari at microsec dot hu)<br />
Fixed bug #51242 (Empty mysql.default_port does not default to 3306 anymore, but 0). (Adam)<br />
Fixed bug #51237 (milter SAPI crash on startup). (igmar at palsenberg dot com)<br />
Fixed bug #51213 (pdo_mssql is trimming value of the money column). (Ilia, alexr at oplot dot com)<br />
Fixed bug #51190 (ftp_put() returns false when transfer was successful). (Ilia)<br />
Fixed bug #51183 (ext/date/php_date.c fails to compile with Sun Studio). (Sriram Natarajan)<br />
Fixed bug #51176 (Static calling in non-static method behaves like $this->). (Felipe)<br />
Fixed bug #51171 (curl_setopt() doesn&#8217;t output any errors or warnings when an invalid option is provided). (Ilia)<br />
Fixed bug #51128 (imagefill() doesn&#8217;t work with large images). (Pierre)<br />
Fixed bug #51096 (&#8216;last day&#8217; and &#8216;first day&#8217; are handled incorrectly when parsing date strings). (Derick)<br />
Fixed bug #51086 (DBA DB4 doesn&#8217;t work with Berkeley DB 4.8). (Chris Jones)<br />
Fixed bug #51062 (DBA DB4 uses mismatched headers and libraries). (Chris Jones)<br />
Fixed bug #51026 (mysqli_ssl_set not working). (Andrey)<br />
Fixed bug #51023 (filter doesn&#8217;t detect int overflows with GCC 4.4). (Raphael Geissert)<br />
Fixed bug #50999 (unaligned memory access in dba_fetch()). (Felipe)<br />
Fixed bug #50976 (Soap headers Authorization not allowed). (Brain France, Dmitry)<br />
Fixed bug #50828 (DOMNotation is not subclass of DOMNode). (Rob)<br />
Fixed bug #50810 (property_exists does not work for private). (Felipe)<br />
Fixed bug #50762 (in WSDL mode Soap Header handler function only being called if defined in WSDL). (mephius at gmail dot com)<br />
Fixed bug #50731 (Inconsistent namespaces sent to functions registered with spl_autoload_register). (Felipe)<br />
Fixed bug #50563 (removing E_WARNING from parse_url). (ralph at smashlabs dot com, Pierre)<br />
Fixed bug #50578 (incorrect shebang in phar.phar). (Fedora at FamilleCollet dot com)<br />
Fixed bug #50392 (date_create_from_format enforces 6 digits for &#8216;u&#8217; format character). (Derick)<br />
Fixed bug #50383 (Exceptions thrown in __call / __callStatic do not include file and line in trace). (Felipe)<br />
Fixed bug #50358 (Compile failure compiling ext/phar/util.lo). (Felipe)<br />
Fixed bug #50101 (name clash between global and local variable). (patch by yoarvi at gmail dot com)<br />
Fixed bug #50055 (DateTime::sub() allows &#8216;relative&#8217; time modifications). (Derick)<br />
Fixed bug #51002 (fix possible memory corruption with very long names). (Pierre)<br />
Fixed bug #49893 (Crash while creating an instance of Zend_Mail_Storage_Pop3). (Dmitry)<br />
Fixed bug #49819 (STDOUT losing data with posix_isatty()). (Mike)<br />
Fixed bug #49778 (DateInterval::format(&laquo;&nbsp;%a&nbsp;&raquo;) is always zero when an interval is created from an ISO string). (Derick)<br />
Fixed bug #49700 (memory leaks in php_date.c if garbage collector is enabled). (Dmitry)<br />
Fixed bug #49576 (FILTER_VALIDATE_EMAIL filter needs updating) (Rasmus)<br />
Fixed bug #49490 (XPath namespace prefix conflict). (Rob)<br />
Fixed bug #49429 (odbc_autocommit doesn&#8217;t work). (Felipe)<br />
Fixed bug #49320 (PDO returns null when SQLite connection fails). (Felipe)<br />
Fixed bug #49234 (mysqli_ssl_set not found). (Andrey)<br />
Fixed bug #49216 (Reflection doesn&#8217;t seem to work properly on MySqli). (Andrey)<br />
Fixed bug #49192 (PHP crashes when GC invoked on COM object). (Stas)<br />
Fixed bug #49081 (DateTime::diff() mistake if start in January and interval > 28 days). (Derick)<br />
Fixed bug #49059 (DateTime::diff() repeats previous sub() operation). (yoarvi@gmail.com, Derick)<br />
Fixed bug #48983 (DomDocument : saveHTMLFile wrong charset). (Rob)<br />
Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3). (Felipe)<br />
Fixed bug #48902 (Timezone database fallback map is outdated). (Derick)<br />
Fixed bug #48781 (Cyclical garbage collector memory leak). (Dmitry)<br />
Fixed bug #48601 (xpath() returns FALSE for legitimate query). (Rob)<br />
Fixed bug #48361 (SplFileInfo::getPathInfo should return the parent dir). (Etienne)<br />
Fixed bug #48289 (iconv_mime_encode() quoted-printable scheme is broken). (Adam, patch from hiroaki dot kawai at gmail dot com).<br />
Fixed bug #47842 (sscanf() does not support 64-bit values). (Mike)<br />
Fixed bug #46111 (Some timezone identifiers can not be parsed). (Derick)<br />
Fixed bug #45808 (stream_socket_enable_crypto() blocks and eats CPU). (vincent at optilian dot com)<br />
Fixed bug #43233 (sasl support for ldap on Windows). (Pierre)<br />
Fixed bug #35673 (formatOutput does not work with saveHTML). (Rob)<br />
Fixed bug #33210 (getimagesize() fails to detect width/height on certain JPEGs). (Ilia)</p>
<p>Plus d&#8217;information directement sur le site de php.net : http://www.php.net/ChangeLog-5.php#5.3.3</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Partager</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/07/24/php-5-3-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.2.14 Released!</title>
		<link>http://blog.peewa.org/fr/2010/07/24/php-5-2-14-released/</link>
		<comments>http://blog.peewa.org/fr/2010/07/24/php-5-2-14-released/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 17:29:12 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php 5.2.14]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/fr/?p=338</guid>
		<description><![CDATA[
			
				
			
		
Et voila depuis le 22 juillet nous avons droit à une petite release supplémentaire du coté de la 5.2:
Au programme des réjouissances nous trouverons dans le changelogs des nouveautés:
Reverted bug fix #49521 (PDO fetchObject sets values before calling constructor). (Felipe)
Updated timezone database to version 2010.5. (Derick)
Upgraded bundled PCRE to version 8.02. (Ilia)
Rewrote var_export() to use [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F07%2F24%2Fphp-5-2-14-released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F07%2F24%2Fphp-5-2-14-released%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Et voila depuis le 22 juillet nous avons droit à une petite release supplémentaire du coté de la 5.2:</p>
<p>Au programme des réjouissances nous trouverons dans le changelogs des nouveautés:</p>
<p>Reverted bug fix #49521 (PDO fetchObject sets values before calling constructor). (Felipe)<br />
Updated timezone database to version 2010.5. (Derick)<br />
Upgraded bundled PCRE to version 8.02. (Ilia)<br />
Rewrote var_export() to use smart_str rather than output buffering, revents data disclosure if a fatal error occurs (CVE-2010-2531). (Scott)<br />
Fixed a possible interruption array leak in strrchr(). Reported by Péter Veres. (CVE-2010-2484) (Felipe)<br />
Fixed a possible interruption array leak in strchr(), strstr(), substr(), chunk_split(), strtok(), addcslashes(), str_repeat(), trim(). (Felipe)<br />
Fixed a possible memory corruption in substr_replace() (Dmitry)<br />
Fixed SplObjectStorage unserialization problems (CVE-2010-2225). (Stas)<br />
Fixed a possible stack exaustion inside fnmatch(). Reporeted by Stefan Esser (Ilia)<br />
Reset error state in PDO::beginTransaction() reset error state. (Ilia)<br />
Fixed a NULL pointer dereference when processing invalid XML-RPC requests (Fixes CVE-2010-0397, bug #51288). (Raphael Geissert)<br />
Fixed handling of session variable serialization on certain prefix characters. Reported by Stefan Esser (Ilia)<br />
Fixed a possible arbitrary memory access inside sqlite extension. Reported by Mateusz Kocielski. (Ilia)<br />
Fixed a crash when calling an inexistent method of a class that inherits PDOStatement if instantiated directly instead of doing by the PDO methods. (Felipe)<br />
Fixed bug #52317 (Segmentation fault when using mail() on a rhel 4.x (only 64 bit)). (Adam)<br />
Fixed bug #52238 (Crash when an Exception occured in iterator_to_array). (Johannes)<br />
Fixed bug #52237 (Crash when passing the reference of the property of a non-object). (Dmitry)<br />
Fixed bug #52163 (SplFileObject::fgetss() fails due to parameter that can&#8217;t be set). (Felipe)<br />
Fixed bug #52162 (custom request header variables with numbers are removed). (Sriram Natarajan)<br />
Fixed bug #52160 (Invalid E_STRICT redefined constructor error). (Felipe)<br />
Fixed bug #52061 (memory_limit above 2G). (Felipe)<br />
Fixed bug #52041 (Memory leak when writing on uninitialized variable returned from function). (Dmitry)<br />
Fixed bug #52037 (Concurrent builds fail in install-programs). (seanius at debian dot org, Kalle)<br />
Fixed bug #52019 (make lcov doesn&#8217;t support TESTS variable anymore). (Patrick)<br />
Fixed bug #52010 (open_basedir restrictions mismatch on vacuum command). (Ilia, Felipe)<br />
Fixed bug #51943 (AIX: Several files are out of ANSI spec). (Kalle, coreystup at gmail dot com)<br />
Fixed bug #51911 (ReflectionParameter::getDefaultValue() memory leaks with constant array). (Felipe)<br />
Fixed bug #51905 (ReflectionParameter fails if default value is an array with an access to self::). (Felipe)<br />
Fixed bug #51822 (Segfault with strange __destruct() for static class variables). (Dmitry)<br />
Fixed bug #51671 (imagefill does not work correctly for small images). (Pierre)<br />
Fixed bug #51670 (getColumnMeta causes segfault when re-executing query after calling nextRowset). (Pierrick)<br />
Fixed bug #51629 (CURLOPT_FOLLOWLOCATION error message is misleading). (Pierre)<br />
Fixed bug #51617 (PDO PGSQL still broken against PostGreSQL <7.4). (Felipe, wdierkes at 5dollarwhitebox dot org)<br />
Fixed bug #51615 (PHP crash with wrong HTML in SimpleXML). (Felipe)<br />
Fixed bug #51609 (pg_copy_to: Invalid results when using fourth parameter). (Felipe)<br />
Fixed bug #51608 (pg_copy_to: WARNING: nonstandard use of \\ in a string literal). (cbandy at jbandy dot com)<br />
Fixed bug #51607 (pg_copy_from does not allow schema in the tablename argument). (cbandy at jbandy dot com)<br />
Fixed bug #51604 (newline in end of header is shown in start of message). (Daniel Egeberg)<br />
Fixed bug #51562 (query timeout in mssql can not be changed per query). (ejsmont dot artur at gmail dot com)<br />
Fixed bug #51552 (debug_backtrace() causes segmentation fault and/or memory issues). (Dmitry)<br />
Fixed bug #51532 (Wrong prototype for SplFileObject::fscanf()). (Etienne)<br />
Fixed bug #51445 (var_dump() invalid/slow *RECURSION* detection). (Felipe)<br />
Fixed bug #51393 (DateTime::createFromFormat() fails if format string contains timezone). (Adam)<br />
Fixed bug #51374 (Wrongly initialized object properties). (Etienne)<br />
Fixed bug #51338 (URL-Rewriter is still enabled if use_only_cookies is on). (Ilia, j dot jeising at gmail dot com)<br />
Fixed bug #51273 (Faultstring property does not exist when the faultstring is empty) (Ilia, dennis at transip dot nl)<br />
Fixed bug #51269 (zlib.output_compression Overwrites Vary Header). (Adam)<br />
Fixed bug #51263 (imagettftext and rotated text uses wrong baseline) (cschneid at cschneid dot com, Takeshi Abe)<br />
Fixed bug #51237 (milter SAPI crash on startup). (igmar at palsenberg dot com)<br />
Fixed bug #51213 (pdo_mssql is trimming value of the money column). (Ilia, alexr at oplot dot com)<br />
Fixed bug #51192 (FILTER_VALIDATE_URL will invalidate a hostname that includes &#8216;-&#8217;). (Adam, solar at azrael dot ws).<br />
Fixed bug #51190 (ftp_put() returns false when transfer was successful). (Ilia)<br />
Fixed bug #51183 (ext/date/php_date.c fails to compile with Sun Studio). (Sriram Natarajan)<br />
Fixed bug #51171 (curl_setopt() doesn&#8217;t output any errors or warnings when an invalid option is provided). (Ilia)<br />
Fixed bug #51128 (imagefill() doesn&#8217;t work with large images). (Pierre)<br />
Fixed bug #51086 (DBA DB4 doesn&#8217;t work with Berkeley DB 4.8). (Chris Jones)<br />
Fixed bug #51062 (DBA DB4 uses mismatched headers and libraries). (Chris Jones)<br />
Fixed bug #51023 (filter doesn&#8217;t detect int overflows with GCC 4.4). (Raphael Geissert)<br />
Fixed bug #50762 (in WSDL mode Soap Header handler function only being called if defined in WSDL). (mephius at gmail dot com)<br />
Fixed bug #50698 (SoapClient should handle wsdls with some incompatiable endpoints). (Justin Dearing)<br />
Fixed bug #50383 (Exceptions thrown in __call() / __callStatic() do not include file and line in trace). (Felipe)<br />
Fixed bug #49730 (Firebird &#8211; new PDO() returns NULL). (Felipe)<br />
Fixed bug #49723 (LimitIterator with empty SeekableIterator). (Etienne)<br />
Fixed bug #49576 (FILTER_VALIDATE_EMAIL filter needs updating) (Rasmus)<br />
Fixed bug #49320 (PDO returns null when SQLite connection fails). (Felipe)<br />
Fixed bug #49267 (Linking fails for iconv). (Moriyosh)<br />
Fixed bug #48601 (xpath() returns FALSE for legitimate query). (Rob)<br />
Fixed bug #48289 (iconv_mime_encode() quoted-printable scheme is broken).<br />
(Adam, patch from hiroaki dot kawai at gmail dot com).<br />
Fixed bug #43314 (iconv_mime_encode(), broken Q scheme). (Rasmus)<br />
Fixed bug #33210 (getimagesize() fails to detect width/height on certain<br />
JPEGs). (Ilia)<br />
Fixed bug #23229 (syslog() truncates messages). (Adam)</p>
<p>Plus d&#8217;information directement sur le site de php.net: http://www.php.net/ChangeLog-5.php#5.2.14</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Partager</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/07/24/php-5-2-14-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Peewa blog maintenant disponible en anglais !!!</title>
		<link>http://blog.peewa.org/fr/2010/06/06/peewa-blog-maintenant-disponible-en-anglais/</link>
		<comments>http://blog.peewa.org/fr/2010/06/06/peewa-blog-maintenant-disponible-en-anglais/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 13:07:02 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[Peewa: le blog]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[lang]]></category>
		<category><![CDATA[peewa]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/fr/?p=336</guid>
		<description><![CDATA[
			
				
			
		
Afin de pouvoir proposer des contenus utiles au plus de personnes possible, je me suis mis à traduire les anciens articles en anglais.
Cela va sans doute prendre du temps mais j&#8217;ai bon espoir de voir tous les articles du blog traduit afin la fin du mois.
enjoy  
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F06%2F06%2Fpeewa-blog-maintenant-disponible-en-anglais%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F06%2F06%2Fpeewa-blog-maintenant-disponible-en-anglais%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Afin de pouvoir proposer des contenus utiles au plus de personnes possible, je me suis mis à traduire les anciens articles en anglais.<br />
Cela va sans doute prendre du temps mais j&#8217;ai bon espoir de voir tous les articles du blog traduit afin la fin du mois.</p>
<p>enjoy <img src='http://blog.peewa.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Partager</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/06/06/peewa-blog-maintenant-disponible-en-anglais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sources de Peewa PHP maintenant chez BitBucket</title>
		<link>http://blog.peewa.org/fr/2010/05/30/sources-de-peewa-php-maintenant-chez-bitbucket/</link>
		<comments>http://blog.peewa.org/fr/2010/05/30/sources-de-peewa-php-maintenant-chez-bitbucket/#comments</comments>
		<pubDate>Sun, 30 May 2010 18:05:27 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[peewa]]></category>
		<category><![CDATA[sources]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/?p=332</guid>
		<description><![CDATA[Les sources du projet Peewa PHP sont maintenant disponible chez bitBucket à l'adresse suivante: http://bitbucket.org/hakaesbe/peewa/src]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F30%2Fsources-de-peewa-php-maintenant-chez-bitbucket%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F30%2Fsources-de-peewa-php-maintenant-chez-bitbucket%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Les sources du projet Peewa PHP sont maintenant disponible chez bitBucket à l&#8217;adresse suivante: http://bitbucket.org/hakaesbe/peewa/src</p>
<p>Il reste toujours du travail à réaliser dessus, mais le projet commence à prendre un peu plus forme chaque jours.</p>
<p>Les prochains chantier sont:</p>
<p>Finaliser le gestionnaire d&#8217;environnement<br />
Ajouter la possibilité de créer des logs dans le gestionnaire de debug<br />
Créer un gestionnaire PDO pour gérer les bases de données<br />
Créer un gestionnaire de structure pour gérer les pages d&#8217;un site<br />
Finaliser le gestionnaire de templates<br />
Gérer le contexte json dans le framework<br />
Créer un gestionnaire pour compiler le code<br />
Ajouter des blocs de contenus<br />
Ajouter des Handlers de blocks</p>
<p>Compléter le framework php avec peewa js</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/05/30/sources-de-peewa-php-maintenant-chez-bitbucket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mercurial, tortoise HG et BitBucket ou comment ne plus utiliser SVN&#8230;</title>
		<link>http://blog.peewa.org/fr/2010/05/30/mercurial-avec-tortoise-hg/</link>
		<comments>http://blog.peewa.org/fr/2010/05/30/mercurial-avec-tortoise-hg/#comments</comments>
		<pubDate>Sun, 30 May 2010 17:49:35 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[Peewa: le blog]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[tortoise]]></category>
		<category><![CDATA[versionning]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/?p=324</guid>
		<description><![CDATA[
			
				
			
		
Afin de versionner peewa PHP, j&#8217;avais le choix entre plusieurs solutions. Continuer à utiliser SVN comme à mon habitude en le couplant à sourceforge par exemple ou trouver de nouvelles pistes.
Apparemment svn + sourceforge = lenteur, donc après un bref test peu concluant il me fallait trouver une autre solution. Des serveurs / services gratuits [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F30%2Fmercurial-avec-tortoise-hg%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F30%2Fmercurial-avec-tortoise-hg%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Afin de versionner peewa PHP, j&#8217;avais le choix entre plusieurs solutions. Continuer à utiliser SVN comme à mon habitude en le couplant à sourceforge par exemple ou trouver de nouvelles pistes.</p>
<p>Apparemment svn + sourceforge = lenteur, donc après un bref test peu concluant il me fallait trouver une autre solution. Des serveurs / services gratuits svn ? ou un autre système&#8230;</p>
<p>Je me suis mis à tester d&#8217;abord guiHub, sans intégration dans netbeans, puis Mercurial entièrement intégré à netbeans. Ce système de versionning permet d&#8217;assumer les fonctions de bases comme SVN, mais permet également de faire des commit offline directement sur sa machine ce qui se révèle trés pratique sur un ordinateur portable ou en déplacement.</p>
<p>De plus il permet également de se synchroniser avec des dépôts, forcer la détection des icônes verts, bleus ou rouges, et n&#8217;ajoute qu&#8217;un seul répertoire contenant les sources à la racine de son projet la ou svn &laquo;&nbsp;pollue&nbsp;&raquo; chacun des sous dossiers du projet&#8230;</p>
<p>Dernier point intéressant, tout comme avec svn les utilisateurs windows retrouveront une interface GUI qui se nomme tortoise HG. Ainsi tortoise SVN et tortoise HG cohabite sans soucis au sein d&#8217;une même machine&#8230;</p>
<p>http://tortoisehg.bitbucket.org/</p>
<p>http://bitbucket.org/</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Partager</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/05/30/mercurial-avec-tortoise-hg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les premières lignes de codes concernant Peewa PHP Framework</title>
		<link>http://blog.peewa.org/fr/2010/05/24/les-premieres-lignes-de-codes-concernant-peewa-php-framework/</link>
		<comments>http://blog.peewa.org/fr/2010/05/24/les-premieres-lignes-de-codes-concernant-peewa-php-framework/#comments</comments>
		<pubDate>Mon, 24 May 2010 12:44:54 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[Code source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debug_backtrace]]></category>
		<category><![CDATA[magic]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[oophp]]></category>
		<category><![CDATA[peewa]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/?p=318</guid>
		<description><![CDATA[
			
				
			
		
Après quelques jours à travailler dessus, je me rends mieux compte de l&#8217;étendu du travail que je dois encore fournir avant de pouvoir lancer une version beta.
Mais en attendant je peux déjà vous fournir quelques portions de code bien sympathique !
Voila une classe qui me permet de traiter toutes les méthodes magiques d&#8217;un coup dans [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F24%2Fles-premieres-lignes-de-codes-concernant-peewa-php-framework%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F24%2Fles-premieres-lignes-de-codes-concernant-peewa-php-framework%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Après quelques jours à travailler dessus, je me rends mieux compte de l&#8217;étendu du travail que je dois encore fournir avant de pouvoir lancer une version beta.</p>
<p>Mais en attendant je peux déjà vous fournir quelques portions de code bien sympathique !</p>
<p>Voila une classe qui me permet de traiter toutes les méthodes magiques d&#8217;un coup dans le framework</p>
<pre class="brush: php;">
&lt;?php
/**
 * Peewa PHP Framework
 * released under GPL licence
 * author @jviard
 *
 * class __magik
 * file class_magic.php
 */

defined('PATH_ROOT') or die('No direct script access.');

class __magic {
    private static $__magic_datas = array();

    /**
     * __construct
     */
    public function  __construct() {

    }

    /**
     * __call
     * @param &lt;string&gt; $name
     * @param &lt;array&gt; $arguments
     */
    public function  __call($string_name, $array_arguments) {
        $string_name = strtolower($string_name);
        return call_user_func_array(array(P::$_managers[P::$_functions[$string_name]],$string_name), $array_arguments);
    }

    /**
     * __callStatic
     * @param &lt;string&gt; $name
     * @param &lt;array&gt; $arguments
     */
    public function  __callStatic($string_name, $array_arguments) {
        $string_name = strtolower($string_name);
        return call_user_func_array(array(P::$_managers[P::$_functions[$string_name]],$string_name), $array_arguments);
    }

    /**
     * __get
     * @param &lt;string&gt; $string_name
     * @return &lt;mixed&gt;
     */
    public function  __get($string_name) {
        if(array_key_exists($string_name,self::$__magic_datas)) return self::$__magic_datas[$string_name];
        else return null;
    }

    /**
     * __set
     * @param &lt;string&gt; $string_name
     * @param &lt;mixed&gt; $mixed_value
     */
    public function  __set($string_name, $mixed_value) {
        self::$__magic_datas[$string_name] = $mixed_value;
    }

    /**
     * __toString
     * @return &lt;string&gt;
     */
    public function  __toString() {
        return (string)__CLASS__;
    }

    /**
     * this
     * @return &lt;pointer&gt;
     */
    public function &amp;this() {
        return $this;
    }

}
?&gt;
</pre>
<p>Et voila la classe qui me permet d&#8217;ajouter une couche de debug dans le framework:</p>
<pre class="brush: php;">
&lt;?php
/**
 * Peewa PHP Framework
 * released under GPL licence
 * author @jviard
 *
 * class P_Debugger
 * file class_debugger.php
 */

defined('PATH_ROOT') or die('No direct script access.');

class P_Debugger extends __sequence {
    protected $_priority = 999;
    protected static $_comment_width = 80;
    protected static $_arrTicks = array();
    protected static $_phpErrors = array();
    protected static $_arrTickSequence = array();

    /**
     * load
     */
    public function load() {

    }

    /**
     * init
     */
    public function init() {

    }

    /**
     * build
     */
    public function build() {

    }

    /**
     * close
     */
    public function close() {
        if($this-&gt;getContext()=='html') {
            echo $this-&gt;getDebug2HTML();
            echo $this-&gt;getEndPeewaComment();
        }
        ob_flush();
    }

    /**
     * PeewaErrorHandler
     * @param &lt;type&gt; $errno
     * @param &lt;type&gt; $errstr
     * @param &lt;type&gt; $errfile
     * @param &lt;type&gt; $errline
     */
    public function PeewaErrorHandler($errno, $errstr, $errfile, $errline) {
        self::$_phpErrors[] = array(&quot;errno&quot;=&gt;$errno,&quot;errstr&quot;=&gt;$errstr,&quot;errfile&quot;=&gt;$errfile,&quot;errline&quot;=&gt;$errline,'backtrace'=&gt;debug_backtrace());
    }

    /**
     * getPHPErrors
     * @return &lt;array&gt;
     */
    public function getPHPErrors() {
        return self::$_phpErrors;
    }

    /**
     * addTick
     * @param &lt;string&gt; $string_tick
     */
    public function addTick($string_tick,$string_key=null) {
        if(P::$C['PEEWA']['use_debugger']!=1) return;
        if($string_key===null) self::$_arrTicks[] = $string_tick;
    }

    /**
     * addTickSequence
     */
    public function addTickSequence($string_manager,$string_method,$bool_new=true) {
        if(P::$C['PEEWA']['use_debugger']!=1) return;
        if($bool_new) self::$_arrTickSequence[$string_manager.'-'.$string_method] = array('manager'=&gt;$string_manager,'method'=&gt;$string_method,'start_time'=&gt;$this-&gt;getTime());
        else self::$_arrTickSequence[$string_manager.'-'.$string_method]['end_time'] = $this-&gt;getTime();
    }

    /**
     * getTick
     * @return &lt;array&gt;
     */
    public function getTick(){
        return self::$_arrTicks;
    }

    /**
     * getTickSequence
     * @return &lt;array&gt;
     */
    public function getTickSequence() {
        return self::$_arrTickSequence;
    }

    /**
     * getDebug2HTML
     * @return &lt;string&gt;
     */
    public function getDebug2HTML() {
        if(P::$C['PEEWA']['use_debugger']!=1) return;
        $h = '';
        $h .= $this-&gt;getDebugTitle('Debug Start');
        $h .= $this-&gt;getDebugTitle('PHP Errors');
        foreach($this-&gt;getPHPErrors() as $array_error) {
            $i = 0;
            $string_line = '['.P::$_errors[$array_error['errno']].'] '.$array_error['errstr'].' on line '.$array_error['errline'];
            $string_line = str_pad($string_line,self::$_comment_width,' ',STR_PAD_BOTH);
            $h .= $this-&gt;getDebugLineComment($string_line);
            $h .= $this-&gt;getDebugLineComment($array_error['errfile']);
            foreach($array_error['backtrace'] as $array_backtrace) {
                if(array_key_exists('type',$array_backtrace)&amp;&amp;array_key_exists('line',$array_backtrace)) {
                    $string_line = '['.$array_backtrace['line'].'] '.$array_backtrace['class'].$array_backtrace['type'].$array_backtrace['function'].'();';
                    $string_line = str_pad($string_line,strlen($string_line)+$i,'#',STR_PAD_LEFT);
                    $h .= $this-&gt;getDebugLineComment($string_line);
                    $i++;
                }
            }
            $h .= $this-&gt;getDebugSeparator();
        }
        $h .= $this-&gt;getDebugTitle('Sequence');
        foreach($this-&gt;getTickSequence() as $array_tick) {
            if(array_key_exists('end_time',$array_tick)) $string_diff = ' takes '.($array_tick['end_time']-$array_tick['start_time']).'ms';
            else $string_diff = '';
            $h .= $this-&gt;getDebugLineComment('Started @'.$array_tick['start_time'].'ms'.$string_diff.' '.$array_tick['manager'].'-&gt;'.$array_tick['method'].'()');
        }
        $h .= $this-&gt;getDebugSeparator();
        $h .= $this-&gt;getDebugTitle('Debug End');
        return $h;
    }

    /**
     * getDebugTitle
     * @param &lt;string&gt; $string_title
     * @return &lt;string&gt;
     */
    public function getDebugTitle($string_title) {
        $h = CRLF.'&lt;!-- '.str_pad('', self::$_comment_width, &quot;-&quot;, STR_PAD_BOTH).' --&gt;'.CRLF;
        $h .= '&lt;!-- '.str_pad($string_title, self::$_comment_width, &quot; &quot;, STR_PAD_BOTH).' --&gt;'.CRLF;
        $h .= '&lt;!-- '.str_pad('', self::$_comment_width, &quot;-&quot;, STR_PAD_BOTH).' --&gt;'.CRLF;
        return $h;
    }

    /**
     * getDebugLineComment
     * @param &lt;string&gt; $string_line
     * @return &lt;string&gt;
     */
    public function getDebugLineComment($string_line,$const_strpad=STR_PAD_RIGHT) {
        return '&lt;!-- '.str_pad($string_line, self::$_comment_width, &quot; &quot;, $const_strpad).' --&gt;'.CRLF;
    }

    /**
     * getDebugSeparator
     * @return &lt;string&gt;
     */
    public function getDebugSeparator() {
        return '&lt;!-- '.str_pad('', self::$_comment_width, &quot;-&quot;, STR_PAD_RIGHT).' --&gt;'.CRLF;
    }

    /**
     * getDebug2HTML
     * @return &lt;string&gt;
     */
    public function getEndPeewaComment() {
        return CRLF.CRLF.$this-&gt;getDebugLineComment('PEEWA '.$this-&gt;getTime().'ms',STR_PAD_BOTH);
    }

}

?&gt;
</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Partager</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/05/24/les-premieres-lignes-de-codes-concernant-peewa-php-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Peewa PHP Framework en développement !!</title>
		<link>http://blog.peewa.org/fr/2010/05/22/peewa-php-framework-en-developpement/</link>
		<comments>http://blog.peewa.org/fr/2010/05/22/peewa-php-framework-en-developpement/#comments</comments>
		<pubDate>Sat, 22 May 2010 08:58:01 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[Code source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[peewa]]></category>
		<category><![CDATA[peewa-php]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/?p=316</guid>
		<description><![CDATA[
			
				
			
		
Et voila après des débuts dans peewa-js, je vais me lancer dans le développement d&#8217;un framework PHP qui permettra d&#8217;etre 100% customisable en réimplantant simplement de nouveaux modules ou en remplaçant ceux existant. Ce projet comme la version Javascript sera sous une licence de type GPL.
Plus d&#8217;informations à venir directement sur sourceforge: https://sourceforge.net/projects/peewa-php/
Wait and see [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F22%2Fpeewa-php-framework-en-developpement%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F22%2Fpeewa-php-framework-en-developpement%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Et voila après des débuts dans peewa-js, je vais me lancer dans le développement d&#8217;un framework PHP qui permettra d&#8217;etre 100% customisable en réimplantant simplement de nouveaux modules ou en remplaçant ceux existant. Ce projet comme la version Javascript sera sous une licence de type GPL.</p>
<p>Plus d&#8217;informations à venir directement sur sourceforge: https://sourceforge.net/projects/peewa-php/</p>
<p>Wait and see !</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Partager</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/05/22/peewa-php-framework-en-developpement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Classe statique pour gérer les variables d&#8217;environnement</title>
		<link>http://blog.peewa.org/fr/2010/05/22/classe-statique-pour-gerer-les-variables-denvironnement/</link>
		<comments>http://blog.peewa.org/fr/2010/05/22/classe-statique-pour-gerer-les-variables-denvironnement/#comments</comments>
		<pubDate>Sat, 22 May 2010 08:44:57 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[Code source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[argc]]></category>
		<category><![CDATA[argv]]></category>
		<category><![CDATA[globals]]></category>
		<category><![CDATA[http_raw_post_data]]></category>
		<category><![CDATA[http_response_header]]></category>
		<category><![CDATA[php_error_msg]]></category>
		<category><![CDATA[superglobale]]></category>
		<category><![CDATA[_cookie]]></category>
		<category><![CDATA[_files_request_session_env]]></category>
		<category><![CDATA[_get]]></category>
		<category><![CDATA[_post]]></category>
		<category><![CDATA[_server]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/?p=314</guid>
		<description><![CDATA[Marre des notices ? envie d'accéder à vos valeurs superglobales partout dans vos scripts sans prêter attention à la configuration de php ? Cette class P_Environment est faites pour vous ! ;)]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F22%2Fclasse-statique-pour-gerer-les-variables-denvironnement%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F22%2Fclasse-statique-pour-gerer-les-variables-denvironnement%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Voila une petite classe utile qui permet d&#8217;éviter les erreurs de type notice lorsque l&#8217;on tente d&#8217;accéder à des variables qui n&#8217;existe pas.</p>
<p>Elle permet également l&#8217;écriture directement dans les variables d&#8217;environnement en recréant des valeurs statiques.</p>
<p>Place au code:</p>
<pre class="brush: php;">
&lt;?php
/**
 * class P_Environment
 * Handle getter and setter methods for env variables
 * Avoir notice errors and assume setter work without super globales
 * author @jviard
 */
final class P_Environment {
    protected static $GLOBALS = array();
    protected static $_SERVER = array();
    protected static $_GET = array();
    protected static $_POST = array();
    protected static $_FILES = array();
    protected static $_REQUEST = array();
    protected static $_SESSION = array();
    protected static $_ENV = array();
    protected static $_COOKIE = array();
    protected static $php_errormsg = array();
    protected static $HTTP_RAW_POST_DATA = array();
    protected static $http_response_header = array();
    protected static $argc = array();
    protected static $argv = array();

    /**
     * __construct
     */
    public function __construct() {
        self::$GLOBALS = $GLOBALS;
        self::$_SERVER = $_SERVER;
        self::$_GET = $_GET;
        self::$_POST = $_POST;
        self::$_FILES = $_FILES;
        self::$_REQUEST = $_REQUEST;
        self::$_SESSION = $_SESSION;
        self::$_ENV = $_ENV;
        self::$_COOKIE = $_COOKIE;
        self::$php_errormsg = $php_errormsg;
        self::$HTTP_RAW_POST_DATA = $HTTP_RAW_POST_DATA;
        self::$http_response_header = $http_response_header;
        self::$argc = $argc;
        self::$argv = $argv;
        foreach(get_class_vars(__CLASS__) as $string_name =&gt; $useless) {
            if(!is_array(self::${$string_name})) self::${$string_name} = array();
        }
    }

    /**
     * getEnvVariable
     * @param &lt;string&gt; $string_env
     * @param &lt;string&gt; $string_name
     * @return &lt;mixed&gt;
     */
    public static function getEnvVariable($string_env,$string_name=null) {
        if($string_name==null) return self::${$string_env};
        if(array_key_exists($string_name,self::${$string_env})) return self::${$string_env}[$string_name];
        else return null;
    }

    /**
     * setEnvVariable
     * @param &lt;string&gt; $string_env
     * @param &lt;string&gt; $string_name
     * @param &lt;mixed&gt; $mixed_value
     */
    public static function setEnvVariable($string_env,$string_name,$mixed_value) {
        self::${$string_env}[$string_name] = $mixed_value;
    }

}

new P_Environment();

/**
 * GLOBALS getter and setter for GLOBALS
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function GLOBALS($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('GLOBALS',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('GLOBALS',$string_name,$string_value);
    else return false;
}

/**
 * _SERVER getter and setter for _SERVER
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function _SERVER($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('_SERVER',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('_SERVER',$string_name,$string_value);
    else return false;
}

/**
 * _GET getter and setter  for $_GET
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function _GET($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('_GET',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('_GET',$string_name,$string_value);
    else return false;
}

/**
 * _POST getter and setter  for _POST
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function _POST($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('_POST',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('_POST',$string_name,$string_value);
    else return false;
}

/**
 * _FILES getter and setter  for _FILES
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function _FILES($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('_FILES',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('_FILES',$string_name,$string_value);
    else return false;
}

/**
 * _REQUEST getter and setter  for _REQUEST
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function _REQUEST($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('_REQUEST',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('_REQUEST',$string_name,$string_value);
    else return false;
}

/**
 * _ENV getter and setter  for _ENV
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function _ENV($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('_ENV',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('_ENV',$string_name,$string_value);
    else return false;
}

/**
 * _COOKIE getter and setter  for _COOKIE
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function _COOKIE($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('_COOKIE',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('_COOKIE',$string_name,$string_value);
    else return false;
}

/**
 * php_errormsg getter and setter  for php_errormsg
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function php_errormsg($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('php_errormsg',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('php_errormsg',$string_name,$string_value);
    else return false;
}

/**
 * HTTP_RAW_POST_DATA getter and setter  for HTTP_RAW_POST_DATA
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function HTTP_RAW_POST_DATA($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('HTTP_RAW_POST_DATA',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('HTTP_RAW_POST_DATA',$string_name,$string_value);
    else return false;
}

/**
 * http_response_header getter and setter  for http_response_header
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function http_response_header($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('http_response_header',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('http_response_header',$string_name,$string_value);
    else return false;
}

/**
 * argc getter and setter  for argc
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function argc($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('argc',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('argc',$string_name,$string_value);
    else return false;
}

/**
 * argv getter and setter  for argv
 * avoid notice error if array key does not exists
 * @param &lt;string&gt; $string_name
 * @return &lt;mixed&gt;
 */
function argv($string_name=null,$string_value=null) {
    if($string_value===null) return P_Environment::getEnvVariable('argv',$string_name);
    elseif($string_name!==null) P_Environment::setEnvVariable('argv',$string_name,$string_value);
    else return false;
}

/**
 Usage example
 **/
var_dump(_SERVER('PHP_SELF'));
print_r(_SERVER());
_SERVER('PHP_SELF','/fake/index.php');
var_dump(_SERVER('PHP_SELF'));

?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/05/22/classe-statique-pour-gerer-les-variables-denvironnement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excellent IDE pour PHP, gratuit, support FTP, auto completion, SVN&#8230;</title>
		<link>http://blog.peewa.org/fr/2010/05/13/excellent-ide-pour-php-gratuit-support-ftp-auto-completion-svn/</link>
		<comments>http://blog.peewa.org/fr/2010/05/13/excellent-ide-pour-php-gratuit-support-ftp-auto-completion-svn/#comments</comments>
		<pubDate>Thu, 13 May 2010 16:31:04 +0000</pubDate>
		<dc:creator>jviard</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false">http://blog.peewa.org/?p=311</guid>
		<description><![CDATA[
			
				
			
		
Après plusieurs semaines de recherche d&#8217;IDE ou d&#8217;éditeur de texte pour PHP, j&#8217;ai pu tester plusieurs IDE dont Aptana 1.5 ou 2.0, Eclipse PHP et Netbeans.
Aptana qui s&#8217;annonçait comme une référence en IDE web s&#8217;est révélé être très instable et très lent sur de gros projets. En effet que ce soit en version 1.5 ou [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F13%2Fexcellent-ide-pour-php-gratuit-support-ftp-auto-completion-svn%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.peewa.org%2Ffr%2F2010%2F05%2F13%2Fexcellent-ide-pour-php-gratuit-support-ftp-auto-completion-svn%2F&amp;source=jviard&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Après plusieurs semaines de recherche d&#8217;IDE ou d&#8217;éditeur de texte pour PHP, j&#8217;ai pu tester plusieurs IDE dont Aptana 1.5 ou 2.0, Eclipse PHP et Netbeans.</p>
<p>Aptana qui s&#8217;annonçait comme une référence en IDE web s&#8217;est révélé être très instable et très lent sur de gros projets. En effet que ce soit en version 1.5 ou en version 2.0 cet IDE plante régulièrement ou souffre de temps de latence de quelques dizaines de secondes ce qui n&#8217;est pas tolérable lorsque l&#8217;on s&#8217;attend à quelque chose de réactif.</p>
<p>Je me suis ensuite tournée vers Eclipse PHP en me disant que j&#8217;allais retrouver de la stabilité et encore une fois j&#8217;ai été déçu par de bien faibles performances lors de recherche dans un projet ou en utilisant l&#8217;auto completion.</p>
<p>Je suis ensuite passer vers NetBeans 6.8 qui sur les mêmes gros projets se montre 10 à 30 fois plus performant que les autres IDE.<br />
Cet IDE gratuit et légé ( seulement 28mo ) est peu gourmand en mémoire et il se montre très efficace. Il a de plus un support FTP qui permet de ramener des projets distants en local et de synchroniser les sauvegardes. Il supporte également SVN et permet également un support efficace du javascript et des css avec son debuguer intégré.</p>
<p>http://netbeans.org/downloads/index.html</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Partager</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.peewa.org/fr/2010/05/13/excellent-ide-pour-php-gratuit-support-ftp-auto-completion-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
