<?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>Persönlicher Blog von Robert Erlinger &#187; PHP</title>
	<atom:link href="http://blog.databyte.at/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.databyte.at</link>
	<description>Persönlicher Blog von Robert Erlinger</description>
	<lastBuildDate>Tue, 10 May 2011 14:21:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Symfony Project: Der Admin-Generator</title>
		<link>http://blog.databyte.at/2008/09/symfony-project-der-admin-generator/</link>
		<comments>http://blog.databyte.at/2008/09/symfony-project-der-admin-generator/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 08:55:20 +0000</pubDate>
		<dc:creator>Robert Erlinger</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[framwork]]></category>
		<category><![CDATA[model view controller]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[propel]]></category>
		<category><![CDATA[scaffolding]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://blog.databyte.at/?p=98</guid>
		<description><![CDATA[
&#160;
&#160;
&#160;
&#160;
Für jemanden, der das Symfony PHP Project noch nicht kennt, ist dieses Video sehr hilfreich, um einen ersten Eindruck über die möglichen Generator-Funktionen und Scaffolding zu erhalten:
http://www.symfony-project.org/screencast/admin-generator
Wer kennt dieses Problem nicht: Neues Projekt, neue Anforderungen! 
Warum jedes Mal ein neues Backend für den Kunden bauen? Das Symfony Framework bietet durch das mitgelieferte Propel Framework (Object [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-99" title="symfony-logo" src="http://blog.databyte.at/wp-content/uploads/2008/09/symfony-logo.png" alt="" width="271" height="115" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Für jemanden, der das <a href="http://www.symfony-project.org/" target="_blank">Symfony PHP Project </a>noch nicht kennt, ist dieses Video sehr hilfreich, um einen ersten Eindruck über die möglichen Generator-Funktionen und <a href="http://de.wikipedia.org/wiki/Scaffolding" target="_blank">Scaffolding</a> zu erhalten:</p>
<p><a href="http://www.symfony-project.org/screencast/admin-generator" target="_blank">http://www.symfony-project.org/screencast/admin-generator</a></p>
<p>Wer kennt dieses Problem nicht: <strong>Neues Projekt, neue Anforderungen! </strong></p>
<p>Warum jedes Mal ein neues Backend für den Kunden bauen? Das <a href="http://www.symfony-project.org/" target="_blank">Symfony Framework</a> bietet durch das mitgelieferte <a href="http://propel.phpdb.org/trac/" target="_blank">Propel Framework</a> (Object Relation Mapping) die Möglichkeit, ein XML-File für die Datenstruktur zu definieren. Anhand von Symfony Commands, welche auf der Kommandozeile ausgeführt werden, können innerhalb von wenigen Minuten das Datenbankschema, die Backendmasken und die <a href="http://de.wikipedia.org/wiki/Model_View_Controller" target="_blank">Model-View-Controller</a> PHP Klassen automatisch generiert werden. Alleine diese Möglichkeiten <strong>sparen</strong> dem Entwickler schon einige <strong>Manntage </strong>an Arbeit, und zudem setzt man auf ein professionelles und zukunftsträchtiges MVC-Framework!</p>
<p>Die Eingabemasken werden durch Symfony automatisch generiert und können beliebig erweitert und durch <a href="http://de.wikipedia.org/wiki/YAML" target="_blank">YAML</a>-Files konfiguriert werden. Erstellen von Filtern, Validierungen, Pagination, etc. ist durch Konfiguration in Minuten steuerbar.</p>
<p>Das größte Problem bei MVC-Frameworks ist meistens das Customizing. Ändert man, in einer durch das Scaffolding generierten Klasse, die Logik, fällt ein zukünftiges Scaffolding mit dem eingesetzten Framework flach. Nicht so bei Symfony. Dank der Architektur und Objektorientierung ist das Erweitern der Klassen ein Kinderspiel, z.B. durch Methodenüberlagerung, etc. Symfony sorgt beim Scaffolding auch schon dafür und generiert diese Klassen gleich mit.</p>
<p>Dank Symfony und anderen MVC Frameworks, wie z.B. das <a href="http://framework.zend.com/" target="_blank">ZEND PHP Framework</a>, ist das Entwickeln von professionellen PHP Anwendungen im Gegensatz zu vor ein paar Jahren heutzutage ein Kinderspiel geworden. Dies ist auch PHP5 mit seiner vollwärtigen Unterstützung von Objektorientierung zu verdanken.</p>
<p><strong>Links:</strong></p>
<ul>
<li><a href="http://www.symfony-project.org/" target="_blank">Symfony PHP Framwork</a></li>
<li><a href="http://framework.zend.com/">Zend PHP Framework</a></li>
<li><a href="http://propel.phpdb.org/" target="_blank">Propel &#8211; Object Relation Mapper</a></li>
</ul>
<p><strong>Videos:</strong></p>
<ul>
<li><a href="http://www.symfony-project.org/screencast/admin-generator" target="_blank">Symfony Admin Generator</a></li>
<li><a href="http://www.symfony-project.org/screencast/cart" target="_blank">Easy Ajax</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.databyte.at/2008/09/symfony-project-der-admin-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typo3 Extension &#8211; Template Rendering in Extensions</title>
		<link>http://blog.databyte.at/2007/07/typo3-extension-template-rendering-in-extensions/</link>
		<comments>http://blog.databyte.at/2007/07/typo3-extension-template-rendering-in-extensions/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 11:12:27 +0000</pubDate>
		<dc:creator>Robert Erlinger</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Typo3]]></category>

		<guid isPermaLink="false">http://blog.databyte.at/?p=19</guid>
		<description><![CDATA[In der Typo3 Extension kann z.B. folgende Methode geschrieben werden:

	/**
	 * Renders a team using the specified template
	 *
	 * @param template the template to use
	 * @param resource the sql resource with the list of teams
	 *
	 * @return the template with the replaced markers
	 */
	function renderTeam($team) {
		// Load the roster template
		$templateFile = $this->cObj->fileResource($this->conf['rosterTemplate']);
		$templateCodeTeam [...]]]></description>
			<content:encoded><![CDATA[<p>In der Typo3 Extension kann z.B. folgende Methode geschrieben werden:</p>
<pre>
	/**
	 * Renders a team using the specified template
	 *
	 * @param template the template to use
	 * @param resource the sql resource with the list of teams
	 *
	 * @return the template with the replaced markers
	 */
	function renderTeam($team) {
		// Load the roster template
		$templateFile = $this->cObj->fileResource($this->conf['rosterTemplate']);
		$templateCodeTeam = $this->cObj->getSubpart ($templateFile,'###TEAM###');

		$marker = array();
		$marker['###TEAMNAME###'] = $team->getName();
		$marker['###RACE###'] = $team->getRace();
		$marker['###TEAMVALUE###'] = 'yet to do';
		$marker['###TREASURY###'] = $team->getTreasury();
		$marker['###HEADCOACH_NAME###'] = $team->getHeadCoachName();
		$marker['###HEADCOACH_EMAIL###'] = $team->getHeadCoachEmail();
		$marker['###HEADCOACH_NICK###'] = $team->getHeadCoachNick();
		$marker['###HEADCOACH###'] = $this->getHeadCoachLink($team->getHeadCoachNick(),$team->getHeadCoachEmail());
		$marker['###RR###'] = $team->getRR();
		$marker['###RR_COST###'] = $team->getRRCost();
		$marker['###RR_SUM_COSTS###'] = $team->getRR() * $team->getRRCost();
		$marker['###FF###'] = $team->getFF();
		$marker['###FF_COST###'] = '10000';
		$marker['###FF_SUM_COSTS###'] = $team->getFF() * 10000;
		$marker['###ASSCOACH###'] = $team->getAssCoaches();
		$marker['###ASSCOACH_COSTS###'] = 10000;
		$marker['###ASSCOACH_SUM_COSTS###'] =  $team->getAssCoaches() * 10000;
		$marker['###CHEER###'] = $team->getCheerleaders();
		$marker['###CHEER_COSTS###'] = 10000;
		$marker['###CHEER_SUM_COSTS###'] = $team->getCheerleaders() * 10000;
		$marker['###APO###'] =  $team->getApothecary();
		$marker['###APO_COST###'] = 50000;
		$marker['###APO_SUM_COSTS###'] =$team->getApothecary() * 50000;
		$marker['###TEAM_VALUE###'] = $this->getTeamValue($team);
		$marker['###SPIRALLING_EXPENSES###']= $this->getSpiralingExpenses($team);

		// Render the players
		$templateCodeTeam = $this->cObj->substituteSubpart($templateCodeTeam,'###PLAYERS###', $this->renderPlayers($templateCodeTeam, $team->getPlayers(), $team->getRace()));		

		return $this->cObj->substituteMarkerArrayCached($templateCodeTeam, $marker);

	}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.databyte.at/2007/07/typo3-extension-template-rendering-in-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

