<?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>Ronny's Blog &#187; PHP</title>
	<atom:link href="http://blog.ronnyristau.de/category/programming/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ronnyristau.de</link>
	<description>Development and more</description>
	<lastBuildDate>Mon, 23 Aug 2010 21:07:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Symfony: Interview mit Fabien Potencier auf französisch</title>
		<link>http://blog.ronnyristau.de/2009/07/02/symfony-interview-mit-fabien-potencier-auf-franzosisch/</link>
		<comments>http://blog.ronnyristau.de/2009/07/02/symfony-interview-mit-fabien-potencier-auf-franzosisch/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 20:38:43 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[fabien potencier]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Sensio]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1336</guid>
		<description><![CDATA[Ich denke mal, dass die wenigsten die sich hierher geklickt haben, französisch sprechen. Meins ist auch etwas eingerostet. Aber dennoch finde ich das Interview mit Fabien sehr interessant. Ab 8:20 geht&#8217;s auch effektiv um Symfony. Ich finde es lohnt sich das Video anzuschauen, selbst wenn man nicht viel versteht. Aber Französisch ist ja eh eine [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Ich denke mal, dass die wenigsten die sich hierher geklickt haben, französisch sprechen. Meins ist auch etwas eingerostet. Aber dennoch finde ich das Interview mit Fabien sehr interessant. Ab 8:20 geht&#8217;s auch effektiv um Symfony. Ich finde es lohnt sich das Video anzuschauen, selbst wenn man nicht viel versteht. Aber Französisch ist ja eh eine sehr emotionelle Sprache, sodass man einfach den Sprachfluss lauschen braucht um halbwegs den Inhalt zu verstehen <img src='http://blog.ronnyristau.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: center;"><object width="320" height="210" data="http://www.neteco.com/v/292474" type="application/x-shockwave-flash"><param name="src" value="http://www.neteco.com/v/292474" /><param name="allowfullscreen" value="true" /></object></p>
<p>(ob er die vielen graue Haare vom Denken hat?)</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1336&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2009/07/02/symfony-interview-mit-fabien-potencier-auf-franzosisch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Textmate PHP Colorscheme für Eclipse</title>
		<link>http://blog.ronnyristau.de/2009/04/21/textmate-php-colorscheme-fur-eclipse/</link>
		<comments>http://blog.ronnyristau.de/2009/04/21/textmate-php-colorscheme-fur-eclipse/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 20:02:44 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Sonstige]]></category>
		<category><![CDATA[colorscheme]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1262</guid>
		<description><![CDATA[Ich bin ja eigentlich schon länger am liebäugeln mit Textmate. Aber ohne Mac macht das auch nur halb so viel Spass glaub ich . Zwar gibt&#8217;s auch eine Windowsportierung, jedoch muss ich da zucken, weil mir viele Features meiner Eclipse-IDE einfach fehlen. Was mir vor allem gefällt sind die Farben, die beim Textmate verwendet wurde. [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Ich bin ja eigentlich schon länger am liebäugeln mit <a href="http://macromates.com/">Textmate</a>. Aber ohne Mac macht das auch nur halb so viel Spass glaub ich <img src='http://blog.ronnyristau.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Zwar gibt&#8217;s auch eine <a href="http://www.e-texteditor.com/">Windowsportierung</a>, jedoch muss ich da zucken, weil mir viele Features meiner Eclipse-IDE einfach fehlen. Was mir vor allem gefällt sind die Farben, die beim Textmate verwendet wurde. Dabei sticht im Gegensatz zur (standart) hellen Eclipse IDE der schwarze Hintergrund mit den gut erkennbaren Vordergrundfarben hervor. Eclipse kann das aber auch und so sieht es aus:</p>
<p style="text-align: center;"><a href="http://blog.ronnyristau.de/wp-content/uploads/2009/04/eclipse-textmate-edition.jpg"><img class="aligncenter size-medium wp-image-1263" title="eclipse-textmate-edition" src="http://blog.ronnyristau.de/wp-content/uploads/2009/04/eclipse-textmate-edition-265x300.jpg" alt="eclipse-textmate-edition" width="265" height="300" /></a></p>
<p style="text-align: left;">Man muss dazu einige Preferences anpassen, was relativ aufwendig ist. Deswegen habe ich meine mal exportiert und stell Sie euch hiermit zur Verfügung. Viel Spass beim testen.</p>
<p style="text-align: left;"><a href="http://blog.ronnyristau.de/wp-content/uploads/2009/04/ronny-eclipse-textmate-preferences.epf">ronny-eclipse-textmate-preferences</a></p>
<p style="text-align: left;">Update:</p>
<p style="text-align: left;">Danke an den PHP-Hacker, der gefühlte 2 Sekunden nach meinem Beitrag, mich bei sich <a href="http://phphacker.net/2009/04/21/textmate-fur-eclipse/">erwähnte</a> (<a href="http://twitter.com/expired/status/1578320858">&#8230;</a>) <img src='http://blog.ronnyristau.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1262&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2009/04/21/textmate-php-colorscheme-fur-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mehr Agile Development mit Scrum und phpUnderControl</title>
		<link>http://blog.ronnyristau.de/2009/02/25/mehr-agile-development-mit-scrum-und-phpundercontrol/</link>
		<comments>http://blog.ronnyristau.de/2009/02/25/mehr-agile-development-mit-scrum-und-phpundercontrol/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 21:06:51 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[phpUnderControl]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1244</guid>
		<description><![CDATA[Nachdem ich gestern schon auf einen interessanten Scrum Burn-Down Chart Blogartikel hingewiesen habe, scheint es das Internet es heute gut mit mir zu meinen. Eben bin ich über Manuels Blog auf Felix&#8217;s guten phpUnderControl Tutorial aufmerksam geworden. Für alle die phpUnderControl noch nicht kennen: phpUnderControl is an addon application for the continuous integration tool CruiseControl, [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Nachdem ich gestern schon auf einen interessanten Scrum Burn-Down Chart Blogartikel <a href="http://blog.ronnyristau.de/2009/02/24/burn-down-chart/">hingewiesen habe</a>, scheint es das Internet es heute gut mit mir zu meinen. Eben bin ich über <a href="http://www.manuel-pichler.de/archives/52-phpUnderControl-tutorial.html">Manuels Blog</a> auf Felix&#8217;s guten <a href="http://felix.phpbelgium.be/blog/2009/02/07/setting-up-phpundercontrol/">phpUnderControl Tutorial</a> aufmerksam geworden.</p>
<p>Für alle die phpUnderControl noch nicht kennen:</p>
<blockquote><p>phpUnderControl is an addon application for the continuous integration tool <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a>, which integrates some of the best PHP development tools. This project aims to make your first steps with CruiseControl and <a href="http://www.php.net/">PHP</a> as easy as possible. Therefore phpUnderControl comes with a command line tool that performs all modifications to an existing CruiseControl installation.</p></blockquote>
<p>Nachdem ich mich dort selbstverständlich ein wenig umgeschaut habe, fand ich auch <a href="http://felix.phpbelgium.be/blog/2008/08/23/agile-development-with-the-agilo-for-scrum-trac-plugin/">diesen Artikel</a>, den ich euch nicht vorenthalten möchte.</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1244&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2009/02/25/mehr-agile-development-mit-scrum-und-phpundercontrol/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Burn-down-Chart</title>
		<link>http://blog.ronnyristau.de/2009/02/24/burn-down-chart/</link>
		<comments>http://blog.ronnyristau.de/2009/02/24/burn-down-chart/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 21:15:04 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[burn]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[crum]]></category>
		<category><![CDATA[down]]></category>
		<category><![CDATA[hates]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1237</guid>
		<description><![CDATA[Nils hat in seinem PHP-Hates-Me Blog einen durchaus interessanten Artikel über Scrum, und dessen Burn-Down-Chart veröffentlicht. Wer sich für agile Entwicklungsmethoden interessiert, sollte sich das mal anschauen. Nils gibt sich sehr viel Mühe und versucht seine  Ziele einzuhalten. Ich stehe nicht hinter jedem Beitrag (und manchmal rolle ich mit den Augen, wenn ich sehe was [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Nils hat in seinem <a href="http://www.phphatesme.com/blog/projektmanagement/burn-down-chart/">PHP-Hates-Me Blog</a> einen durchaus interessanten Artikel über Scrum, und dessen Burn-Down-Chart veröffentlicht. Wer sich für agile Entwicklungsmethoden interessiert, sollte sich das mal anschauen.</p>
<p>Nils gibt sich sehr viel Mühe und versucht seine  Ziele <a href="http://www.phphatesme.com/blog/allgemein/zweihundert-ole-ole/">einzuhalten</a>.</p>
<p>Ich stehe nicht hinter jedem Beitrag <span style="text-decoration: line-through;">(und manchmal rolle ich mit den Augen, wenn ich sehe was er schreibt)</span> und finde die Art und Weise wie er teilw. die Artikel schreibt recht subjektiv. Dennoch lohnt es sich den Blog zu abonnieren, denn er gibt sich Mühe!</p>
<p>Und das zählt! &#8211; Außerdem stößt er mit seinen Beiträge die Dinge an, die den PHP Entwickler von heute interessieren sollten.</p>
<p>P.S.: Was ich noch empfehlen kann, ist die Kommentare zu den jeweiligen Beiträge zu lesen.</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1237&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2009/02/24/burn-down-chart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Animierte &#8220;Lade&#8221;-Grafiken</title>
		<link>http://blog.ronnyristau.de/2009/01/21/animierte-lade-grafiken/</link>
		<comments>http://blog.ronnyristau.de/2009/01/21/animierte-lade-grafiken/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 09:44:42 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java & Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Sonstige]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[load]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1223</guid>
		<description><![CDATA[Wer man auf die schnelle einige animierte Gifs benötigt um seinen Ladevorgang zu visualisieren, wird unter www.ajaxload.info fündig. via coding.d-down.de]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Wer man auf die schnelle einige animierte Gifs benötigt um seinen Ladevorgang zu visualisieren, wird unter <a href="http://www.ajaxload.info/">www.ajaxload.info</a> fündig.</p>
<p style="text-align: center;"><a href="http://blog.ronnyristau.de/wp-content/uploads/2009/01/ajaxload-ajax-loading-gif-generator_1232530978188.png"><img class="aligncenter size-medium wp-image-1224" title="ajaxload-ajax-loading-gif-generator_1232530978188" src="http://blog.ronnyristau.de/wp-content/uploads/2009/01/ajaxload-ajax-loading-gif-generator_1232530978188-300x232.png" alt="ajaxload-ajax-loading-gif-generator_1232530978188" width="300" height="232" /></a></p>
<p style="text-align: left;">via <a href="http://coding.d-down.de/blog/archives/75-Ajaxload-der-Ajaxloader-Gif-Generator.html">coding.d-down.de</a></p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1223&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2009/01/21/animierte-lade-grafiken/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitto: PHP Framework in 140 Zeichen</title>
		<link>http://blog.ronnyristau.de/2009/01/11/twitto-php-framework-in-140-zeichen/</link>
		<comments>http://blog.ronnyristau.de/2009/01/11/twitto-php-framework-in-140-zeichen/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 10:19:24 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Kurz nachgedacht]]></category>
		<category><![CDATA[Linux / Debian]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Witziges]]></category>
		<category><![CDATA[140 zeichen]]></category>
		<category><![CDATA[fabien potencier]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitto]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1205</guid>
		<description><![CDATA[Mehr witzig als ernst gemeint hat Fabien Potencier (Symfony Projektleiter) seinen Einstieg in das Twitter Universum mit einer kleinen Mini-Idee zelebriert. Wieviel Zeichen braucht man, um das kleinste PHP-Framework zu schreiben? Mit Twitto.org gibt er die Antwort auf diese Frage: What is Twitto? Twitto is the fastest PHP web framework, and the first to use [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Mehr witzig als ernst gemeint hat <a href="http://www.aide-de-camp.org/">Fabien Potencier</a> (<a href="http://www.symfony-project.org/about">Symfony Projektleiter</a>) seinen <a href="http://twitter.com/fabpot">Einstieg</a> in das Twitter Universum mit einer kleinen Mini-Idee zelebriert. Wieviel Zeichen braucht man, um das kleinste PHP-Framework zu schreiben? Mit <a href="http://twitto.org/">Twitto.org</a> gibt er die Antwort auf diese Frage:</p>
<blockquote><p><strong>What is Twitto?</strong></p>
<p>Twitto is the fastest PHP web framework, and the first to use the newest features of PHP 5.3 — see &#8220;Why PHP 5.3?&#8221; below.</p>
<p>Packed in less than 140 characters, it fits in a twit.</p>
<p>Despite its size, Twitto is bundled with a default controller, is E_STRICT compliant, and generates an error if you try to access a controller that does not exist.</p></blockquote>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1205&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2009/01/11/twitto-php-framework-in-140-zeichen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Code Conventions mit CodeSniffer und Subversion</title>
		<link>http://blog.ronnyristau.de/2008/12/04/php-code-conventions-mit-codesniffer-und-subversion/</link>
		<comments>http://blog.ronnyristau.de/2008/12/04/php-code-conventions-mit-codesniffer-und-subversion/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 19:19:50 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Java & Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Sonstige]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[commit]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[convention]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[lint]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1105</guid>
		<description><![CDATA[Ich habe heute diesen PHPAdvent Artikel gelesen. In dem Artikel von Travis Swiceood geht es darum unter Verwendung Hook-Scripts bei Versionmanagement Werkzeugen wie Git oder SVN, die Übermittlung fehlerhaften Codes zu vermeiden. Die folgenden Snippets enthalten Code, bei dem ggf. die Pfade anzupassen sind! Ich spare mir einfach das an den Stellen jeweils zu erwähnen. [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Ich habe heute <a href="http://phpadvent.org/2008/dont-commit-that-error-by-travis-swicegood">diesen</a> PHPAdvent Artikel gelesen.</p>
<p>In dem Artikel von Travis Swiceood geht es darum unter Verwendung Hook-Scripts bei Versionmanagement Werkzeugen wie Git oder SVN, die Übermittlung fehlerhaften Codes zu vermeiden.</p>
<blockquote><p>Die folgenden Snippets enthalten Code, bei dem ggf. die Pfade anzupassen sind! Ich spare mir einfach das an den Stellen jeweils zu erwähnen.</p></blockquote>
<p>Im dem Artikel geht es konkret darum die PHP lint Funktion zu nutzen um Syntax Fehler zu entdecken:</p>
<pre class="brush: php">
&lt;?php
ech &quot;Hallo Welt&quot;;
?&gt;
</pre>
<p>wenn man dies nun mittels PHP mit dem Parameter &#8220;-l&#8221; ausführt, erhält man folgendes:</p>
<pre class="brush: bash">
xen-developement:~# php -l demo.php

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in demo.php on line 2
Errors parsing demo.php
</pre>
<p>Nun sollte es doch ein leichtes sein, dieses auch in den Commit-Vorgang zu integrieren, und im Fall von übertragenen PHP Dateien, selbige vorher zu prüfen. Gesagt getan. Dazu habe ich ein bisl rumgesucht und <a href="http://blueparabola.com/blog/subversion-commit-hooks-php">hier</a> folgendes gefunden:</p>
<pre class="brush: bash">
PHP=&quot;/usr/bin/php&quot;
AWK=&quot;/usr/bin/awk&quot;
GREP=&quot;/bin/egrep&quot;
SED=&quot;/bin/sed&quot;

CHANGED=`$SVNLOOK changed -t &quot;$TXN&quot; &quot;$REPOS&quot; | $AWK &#039;{print $2}&#039; | $GREP \\.php$`

for FILE in $CHANGED
do
MESSAGE=`$SVNLOOK cat -t &quot;$TXN&quot; &quot;$REPOS&quot; &quot;$FILE&quot; | $PHP -l`
if [ $? -ne 0 ]
then
echo 1&gt;&amp;amp;2
echo &quot;***********************************&quot; 1&gt;&amp;amp;2
echo &quot;PHP error in: $FILE:&quot; 1&gt;&amp;amp;2
echo `echo &quot;$MESSAGE&quot; | $SED &quot;s| -| $FILE|g&quot;` 1&gt;&amp;amp;2
echo &quot;***********************************&quot; 1&gt;&amp;amp;2
exit 1
fi
done
</pre>
<p>Das wird entsprechend in die pre-commit datei deines SVN Repositorys vor exit 0 eingetragen. Die Datei ist von pre-commit.tmpl nach pre-commit umzubennen und mit ausführbaren Rechten zu versehen:</p>
<pre class="brush: bash">
cd /home/repository/svn/hooks/
cp pre-commit.tmpl pre-commit
chmod 0755 pre-commit
vi pre-commit
</pre>
<p>Damit sollte euer Code schonmal nicht mehr mit syntaktischen Fehler im Repository landen können.</p>
<p>Nun hatte ich aber in der Überschrift von CodeSniffer gesprochen. Darum ging es nämlich in dem ursprünglich inspirierenden Artikel nicht. Und wie <a href="http://twitter.com/bascht/status/1038075593">der Zufall</a> so will, habe ich den Weg auch direkt zu <a href="http://pear.php.net/package/PHP_CodeSniffer">PHPCS</a> gefunden. Nach wenigen Sekunden fand ich dann auch direkt einen passenden Hook-Script, welcher direkt mit angeboten wird <a href="http://pear.php.net/manual/en/package.php.php-codesniffer.svn-pre-commit.php">hier</a>. Gesagt getan &#8211; der Plan wurde wie folgt umgesetzt:</p>
<p>PHP CodeSniffer via Pear installieren:</p>
<pre class="brush: bash">
xen-developement:~# pear install PHP_CodeSniffer
downloading PHP_CodeSniffer-1.1.0.tgz ...
Starting to download PHP_CodeSniffer-1.1.0.tgz (236,962 bytes)
........................done: 236,962 bytes
install ok: channel://pear.php.net/PHP_CodeSniffer-1.1.0
</pre>
<p>Anschließend ins Pear Verzeichnis wechseln, scripts verzeichnis anlegen, hook Script herunterladen, umbenennen und ausführbar machen:</p>
<pre class="brush: bash">
cd /usr/share/php/PHP/
ls -la
mkdir scripts
cd scripts/
wget http://cvs.php.net/viewvc.cgi/pear/PHP_CodeSniffer/scripts/phpcs-svn-pre-commit?view=co
mv phpcs-svn-pre-commit\?view\=co phpcs-svn-pre-commit
chmod 0755 phpcs-svn-pre-commit
</pre>
<p>Die Dokumentation ist zwar vorhanden, hat aber bei mir mehr schlecht als recht funktioniert. Daher spare ich mir dies hier zu zeigen, sondern poste direkt meine Modifikationen, mit denen es bei mir läuft:</p>
<pre class="brush: bash">
vi phpcs-svn-pre-commit
</pre>
<p>Dort ist die 1. Zeile an den PHP Pfad anzupassen:</p>
<pre class="brush: bash">
@php_bin@ nach /usr/bin/php
</pre>
<p>Anschließend ist noch eure pre-commit Datei im Repository Verzeichnis wieder anzupassen, meine sieht nun am Ende so aus:</p>
<pre class="brush: bash">
REPOS=&quot;$1&quot;
TXN=&quot;$2&quot;

# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
#$SVNLOOK log -t &quot;$TXN&quot; &quot;$REPOS&quot; | grep &quot;[a-zA-Z0-9]&quot; &amp;gt; /dev/null || exit 1

# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
#/usr/share/subversion/hook-scripts/commit-access-control.pl &quot;$REPOS&quot; &quot;$TXN&quot; &quot;$REPOS&quot;/commit-access-control.cfg || exit 1

#echo &quot;/usr/share/php/PHP/scripts/phpcs-svn-pre-commit \&quot;$REPOS\&quot; -t \&quot;$TXN\&quot; &amp;gt;&amp;amp;2&quot; &amp;gt;&amp;amp;2

PHP=&quot;/usr/bin/php&quot;
AWK=&quot;/usr/bin/awk&quot;
GREP=&quot;/bin/egrep&quot;
SED=&quot;/bin/sed&quot;

CHANGED=`$SVNLOOK changed -t &quot;$TXN&quot; &quot;$REPOS&quot; | $AWK &#039;{print $2}&#039; | $GREP \\.php$`

for FILE in $CHANGED
do
MESSAGE=`$SVNLOOK cat -t &quot;$TXN&quot; &quot;$REPOS&quot; &quot;$FILE&quot; | $PHP -l`
if [ $? -ne 0 ]
then
echo 1&gt;&amp;amp;2
echo &quot;***********************************&quot; 1&gt;&amp;amp;2
echo &quot;PHP error in: $FILE:&quot; 1&gt;&amp;amp;2
echo `echo &quot;$MESSAGE&quot; | $SED &quot;s| -| $FILE|g&quot;` 1&gt;&amp;amp;2
echo &quot;***********************************&quot; 1&gt;&amp;amp;2
exit 1
fi
done

/usr/share/php/PHP/scripts/phpcs-svn-pre-commit -t &quot;$TXN&quot; &quot;$REPOS&quot; &amp;gt;&amp;amp;2 || exit 1

# All checks passed, so allow the commit.
exit 0
</pre>
<p>Ich musste, damit es funktioniert auch die phpcs-svn-pre-commit Datei bearbeiten, genau genommen an 2 Stellen. Hier der Diff:</p>
<pre class="brush: bash">
&lt; #!@php_bin@
---
&gt; #!/usr/bin/php
70c70
&lt;     public function processUnknownArgument($arg, $pos, $values)
---
&gt;     public function processUnknownArgument($arg, $pos, $values = array())
134c134,136
&lt;         foreach (preg_split(&#039;/\v/&#039;, $contents, -1, PREG_SPLIT_NO_EMPTY) as $path) {
---
&gt;       #echo $contents;
&gt;
&gt;         foreach (preg_split(&#039;/ /&#039;, $contents, -1, PREG_SPLIT_NO_EMPTY) as $path) {
</pre>
<p>Das war&#8217;s dann auch schon. Die Scripte können nun nicht mehr unformatiert oder mit Syntax-Fehlern committed werden. Hier ein Code Beispiel und der fehlgeschlagene Versuch, es zu übertragen:</p>
<p style="text-align: center;"><a href="http://blog.ronnyristau.de/wp-content/uploads/2008/12/eclipse-sample.jpg"><img class="alignnone size-full wp-image-1112" title="eclipse-sample" src="http://blog.ronnyristau.de/wp-content/uploads/2008/12/eclipse-sample.jpg" alt="" width="416" height="548" /></a></p>
<p style="text-align: center;"><a href="http://blog.ronnyristau.de/wp-content/uploads/2008/12/codesniffer-subversion.jpg"><img class="alignnone size-full wp-image-1113" title="codesniffer-subversion" src="http://blog.ronnyristau.de/wp-content/uploads/2008/12/codesniffer-subversion.jpg" alt="" width="500" height="358" /></a></p>
<p style="text-align: left;">So &#8211; ich wünsche euch viel Spass beim Nachbasteln. Es bleiben natürlich einige Fragen offen, wie effektiv bzw. wie sinnvoll das Ganze ist. Wird man sich dadurch nicht mehr Arbeit machen als nötig? Ich denke das sind Fragen, die hier grad nicht hergehören &#8211; ich wollte nur mal aufzeigen was so geht.</p>
<p style="text-align: left;">Wer weitere Ideen hat, kann diese gerne hier posten!</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1105&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2008/12/04/php-code-conventions-mit-codesniffer-und-subversion/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Symfony 1.2 released!</title>
		<link>http://blog.ronnyristau.de/2008/12/01/symfony-12-released/</link>
		<comments>http://blog.ronnyristau.de/2008/12/01/symfony-12-released/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 21:42:52 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Angefangen]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[1.2]]></category>
		<category><![CDATA[jobeet]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1099</guid>
		<description><![CDATA[Ich habe gerade so gut wie keine Zeit&#8230; dennoch wollte ich kurz die Symfony Nachricht des Tages hier veröffentlichen: SYMFONY 1.2 IS OUT NOW! Jeder, der sich näher mit Symfony beschäftigen will, ist daher recht herzlich eingeladen, rechtzeitig zum 1.12 das Entwicklertürchen No.1 zu öffnen: Jobeet &#8211; Day 1 &#8211; Heißt das neue Tutorial Projekt, [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Ich habe gerade so gut wie keine Zeit&#8230; dennoch wollte ich kurz die Symfony Nachricht des Tages hier veröffentlichen:</p>
<blockquote><p><a href="http://www.symfony-project.org/blog/2008/12/01/symfony-1-2-is-already-available">SYMFONY 1.2 IS OUT NOW</a>!</p></blockquote>
<p>Jeder, der sich näher mit Symfony beschäftigen will, ist daher recht herzlich eingeladen, rechtzeitig zum 1.12 das Entwicklertürchen No.1 zu öffnen:</p>
<p><a href="http://www.symfony-project.org/jobeet/1_2/en/01">Jobeet &#8211; Day 1</a> &#8211; Heißt das neue Tutorial Projekt, welches innerhalb von 24 Tagen à 1 Stunde erklären soll, wie Symfony 1.2 zu benutzen ist.</p>
<p>Ende&#8230; bin echt busy today &#8211; Sorry!!</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1099&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2008/12/01/symfony-12-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony 1.2 RC1 out now!</title>
		<link>http://blog.ronnyristau.de/2008/11/23/symfony-12-rc1-out-now/</link>
		<comments>http://blog.ronnyristau.de/2008/11/23/symfony-12-rc1-out-now/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 09:56:57 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[rc1]]></category>
		<category><![CDATA[release candidate]]></category>
		<category><![CDATA[symfony 1.2]]></category>
		<category><![CDATA[symony]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1062</guid>
		<description><![CDATA[Wohaa, was sehen meine verschlafenen Augen heute an diesem verschneiten Sonntag Morgen. Fabien und Co haben Symfony 1.2 als erstes Release Candidate öffentlich gemacht. Ich arbeite bereits seit einiger Zeit mit allen 3 Versionen (1.0 / 1.1 und 1.2). Bisher war ich jedoch noch nicht bereit 1.2 im Livebetrieb einzusetzen. Die Vorteile von 1.2 liegen [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Wohaa, was <a href="http://www.symfony-project.org/blog/2008/11/22/symfony-1-2-release-candidate-available">sehen</a> meine verschlafenen Augen heute an diesem verschneiten Sonntag Morgen. Fabien und Co haben Symfony 1.2 als erstes Release Candidate öffentlich gemacht. Ich arbeite bereits seit einiger Zeit mit allen 3 Versionen (1.0 / 1.1 und 1.2). Bisher war ich jedoch noch nicht bereit 1.2 im Livebetrieb einzusetzen. Die Vorteile von 1.2 liegen jedoch auf der Hand. Umso mehr erfreut es mich, dass das Stable Release nicht mehr allzu weit entfernt liegt.</p>
<p>Wer jedoch jetzt schon auf die RC1 upgraden will, soll sich das <a href="http://www.symfony-project.org/tutorial/1_2/whats-new">Tutorial</a> durchlesen.</p>
<p>Alle weitere zum Release findest du <a href="http://www.symfony-project.org/installation/1_2">hier</a>.</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1062&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2008/11/23/symfony-12-rc1-out-now/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tonabnehmer</title>
		<link>http://blog.ronnyristau.de/2008/11/21/tonabnehmer/</link>
		<comments>http://blog.ronnyristau.de/2008/11/21/tonabnehmer/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 22:32:26 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Goodies]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java & Javascript]]></category>
		<category><![CDATA[Linux / Debian]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Sonstige]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[frank westphal]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Tonabnehmer]]></category>
		<category><![CDATA[Tonabnehmern]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1060</guid>
		<description><![CDATA[@Developers! Da ich den Abend schon (entwicklungstechnisch) produktiv einleitete, möchte ich gerne ein weiteres Thema anstoßen. Ich würde euch gerne auf die Seiten von Frank Westphal hinweisen. Da gibts einige nette Pod-Casts zu Entwicklungsthemen, die man sich durchaus anhören sollte. Das ist sicherlich nicht für jeden Follower hier interessant, jedoch wollte ich das schon länger [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>@<strong>Developers!</strong></p>
<p>Da ich den Abend schon (<a href="http://blog.ronnyristau.de/2008/11/21/mite-zeiterfassung-online-auch-mit-iphone/">entwicklungstechnisch</a>) produktiv einleitete, möchte ich gerne ein weiteres Thema anstoßen.</p>
<p>Ich würde euch gerne auf die Seiten von Frank Westphal hinweisen. Da gibts einige nette Pod-Casts zu Entwicklungsthemen, die man sich durchaus anhören sollte. Das ist sicherlich nicht für jeden Follower hier interessant, jedoch wollte ich das schon länger erwähnen.</p>
<p><a href="http://www.frankwestphal.de/Tonabnehmer.html">Hier geht&#8217;s zu den Podcasts</a>. (Tonabnehmern).</p>
<p>Ich finde die so gut, dass sie ein neuer Goodie sind.</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1060&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2008/11/21/tonabnehmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asshole Driven Development</title>
		<link>http://blog.ronnyristau.de/2008/10/30/asshole-driven-development/</link>
		<comments>http://blog.ronnyristau.de/2008/10/30/asshole-driven-development/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 21:33:31 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[asshole]]></category>
		<category><![CDATA[Asshole Driven Development]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[driven]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=1007</guid>
		<description><![CDATA[Symfony unterstützt von Hause aus testgetriebene Entwicklung. Man schreibt also erst die Tests, zu denen man anschließend den entsprechenden Quellcode schreibt. In meiner unendlichen Sucht nach neuem Wissen bin ich heute auf eine neue Development-Art gestoßen&#8230; genauer gesagt auf mehrere. Eine davon heißt ADD und steht für Asshole Driven Development: Asshole Driven development (ADD) &#8211; [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p><a href="http://www.symfony-project.org/">Symfony</a> unterstützt von Hause aus testgetriebene Entwicklung. Man schreibt also erst die Tests, zu denen man anschließend den entsprechenden Quellcode schreibt.</p>
<p>In meiner unendlichen Sucht nach neuem Wissen bin ich heute auf eine neue Development-Art gestoßen&#8230; genauer gesagt auf mehrere. Eine davon heißt ADD und steht für Asshole Driven Development:</p>
<blockquote><p><strong>Asshole Driven development (ADD)</strong> &#8211; Any team where the biggest jerk makes all the big decisions is asshole driven development. All wisdom, logic or process goes out the window when Mr. Asshole is in the room, doing whatever idiotic, selfish thing he thinks is best. There may rules and processes, but Mr. A breaks them and people follow anyway.</p></blockquote>
<p>Wer noch mehr Arten der Entwicklung nachlesen will, kann das <a href="http://www.scottberkun.com/blog/2007/asshole-driven-development/">hier</a> tun.</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=1007&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2008/10/30/asshole-driven-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Woopra auf dem iPhone</title>
		<link>http://blog.ronnyristau.de/2008/10/15/woopra-auf-dem-iphone/</link>
		<comments>http://blog.ronnyristau.de/2008/10/15/woopra-auf-dem-iphone/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 17:27:41 +0000</pubDate>
		<dc:creator>Ronny</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[webseite]]></category>
		<category><![CDATA[woopra]]></category>

		<guid isPermaLink="false">http://blog.ronnyristau.de/?p=952</guid>
		<description><![CDATA[Wer seine Woopra Statistiken gerne auf dem iPhone auch in entsprechender Ansicht genießen möchte, kann sich bei Hubert Streitenberger den entsprechenden Quellcode für die Standalone-Browser Anwendung herunterladen. Hubert hat sich dabei die neue WordPress Schnittstelle von Woopra angeschaut und damit eine eigene Web-Variante für das iPhone umgesetzt. Das Ganze sieht dann zum Schluss auf dem [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Wer seine <a href="http://www.woopra.com">Woopra</a> Statistiken gerne auf dem iPhone auch in <a href="http://www.woopra.com/blog/2008/10/13/woopra-4-iphone-does-exactly-what-the-name-implies/">entsprechender Ansicht</a> genießen möchte, kann sich bei <a href="http://blog.streitenberger.net/2008/10/woopra-4-iphone.html">Hubert Streitenberger</a> den entsprechenden Quellcode für die Standalone-Browser Anwendung herunterladen.</p>
<p>Hubert hat sich dabei die neue WordPress Schnittstelle von Woopra angeschaut und damit eine eigene Web-Variante für das iPhone umgesetzt. Das Ganze sieht dann zum Schluss auf dem iPhone in etwa so aus:</p>
<p style="text-align: center;"><a href="http://blog.ronnyristau.de/wp-content/uploads/2008/10/img-0002-1.png"><img class="alignnone size-full wp-image-953" title="img-0002-1" src="http://blog.ronnyristau.de/wp-content/uploads/2008/10/img-0002-1.png" alt="" width="320" height="480" /></a></p>
<blockquote>
<p style="text-align: left;">Woopra 4 iPhone muss lediglich in ein Webverzeichnis entpackt werden, anschließend seine Woopra-Daten (Website, API- und Website-ID aus dem Members-Bereich) in die config.php eintragen und vom iPhone/iPod aufrufen &#8211; fertig.</p>
</blockquote>
<p style="text-align: left;">Ich selber habe gerade keine Zeit es auszuprobieren, jedoch wollte ich es euch nicht vorenthalten.</p>

<!-- google_ad_section_end -->
<img src="http://blog.ronnyristau.de/?ak_action=api_record_view&id=952&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.ronnyristau.de/2008/10/15/woopra-auf-dem-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

