<?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>Axel Jung</title>
	<atom:link href="http://www.ajung.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajung.de</link>
	<description>Privater Blog von Axel Jung aus Wiesbaden</description>
	<lastBuildDate>Mon, 03 May 2010 19:12:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PHP CopyPaste Detection in Eclipse</title>
		<link>http://www.ajung.de/2010/05/03/php-copypaste-detection-in-eclipse/</link>
		<comments>http://www.ajung.de/2010/05/03/php-copypaste-detection-in-eclipse/#comments</comments>
		<pubDate>Mon, 03 May 2010 19:12:47 +0000</pubDate>
		<dc:creator>ajung</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://www.ajung.de/?p=615</guid>
		<description><![CDATA[Die CopyPaste Detection für PHP (phpcpd) ist eine wunderbare Sache und lässt sich einfach aufrufen und in phpUnderControl integrieren. Doch die Stellen zu suchen und zu Eliminieren kann schon etwas mühsam sein. Deutlich einfacher geht es mit dem Eclipse Plugin:  PHP Tool Integration. Hier kann man seit kurzem nicht nur den CodeSniffer innerhalb von Eclipse [...]]]></description>
			<content:encoded><![CDATA[<p>Die CopyPaste Detection für PHP (<a href="http://github.com/sebastianbergmann/phpcpd">phpcpd</a>) ist eine wunderbare Sache und lässt sich einfach aufrufen und in <a href="http://www.phpundercontrol.org/">phpUnderControl</a> integrieren. Doch die Stellen zu suchen und zu Eliminieren kann schon etwas mühsam sein. Deutlich einfacher geht es mit dem Eclipse Plugin:  <a href="http://www.phpsrc.org/">PHP Tool Integration</a>. Hier kann man seit kurzem nicht nur den CodeSniffer innerhalb von Eclipse nutzen, sondern auch die CopyPaste Detection.</p>
<p>Das Tool lässt sich einfach über das Context Menü aufrufen:</p>
<p><a href="http://www.ajung.de/wp-content/uploads/2010/05/copypaste.jpg"><img class="alignnone size-full wp-image-616" title="copypaste" src="http://www.ajung.de/wp-content/uploads/2010/05/copypaste.jpg" alt="" width="505" height="99" /></a></p>
<p>Im Editor werden dann die Fehler angezeigt:</p>
<p><a href="http://www.ajung.de/wp-content/uploads/2010/05/copypaste1.jpg"><img class="alignnone size-full wp-image-617" title="copypaste1" src="http://www.ajung.de/wp-content/uploads/2010/05/copypaste1.jpg" alt="" width="635" height="172" /></a></p>
<p>Zur Installation sollte man diese Eclipse Update Seite verwenden:</p>
<p><a href="http://www.phpsrc.org/eclipse/pti/">http://www.phpsrc.org/eclipse/pti/</a></p>
<p>Danach muss man noch die Einstellungen anpassen und die PHP Executable und die PEAR Libary anpassen:</p>
<p><a href="http://www.ajung.de/wp-content/uploads/2010/05/copypaste23.jpg"><img class="alignnone size-full wp-image-621" title="copypaste2" src="http://www.ajung.de/wp-content/uploads/2010/05/copypaste23.jpg" alt="" width="761" height="392" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajung.de/2010/05/03/php-copypaste-detection-in-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typo3 Plugin für Login über Facebook, Twitter und co.</title>
		<link>http://www.ajung.de/2010/04/30/typo3-plugin-fur-login-uber-facebook-twitter-und-co/</link>
		<comments>http://www.ajung.de/2010/04/30/typo3-plugin-fur-login-uber-facebook-twitter-und-co/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 19:37:36 +0000</pubDate>
		<dc:creator>ajung</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.ajung.de/?p=609</guid>
		<description><![CDATA[Es gibt den Anbieter RPX Service von Janrain um einen einfachen Login über Facebook, Twitter, Google, Yahoo und weitere anzubieten ohne sich mit den ganzen verschiedenen Mechanismen auseinander zu setzen. Für den Login benötigt man nur den kostenlosen Account. Der Login sieht dann auf der Webseite so aus: Mit meiner neuen Typo3 Extension rpx lässt [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt den Anbieter <a href="https://rpxnow.com/">RPX Service von Janrain</a> um einen einfachen Login über Facebook, Twitter, Google, Yahoo und weitere anzubieten ohne sich mit den ganzen verschiedenen Mechanismen auseinander zu setzen. Für den Login benötigt man nur den kostenlosen Account.</p>
<p>Der Login sieht dann auf der Webseite so aus:</p>
<p><a href="http://www.ajung.de/wp-content/uploads/2010/04/rpx.png"><img class="size-full wp-image-610 alignnone" title="rpx" src="http://www.ajung.de/wp-content/uploads/2010/04/rpx.png" alt="" width="392" height="235" /></a></p>
<p>Mit meiner neuen Typo3 Extension <a href="https://rpxnow.com/">rpx</a> lässt sich dieses Feature ganz einfach in die bestehende Typo3 Seite einbinden und ermöglicht einen Frontend Zugang zu der Seite mittels Facebook und co.</p>
<p>Die Extension besteht aus einen Frontend Plugin mit dem man das Login Fenster einbinden kann und einen AuthService der in dem Typo3 System installiert wird und parallel zu anderen Authentivizierungs Mechanismen laufen kann.</p>
<p>Die Extension benötigt nur den API Key und die RPX Domain die beim Erstellen des Accounts auf <a href="https://rpxnow.com/">https://rpxnow.com/ </a>erzeugt wird.</p>
<p>Die Extension ist zwar im Beta Stadium, wurde aber erfolgreich getestet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajung.de/2010/04/30/typo3-plugin-fur-login-uber-facebook-twitter-und-co/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selenium RC und Firefox 3.6</title>
		<link>http://www.ajung.de/2010/02/22/selenium-rc-und-firefox-3-6/</link>
		<comments>http://www.ajung.de/2010/02/22/selenium-rc-und-firefox-3-6/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 19:30:22 +0000</pubDate>
		<dc:creator>ajung</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[Unittests]]></category>

		<guid isPermaLink="false">http://www.ajung.de/?p=602</guid>
		<description><![CDATA[Die Selenium-RC Version 1.0.1 ist leider nicht kompatibel mit dem neuen Firefox 3.6. Das Selenium Server Paket enthält einige Firefox Erweiterungen in denen eine maximale Kompatibilität zu Firefox 3.5 angegeben wurde. Diese Erweiterungen sind auch mit der Version 3.6 lauffähig, doch man muss die install.rdf Dateien anpassen. Anleitung zum modifizieren des Selenium RC Entpacke das [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ajung.de/wp-content/uploads/2010/02/big-logo.png"><img class="alignright size-full wp-image-603" title="big-logo" src="http://www.ajung.de/wp-content/uploads/2010/02/big-logo.png" alt="" width="200" height="181" /></a>Die <a href="http://seleniumhq.org/projects/remote-control/">Selenium-RC</a> Version 1.0.1 ist leider nicht kompatibel mit dem neuen Firefox 3.6.</p>
<p>Das Selenium Server Paket enthält einige Firefox Erweiterungen in denen eine maximale Kompatibilität zu Firefox 3.5 angegeben wurde. Diese Erweiterungen sind auch mit der Version 3.6 lauffähig, doch man muss die <strong>install.rdf </strong>Dateien anpassen.</p>
<h2>Anleitung zum modifizieren des Selenium RC</h2>
<ol>
<li>Entpacke das Java Archiv selenium-server.jar</li>
<li>Suche alle Dateien mit dem Namen install.rdf in dem ausgepackten Verzeichnis.</li>
<li>Ändere in den Dateien den Wert &lt;em:maxVersion&gt;3.5.*&lt;/em:maxVersion&gt; auf &lt;em:maxVersion&gt;3.6.*&lt;/em:maxVersion&gt;</li>
<li>Erzeuge eine neue jar Datei
<ol>
<li style="text-align: left;">Gehe in der Kommando Zeile in das ausgepackte Verzeichnis</li>
<li style="text-align: left;">Stelle sicher dass das JDK im Pfad vorhanden ist.  (PATH=C:\Programme\Java\jdk1.6.0_18\bin)</li>
<li style="text-align: left;">Erzeuge die neue Jar Datei: jar -cvfm selenium-server.jar META-INF/MANIFEST.MF *</li>
</ol>
</li>
<li style="text-align: left;">Tausche die alte selenium-server.jar mit der neuen aus.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.ajung.de/2010/02/22/selenium-rc-und-firefox-3-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bessere Coverage Analyse mit addUncoveredFilesFromWhitelist</title>
		<link>http://www.ajung.de/2010/01/28/bessere-coverage-analyse-mit-adduncoveredfilesfromwhitelist/</link>
		<comments>http://www.ajung.de/2010/01/28/bessere-coverage-analyse-mit-adduncoveredfilesfromwhitelist/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 18:12:35 +0000</pubDate>
		<dc:creator>ajung</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.ajung.de/?p=600</guid>
		<description><![CDATA[Die Coverage Analyse zeigt standardmäßig nur die Testabdeckung der Dateien an die innerhalb der Testausführung geladen wurden. Dadurch werden einige Dateien eventuell gar nicht beachtet und der Wert der Testabdeckung ist eigentlich zu hoch. Wenn man phpunit mit einer Konfiguration XML Datei laufen lässt, kann man die Coverage Analyse mit dem Filter Tag anpassen. Dem [...]]]></description>
			<content:encoded><![CDATA[<p>Die Coverage Analyse zeigt standardmäßig nur die Testabdeckung der Dateien an die innerhalb der Testausführung geladen wurden. Dadurch werden einige Dateien eventuell gar nicht beachtet und der Wert der Testabdeckung ist eigentlich zu hoch.</p>
<p>Wenn man <a href="http://www.phpunit.de">phpunit</a> mit einer <a href="http://www.phpunit.de/manual/current/en/appendixes.configuration.html">Konfiguration XML</a> Datei laufen lässt, kann man die Coverage Analyse mit dem Filter Tag anpassen.</p>
<p>Dem Tag <strong>whitelist </strong>kann man das Attribut <strong>addUncoveredFilesFromWhitelist </strong>verwenden. Dann werden auch die Dateien analysiert die gar nicht ausgeführt wurden.<strong><br />
</strong></p>
<pre>...
&lt;filter&gt;
   &lt;whitelist addUncoveredFilesFromWhitelist="true"&gt;
      &lt;directory suffix=".php"&gt;../domain&lt;/directory&gt;
      &lt;directory suffix=".php"&gt;../system&lt;/directory&gt;
      ...
&lt;/whitelist&gt;
...
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ajung.de/2010/01/28/bessere-coverage-analyse-mit-adduncoveredfilesfromwhitelist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPunit und Eclipse PHP Tool Integration (PTI)</title>
		<link>http://www.ajung.de/2010/01/26/phpunit-und-eclipse-php-tool-integration-pti/</link>
		<comments>http://www.ajung.de/2010/01/26/phpunit-und-eclipse-php-tool-integration-pti/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 18:05:13 +0000</pubDate>
		<dc:creator>ajung</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Unittests]]></category>

		<guid isPermaLink="false">http://www.ajung.de/?p=592</guid>
		<description><![CDATA[Ich nutze die Eclipse PHP Tool Integration Tools jetzt standardmäßig wegen der guten  Code Sniffer Integration wie bereits in einen älteren Blogbeitrag beschrieben. Darüber hinaus beinhaltet das Eclipse Plugin auch eine Funktion zum schnellen Ausführen von Unit Tests. Wenn man an einen Unit Test arbeitet kann man einfach einen Button im Eclipse anklicken zum Ausführen [...]]]></description>
			<content:encoded><![CDATA[<p>Ich nutze die <a href="http://www.phpsrc.org/wiki/">Eclipse PHP Tool Integration</a> Tools jetzt standardmäßig wegen der guten  Code Sniffer Integration wie bereits in einen älteren <a href="http://www.ajung.de/2009/11/23/php_codesniffer-mit-eclipse-nutzen/">Blogbeitrag</a> beschrieben.</p>
<p>Darüber hinaus beinhaltet das Eclipse Plugin auch eine Funktion zum schnellen Ausführen von Unit Tests.</p>
<p>Wenn man an einen Unit Test arbeitet kann man einfach einen Button im Eclipse anklicken zum Ausführen des Tests.</p>
<p><a href="http://www.ajung.de/wp-content/uploads/2010/01/phptools_unit_button.jpg"><img class="alignnone size-full wp-image-596" title="phptools_unit_button" src="http://www.ajung.de/wp-content/uploads/2010/01/phptools_unit_button.jpg" alt="" width="129" height="65" /></a></p>
<p>Erstmal ist das relativ unspannend, da das selbe passiert wie bei einem Kommandozeilen Aufruf und die Ausgabe nur  unschön in der Eclipse Console erscheint.</p>
<p><a href="http://www.ajung.de/wp-content/uploads/2010/01/phptools_unit_console.jpg"><img class="alignnone size-full wp-image-593" title="phptools_unit_console" src="http://www.ajung.de/wp-content/uploads/2010/01/phptools_unit_console.jpg" alt="" width="441" height="289" /></a></p>
<p>Es spart aber immerhin einen Toolwechsel und einige Klicks.</p>
<p>Wirklich praktisch finde ich aber die Auswertung der Fehler im Editor von Eclipse. Dort wird die Stelle wo der Fehler aufgetreten ist als unterstrichener Fehler markiert.</p>
<p><a href="http://www.ajung.de/wp-content/uploads/2010/01/phptools_unit.jpg"><img class="alignnone size-full wp-image-594" title="phptools_unit" src="http://www.ajung.de/wp-content/uploads/2010/01/phptools_unit.jpg" alt="" width="317" height="30" /></a></p>
<p>Es wird nicht nur die Stelle im Test markiert sondern Fehler die in den getesteten Code Aufgetreten sind. Wenn dort ein PHP Fehler auftritt oder eine Exception geworfen wird die nicht abgefangen wird, wird diese Stelle markiert. So braucht man nicht anhand der Zeilen Nummern die Stellen suchen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajung.de/2010/01/26/phpunit-und-eclipse-php-tool-integration-pti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpUnit Coverage Probleme mit doppelten Klassen</title>
		<link>http://www.ajung.de/2010/01/25/phpunit-coverage-probleme-mit-doppelten-klassen/</link>
		<comments>http://www.ajung.de/2010/01/25/phpunit-coverage-probleme-mit-doppelten-klassen/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 13:43:28 +0000</pubDate>
		<dc:creator>ajung</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[Unittests]]></category>

		<guid isPermaLink="false">http://www.ajung.de/?p=590</guid>
		<description><![CDATA[Bei der Erstellung der Codecoverage mit phpUnit bin ich schon mehrmals aus diesen PHP Fehler gestoßen: PHP Fatal error:  Cannot redeclare class Aus dem Code war kein Grund dafür ersichtlich da alle Dateien mit require_once eingebunden waren. Das Problem lag dabei in der Verwendung von Mock Klassen ohne diese vorher importiert zu haben. Ich kann [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Erstellung der Codecoverage mit phpUnit bin ich schon mehrmals aus diesen PHP Fehler gestoßen:</p>
<pre>PHP Fatal error:  Cannot redeclare class
</pre>
<p>Aus dem Code war kein Grund dafür ersichtlich da alle Dateien mit require_once eingebunden waren. Das Problem lag dabei in der Verwendung von Mock Klassen ohne diese vorher importiert zu haben.</p>
<p>Ich kann mit folgenden Code eine Object der Klasse <em>Example</em> erstellen ohne die original Klasse zu laden.</p>
<pre>$object = $this-&gt;getMock ( 'Example', array (), array (), '', false );</pre>
<p>Wenn danach die original Klasse <em>Example</em> importiert wird, ist diese schon deklariert und es kommt zu diesen Fehler. Abhilfe tut hier ein require_once im Test:</p>
<pre>require_once('path/to/Example.php');
$object = $this-&gt;getMock ( 'Example', array (), array (), '', false );
</pre>
<p>Dann klappt es auch mit der Coverage Auswertung.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajung.de/2010/01/25/phpunit-coverage-probleme-mit-doppelten-klassen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Tools Workaround für Windows</title>
		<link>http://www.ajung.de/2009/11/25/php-tools-workaround-fur-windows/</link>
		<comments>http://www.ajung.de/2009/11/25/php-tools-workaround-fur-windows/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 09:33:23 +0000</pubDate>
		<dc:creator>ajung</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[pear]]></category>

		<guid isPermaLink="false">http://www.ajung.de/?p=587</guid>
		<description><![CDATA[Leider gibt es in den PHP Tools für Eclipse einen kleinen Bug unter Windows wenn man ein eigenen Coding Standard verwenden will. Der PHP_CodeSniffer kann mit dem Parameter &#8211;standard aufgerufen werden und der CodeSniffer sucht in dem Pfad nach Sniff Dateien. Der CodeSniffer verwendet dafür die PHP Konstante DIRECTORY_SEPARATOR die ja bekanntlich unter Windows ein [...]]]></description>
			<content:encoded><![CDATA[<p>Leider gibt es in den <a href="http://www.phpsrc.org/wiki/">PHP Tools für Eclipse</a> einen kleinen Bug unter Windows wenn man ein eigenen Coding Standard verwenden will. Der <a href="http://pear.php.net/package/PHP_CodeSniffer/">PHP_CodeSniffer</a> kann mit dem Parameter &#8211;standard aufgerufen werden und der CodeSniffer sucht in dem Pfad nach Sniff Dateien. Der CodeSniffer verwendet dafür die PHP Konstante DIRECTORY_SEPARATOR die ja bekanntlich unter Windows ein \ ist und kein /. Jetzt sollte man unter Windows den CodeSniffer wie folgt aufrufen:</p>
<pre>phpcs --standard=C:\path\to\standard</pre>
<p>Wenn man aber bei den PHP-Tools in die Debug Ausgabe schaut wird folgender Befehl ausgeführt</p>
<pre>phpcs --standard=C:/path/to/standard</pre>
<p>Dadurch findet der CodeSniffer die Dateien nicht.</p>
<p>Ich habe den Bug gemeldet und hoffe das es bald behoben ist.</p>
<p>Als Workaround habe ich den CodeSniffer innerhalb des PEAR Packet angepasst und folgende Zeile ergänzt:</p>
<pre>PHP\CodeSniffer.php Zeile 400</pre>
<pre>$this-&gt;standardDir = str_replace('/',DIRECTORY_SEPARATOR,$this-&gt;standardDir);</pre>
<p>In Eclipse muss man dann noch bei den PHP-Tools Einstellungen die lokale PEAR Libary verwenden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajung.de/2009/11/25/php-tools-workaround-fur-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
