<?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>blog.seric.at &#187; PHP</title>
	<atom:link href="http://blog.seric.at/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.seric.at</link>
	<description>photography programming politics life</description>
	<lastBuildDate>Thu, 26 Aug 2010 17:24:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Automatic Anti-Pattern Corrections for PHP</title>
		<link>http://blog.seric.at/2010/07/19/automatic-anti-pattern-corrections-for-php/</link>
		<comments>http://blog.seric.at/2010/07/19/automatic-anti-pattern-corrections-for-php/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 11:23:45 +0000</pubDate>
		<dc:creator>seric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Anti-Pattern]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[lex-pass]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[University]]></category>

		<guid isPermaLink="false">http://blog.seric.at/?p=271</guid>
		<description><![CDATA[During my computer science studies at the Vorarlberg University of Applied Sciences I wrote my bachelor thesis about &#8220;Automatic Anti-Pattern Corrections for PHP&#8221;. As a fan of the open source philosophy, I want to share my work with others. I invite everyone to contribute to the great lex-pass project and this approach to better PHP]]></description>
			<content:encoded><![CDATA[<p>During my computer science studies at the Vorarlberg University of Applied Sciences I wrote my bachelor thesis about &#8220;Automatic Anti-Pattern Corrections for PHP&#8221;. As a fan of the open source philosophy, I want to share my work with others. I invite everyone to contribute to the great lex-pass project and this approach to better PHP software. Please share your thought and ideas on this with me and others by leaving a comment or sending me a message.<span id="more-271"></span></p>
<p>The thesis is written in german but at least there is an english abstract.</p>
<blockquote><p><strong>Abstract</strong></p>
<p>Since the first release of the programming language PHP, PHP has been rapidly developed. As a result to these huge improvements, many of the features from PHP 4 have been rewritten or replaced in PHP 5. For instance exception handling, abstract classes and interfaces have been introduced. Additionally, objects are not getting copied (call-by-value) every time they are assigned to another variable or used as function parameters, but assigned as reference (call-by-reference). As a result, many old and bad constructs remain in already existing applications. This leads to several issues.</p>
<p>That is why many companies struggle especially with security and performance problems. Manual refactoring of existing source code is time-consuming and a reason why a lot of companies abandon such improvements.<br />
The open-source initiative of Facebook led to the tool <a href="http://github.com/facebook/lex-pass">lex-pass</a> which is already capable of some very basic refactoring transformations. It is using the abstract syntax tree (AST) to transform PHP into corrected code according to predefined rules.</p>
<p>This bachelor thesis detects several anti-patterns and implements some basic transformations. As a result, these anti-patterns are automatically corrected with lex-pass. Then the implemented transformations are explained in detail and some further possible corrections are discussed. For demonstration purposes, some well known open-source projects are being tested and corrected with the written transformations.</p>
<p>As a conclusion the advantages and disadvantages of automatic corrections are explained and the usefulness and limitations of such automatic transformations are illustrated.</p></blockquote>
<p><a href="http://blog.seric.at/wp-content/uploads/2010/07/Bachelorarbeit_Franziskus_Domig.pdf">Download &#8220;Automatic Anti-Pattern Corrections for PHP&#8221; bachelor thesis</a></p>
<p>I would like to thank the people from Mayflower GmbH for their great support  and Daniel Corson from Facebook for his contribution to my work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seric.at/2010/07/19/automatic-anti-pattern-corrections-for-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony 2.0 Preview</title>
		<link>http://blog.seric.at/2010/02/26/symfony-2-0-preview/</link>
		<comments>http://blog.seric.at/2010/02/26/symfony-2-0-preview/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 10:51:57 +0000</pubDate>
		<dc:creator>seric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Symfony 2.0]]></category>

		<guid isPermaLink="false">http://blog.seric.at/?p=247</guid>
		<description><![CDATA[Here we go. Fabien Potencier last week released the preview website for symfony 2.0 (symfony reloaded). Me, as a long time PHP and symfony user this preview shows a lot of new interesting stuff comming to web development with symfony. A Quick-Tour of Fabiens newest baby is also available and points out major changes to]]></description>
			<content:encoded><![CDATA[<p>Here we go. Fabien Potencier last week released the <a href="http://symfony-reloaded.org/">preview website for symfony 2.0</a> (symfony reloaded). Me, as a long time PHP and symfony user this preview shows a lot of new interesting stuff comming to web development with symfony. A <a href="http://symfony-reloaded.org/quick-tour-part-1">Quick-Tour</a> of Fabiens newest baby is also available and points out major changes to the framework. First thing to notice is the completly changed directory structure. Another major step is the use of &gt;= PHP 5.3.2 which adds support for namespaces and gives a great performance boost. As release date for symfony 2.0 &#8220;late 2010&#8243; is scheduled.<br />
<script type="text/javascript"><!--
google_ad_client = "pub-7188468985735362";
/* 468x60, Erstellt 28.02.10 */
google_ad_slot = "7225146616";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seric.at/2010/02/26/symfony-2-0-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony Support in NetBeans 6.8 Announced</title>
		<link>http://blog.seric.at/2009/07/12/symfony-support-in-netbeans-6-8-announced/</link>
		<comments>http://blog.seric.at/2009/07/12/symfony-support-in-netbeans-6-8-announced/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 14:09:11 +0000</pubDate>
		<dc:creator>seric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://blog.seric.at/?p=215</guid>
		<description><![CDATA[The NetBeans Team has announced to support not just PHP 5.3 which was released earlier last week but also Symfony in the next release (6.8)! Because I am not very pleased with the PHP support within Eclipse PDT, I am currently using VIM for PHP, and specially, Symfony development. Since Pierre told me recently that]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.netbeans.org/">NetBeans</a> Team has <a href="http://wiki.netbeans.org/PHPDevelopmentPlanNB68">announced</a> to support not just <a href="http://www.php.net">PHP 5.3</a> which was released earlier last week but also <a href="http://www.symfony-project.org">Symfony</a> in the next release (6.8)!</p>
<p>Because I am not very pleased with the PHP support within <a href="http://eclipse.org/pdt/">Eclipse PDT</a>, I am currently using <a href="http://www.vim.org">VIM</a> for PHP, and specially, Symfony development.</p>
<p>Since <a href="http://blog.thepimp.net/">Pierre</a> told me recently that the PHP support for NetBeans is getting better and better, I am really looking forward to the next NetBeans release.</p>
<p><a href="http://blog.goyello.com/2009/06/26/netbeans-6-7-and-phpsymfony-a-perfect-couple/">More information on Symfony integration in Netbeans</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seric.at/2009/07/12/symfony-support-in-netbeans-6-8-announced/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>PHP 5.3 Released</title>
		<link>http://blog.seric.at/2009/06/30/php-5-3-released/</link>
		<comments>http://blog.seric.at/2009/06/30/php-5-3-released/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 10:25:08 +0000</pubDate>
		<dc:creator>seric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.seric.at/?p=212</guid>
		<description><![CDATA[Well not yet, but hopefully in a couple of hours and minutes. (Check php.net) Although there are some new cool features in it such as lambda functions, closures and PHAR support, there is this silly namespace thing. Namespaces are good in generally (remember, you had to prefix each class with your damn project-name to be]]></description>
			<content:encoded><![CDATA[<p>Well not yet, but hopefully in a couple of hours and minutes. (Check <a href="http://php.net">php.net</a>) Although there are some new cool features in it such as lambda functions, closures and PHAR support, there is this silly namespace thing. Namespaces are good in generally (remember, you had to prefix each class with your damn project-name to be on the save side) but separating the namespace parts with the *escape* character &#8220;\&#8221; (YES THE BACKSLASH!) &#8211; the worst ever to choose character &#8211; is a awful and total painful thing.</p>
<p>I was hoping until the latest second before the release that someone will fix this BUG and replace the namespace-separator with a better character (maybe &#8220;_&#8221;, &#8220;-&#8221;, &#8220;..&#8221; or &#8220;|&#8221; since &#8220;.&#8221; (concat), &#8220;::&#8221; (static) are already used for other issues).</p>
<p>Do not get me wrong, I appreciate the great work the PHP5.3 Team has done but this namespace thing takes some of the coolness away from that release. Sad but true story.</p>
<p>*UPDATE* <a href="http://www.php.net/archive/2009.php#id2009-06-30-1">PHP 5.3.0 has been release now</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seric.at/2009/06/30/php-5-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony 1.2 introduces REST</title>
		<link>http://blog.seric.at/2008/09/02/symfony-12-introduces-rest/</link>
		<comments>http://blog.seric.at/2008/09/02/symfony-12-introduces-rest/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 20:21:57 +0000</pubDate>
		<dc:creator>seric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://seric.at/blog/?p=111</guid>
		<description><![CDATA[As Fabien just posted on the Symfony Blog the next major release of Symfony &#8211; Symfony 1.2 &#8211; will introduce a quite cool feature to the framework. It will be possible to add a hidden form element to add REST inforrmation to the form and get the REST state with sfRequest::getMethod(). This is quite useful]]></description>
			<content:encoded><![CDATA[<p>As <a title="Symfony Blog" href="http://www.symfony-project.org/blog/2008/09/02/new-in-symfony-1-2-small-things-matter">Fabien just posted on the Symfony Blog</a> the next major release of Symfony &#8211; Symfony 1.2 &#8211; will introduce a quite cool feature to the framework. It will be possible to add a hidden form element to add <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> inforrmation to the form and get the REST state with <code>sfRequest::getMethod()</code>. This is quite useful and adds native support for <code>PUT</code> and <code>DELETE</code> from the browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seric.at/2008/09/02/symfony-12-introduces-rest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony 1.1 Ajax Form Validation</title>
		<link>http://blog.seric.at/2008/08/12/symfony-1-1-ajax-form-validation/</link>
		<comments>http://blog.seric.at/2008/08/12/symfony-1-1-ajax-form-validation/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 16:30:58 +0000</pubDate>
		<dc:creator>seric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://seric.at/blog/?p=101</guid>
		<description><![CDATA[Since Symfony 1.1 was released, I am working with it. I adept a existing Symfony 1.0 application to 1.1. This process is quite tricky and needs a lot of research to get the result that I want. As I faced a problem with a form which I submit via an Ajax request, I found a]]></description>
			<content:encoded><![CDATA[<p>Since <a href="http://www.symfony-project.org/blog/2008/06/30/the-wait-is-over-symfony-1-1-released">Symfony 1.1 was released</a>, I am working with it. I adept a existing Symfony 1.0 application to 1.1. This process is quite tricky and needs a lot of research to get the result that I want.</p>
<p>As I faced a problem with a form which I submit via an Ajax request, I found a pretty nice solution in doing this with Symfony 1.1.<br />
<span id="more-101"></span></p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">public</span> <span class="kw2">function</span> executeSubmitaction<span class="br0">&#40;</span><span class="re0">$request</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$form</span> &nbsp; = <span class="kw2">new</span> FoobarForm<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; <span class="co1">// set the form to bound status with the submitted values</span><br />
&nbsp; &nbsp; <span class="re0">$form</span>-&gt;<span class="me1">bind</span><span class="br0">&#40;</span><span class="re0">$request</span>-&gt;<span class="me1">getParameter</span><span class="br0">&#40;</span><span class="st0">&#8216;formvalues&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; <span class="co1">// validate all values</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$form</span>-&gt;<span class="me1">isValid</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$errors</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$form</span>-&gt;<span class="me1">getErrorSchema</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw1">as</span> <span class="re0">$field</span> =&gt; <span class="re0">$error</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$errors</span><span class="br0">&#91;</span><span class="re0">$field</span><span class="br0">&#93;</span> = <span class="re0">$error</span>-&gt;<span class="me1">getMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">errors</span> = <span class="re0">$errors</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> sfView::<span class="me2">ERROR</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="co1">// do stuff if the form is valid</span></p>
<p>&nbsp; &nbsp; <span class="kw1">return</span> sfView::<span class="me2">SUCCESS</span>;<br />
<span class="br0">&#125;</span></div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7188468985735362";
/* 468x60, Erstellt 28.02.10 */
google_ad_slot = "7225146616";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
On the view-side I then have a javascript function which handles all the errors and I am using the serialized errors-array in the error-template to display the errors to the propriate divs.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seric.at/2008/08/12/symfony-1-1-ajax-form-validation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>#php.de@IRCnet</title>
		<link>http://blog.seric.at/2008/03/01/phpdeircnet/</link>
		<comments>http://blog.seric.at/2008/03/01/phpdeircnet/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 13:22:37 +0000</pubDate>
		<dc:creator>seric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Privat]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[projekt]]></category>

		<guid isPermaLink="false">http://seric.at/blog/?p=22</guid>
		<description><![CDATA[Weil ich mich nie an die Blogs der unterschiedlichen Leute im IRCnet Channel #php.de erinnern kann, habe ich angefangen eine Liste mit eben den Blogs dieser anzulegen. Es gibt für jeden #php.de User die Möglichkeit sich selbst einzutragen, ich muss dann den entsprechenden Link lediglich noch freischalten. Für alle Interessierten: #php.de@IRCnet Blogs]]></description>
			<content:encoded><![CDATA[<p>Weil ich mich nie an die Blogs der unterschiedlichen Leute im <a href="http://ircnet.org">IRCnet</a> Channel #php.de erinnern kann, habe ich angefangen eine Liste mit eben den <a href="http://de.wikipedia.org/wiki/Blog">Blogs</a> dieser anzulegen. Es gibt für jeden #php.de User die Möglichkeit sich selbst einzutragen, ich muss dann den entsprechenden Link lediglich noch freischalten.</p>
<p>Für alle Interessierten: <a title="#php.de@IRCnet Blogs" href="http://php-de-blogs.seric.at">#php.de@IRCnet Blogs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seric.at/2008/03/01/phpdeircnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-Code-Camp in München</title>
		<link>http://blog.seric.at/2008/02/26/php-code-camp-in-munchen/</link>
		<comments>http://blog.seric.at/2008/02/26/php-code-camp-in-munchen/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 19:36:21 +0000</pubDate>
		<dc:creator>seric</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Camp]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[München]]></category>

		<guid isPermaLink="false">http://seric.at/blog/?p=20</guid>
		<description><![CDATA[Vom 3. bis zum 6. März 2008 findet in München das PHP Code Camp statt und es sind noch Plätze frei. Auf diesem Camp werden unterschiedliche Schulungen mit einigen bekannten Referenten abgehalten. Das Camp findet im NH Hotel Deutscher Kaiser direkt am Münchner Hauptbahnhof statt und kostet ab 1.790 Euro. Organisiert wird das Code Camp]]></description>
			<content:encoded><![CDATA[<p>Vom <b>3. bis zum 6. März 2008</b> findet in München das <a title="PHP Code Camp" href="http://entwickler-akademie.de/codecamps/php">PHP Code Camp</a> statt und es sind noch Plätze frei. Auf diesem Camp werden unterschiedliche Schulungen mit einigen bekannten Referenten abgehalten. Das Camp findet im NH Hotel Deutscher Kaiser direkt am Münchner Hauptbahnhof statt und kostet ab 1.790 Euro. Organisiert wird das Code Camp vom PHP Magazin und von der Entwickler Akademie und wird als ein neuartiges Trainingskonzept beworben, das vier Tage lang in konzentrierter Form vermittelt, wie PHP-Anwendungen mit professionellem Anspruch entwickelt werden können.</p>
<p><b>Ein Auszug aus dem geplanten Programm:</b></p>
<blockquote><p>Interaktives Code-Review einer &#8220;schlechten&#8221; Anwendung<br />
PHP-Security (SQL-Injection, XSS, Session-Hijacking, Input-Verarbeitung)<br />
Objektorientierte Programmierung<br />
Testgetriebene Entwicklung<br />
Einführung in Unit Testing, Entwicklung von Unit Tests<br />
Werkzeuge für die PHP-Entwicklung<br />
Funktionale Tests<br />
Patterns für PHP<br />
Code-Review von schlechtem und gutem Code</p></blockquote>
<p><b>Mehr Informationen:</b><br />
<a href="http://entwickler-akademie.de/codecamps/php">PHP Code Camp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seric.at/2008/02/26/php-code-camp-in-munchen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
