<?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>Agentur münster-webdesign.net &#187; PHP</title>
	<atom:link href="http://www.muenster-webdesign.net/blog/kategorie/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muenster-webdesign.net/blog</link>
	<description>Blog zum Thema Webdesign, Webentwicklung, Web 2.0 und Content Management Systeme</description>
	<lastBuildDate>Sat, 28 Jan 2012 08:58:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Alternative PHP Cache (APC) unter Zend Server Community Edition aktivieren</title>
		<link>http://www.muenster-webdesign.net/blog/alternative-php-cache-apc-unter-zend-server-community-edition-aktivieren/</link>
		<comments>http://www.muenster-webdesign.net/blog/alternative-php-cache-apc-unter-zend-server-community-edition-aktivieren/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 08:05:04 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[Apache Server]]></category>
		<category><![CDATA[Magento | E-Commerce]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=1522</guid>
		<description><![CDATA[In Hinblick auf anstehende Magento Performance-Messungen in Verbindung mit verschiedenen Cache-Backends standen wir unter anderem vor dem Problem, wie sich APC unter Zend Server CE aktivieren lässt. Im ersten Schritt benötigten wir eine kompilierte Version der aktuellen APC-Sourcen, passend zu unserer eingesetzten PHP-Version (5.3) und Betriebssystemplattform (Windows). Fündig wurden wir schließlich auf der Seite http://downloads.php.net/pierre/. [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1525" class="wp-caption alignright" style="width: 220px"><a href="http://www.muenster-webdesign.net/blog/wp-content/uploads/2011/03/alternative_php_ache_apc_unter_zend_server_ce.gif" rel="shadowbox[sbpost-1522];player=img;" title="Alternative PHP Cache (APC) unter Zend Server CE"><img class="size-thumbnail wp-image-1525 " title="Alternative PHP Cache (APC) unter Zend Server CE" src="http://www.muenster-webdesign.net/blog/wp-content/uploads/2011/03/alternative_php_ache_apc_unter_zend_server_ce-210x112.gif" alt="Alternative PHP Cache (APC) unter Zend Server CE" width="210" height="112" /></a><p class="wp-caption-text">Alternative PHP Cache (APC) unter Zend Server CE</p></div>
<p>In Hinblick auf anstehende Magento Performance-Messungen in Verbindung mit verschiedenen Cache-Backends standen wir unter anderem vor dem Problem, wie sich APC unter Zend Server CE aktivieren lässt.</p>
<p>Im ersten Schritt benötigten wir eine kompilierte Version der aktuellen APC-Sourcen, passend zu unserer eingesetzten PHP-Version (5.3) und Betriebssystemplattform (Windows). Fündig wurden wir schließlich auf der Seite <a href="http://downloads.php.net/pierre/" target="_blank">http://downloads.php.net/pierre/</a>. In unserem Fall nutzten wir das Archiv <strong>php_apc-20110109-5.3-nts-vc9-x86.zip</strong>, welches die neueste Version von APC (3.1.7 beta) bereitstellt.</p>
<p>Nach dem Entpacken des Archivs kopierten wir die enthaltene Datei <strong>php_apc.dll </strong>in das entsprechende Extension-Verzeichnis des Zend Server CE (standardmäßig also C:\Program Files\Zend\ZendServer\lib\phpext). Anschließend aktivierten wir APC in der php.ini (C:\Program Files\Zend\ZendServer\etc\php.ini) mit der folgenden Zeilen:</p>
<p>extension=php_apc.dll</p>
<p>Nach einem Neustart des Apache-Servers steht APC dann zur Verfügung.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/alternative-php-cache-apc-unter-zend-server-community-edition-aktivieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript: unterminated string literal error</title>
		<link>http://www.muenster-webdesign.net/blog/javascript-unterminated-string-literal-error/</link>
		<comments>http://www.muenster-webdesign.net/blog/javascript-unterminated-string-literal-error/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 17:20:32 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=864</guid>
		<description><![CDATA[JavaScript gibt sich recht unkooperativ, wenn Strings Zeilenumbrüche enthalten. In der JavaScript-Fehlerkonsole gibt&#8217;s dann meist ein Error: &#8220;unterminated string literal&#8221;. Sofern JavaScript-Code dynamisch per PHP erzeugt werden soll, ist man also gut beraten, vorher etwaige Zeilenumbrüche zu entfernen. Recht komfortabel gelingt das mit der PHP-Funktion &#8220;preg_replace()&#8221;. Ein entsprechender Beispiel-Code, der alle Zeilenumbrüche aus einem String [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript gibt sich recht unkooperativ, wenn Strings Zeilenumbrüche enthalten. In der JavaScript-Fehlerkonsole gibt&#8217;s dann meist ein Error: &#8220;unterminated string literal&#8221;.</p>
<p>Sofern JavaScript-Code dynamisch per PHP erzeugt werden soll, ist man also gut beraten, vorher etwaige Zeilenumbrüche zu entfernen. Recht komfortabel gelingt das mit der PHP-Funktion &#8220;preg_replace()&#8221;. Ein entsprechender Beispiel-Code, der alle Zeilenumbrüche aus einem String entfernt, könnte beispielsweise wie folgt aussehen:</p>
<p>$string = preg_replace(&#8216;/\n|\r\n|\r/&#8217;,&#8221;,$string);</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/javascript-unterminated-string-literal-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Call-time pass-by-reference&#8221;-Bugfix für Typo3-Extension danp_tagcloud</title>
		<link>http://www.muenster-webdesign.net/blog/call-time-pass-by-reference-bugfix-fuer-typo3-extension-danp_tagcloud/</link>
		<comments>http://www.muenster-webdesign.net/blog/call-time-pass-by-reference-bugfix-fuer-typo3-extension-danp_tagcloud/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 07:46:50 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Typo3]]></category>
		<category><![CDATA[Typo3-Extension]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=832</guid>
		<description><![CDATA[Die Version 1.0.1 der Typo3-Extension &#8220;Tagclouds for all tables (TIMTAB)&#8221; (EXT: danp_tagcloud) erzeugt unter aktuellen PHP-Versionen (5.2.10) &#8211; je nach Konfiguration der &#8220;error_reporting&#8221;-Direktive von PHP &#8211; eine Warning-Meldung: Warning: Call-time pass-by-reference has been deprecated &#8211; [...] Um dem Spuk ein Ende zu bereiten, genügt es, in Zeile 50 des PHP-Skripts &#8220;class.tx_danptagcloud_pi1.php&#8221; das &#8220;&#38;&#8221;-Zeichen zu entfernen. [...]]]></description>
			<content:encoded><![CDATA[<p>Die Version 1.0.1 der Typo3-Extension &#8220;Tagclouds for all tables (TIMTAB)&#8221; (EXT: danp_tagcloud) erzeugt unter aktuellen PHP-Versionen (5.2.10) &#8211; je nach Konfiguration der &#8220;error_reporting&#8221;-Direktive von PHP &#8211; eine Warning-Meldung:</p>
<div class="warning" style="height: 30px;">Warning: Call-time pass-by-reference has been deprecated &#8211; [...]</div>
<p>Um dem Spuk ein Ende zu bereiten, genügt es, in Zeile 50 des PHP-Skripts &#8220;class.tx_danptagcloud_pi1.php&#8221; das &#8220;&amp;&#8221;-Zeichen zu entfernen. Die korrekte Zeile sieht dann wie folgt aus:</p>
<p>$helper-&gt;initGeneral($this);</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/call-time-pass-by-reference-bugfix-fuer-typo3-extension-danp_tagcloud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Debugger für PHP 5.3 nur noch für &#8220;non-thread-safe&#8221;-Architektur</title>
		<link>http://www.muenster-webdesign.net/blog/zend-debugger-fuer-php-53-nur-noch-fuer-non-thread-safe-architektur/</link>
		<comments>http://www.muenster-webdesign.net/blog/zend-debugger-fuer-php-53-nur-noch-fuer-non-thread-safe-architektur/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 14:19:40 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=806</guid>
		<description><![CDATA[Bei der Aktualisierung unserer XAMPP-Entwicklungsumgebung auf PHP 5.3 haben wir mit einigem Erstaunen festgestellt, dass Zend Technologies beim hauseigenen Zend Debugger offensichtich die Unterstützung für &#8220;thread-safe&#8221;-Architekturen still und heimlich gestrichen hat. Insbesondere für Entwickler und Programmierer, die &#8211; wie wir &#8211; unter der aktuellen &#8220;XAMPP für Windows&#8221;-Version 1.7.2 entwickeln, ist das wenig erfreulich, da PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Aktualisierung unserer XAMPP-Entwicklungsumgebung auf PHP 5.3 haben wir mit einigem Erstaunen festgestellt, dass Zend Technologies beim hauseigenen Zend Debugger offensichtich die Unterstützung für &#8220;thread-safe&#8221;-Architekturen still und heimlich gestrichen hat.</p>
<p>Insbesondere für Entwickler und Programmierer, die &#8211; wie wir &#8211; unter der aktuellen &#8220;XAMPP für Windows&#8221;-Version 1.7.2 entwickeln, ist das wenig erfreulich, da PHP hier &#8220;thread-safe&#8221; kompiliert ist und das Laden beziehungsweise Ausführen des Zend Debuggers scheitert. Dementsprechend ist an Remote-Debugging mit dem Zend Debugger in dieser Konstellation nicht zu denken.</p>
<div id="attachment_811" class="wp-caption alignright" style="width: 220px"><a href="http://www.muenster-webdesign.net/blog/wp-content/uploads/2009/09/xdebug_zend_studio_eclipse.gif" rel="shadowbox[sbpost-806];player=img;" target="_blank" title="xdebug_zend_studio_eclipse"><img class="size-thumbnail wp-image-811 " title="xdebug_zend_studio_eclipse" src="http://www.muenster-webdesign.net/blog/wp-content/uploads/2009/09/xdebug_zend_studio_eclipse-210x181.gif" alt="XDebug als Debugger unter Zend Studio" width="210" height="181" /></a><p class="wp-caption-text">XDebug als Debugger unter Zend Studio</p></div>
<p>Als Debugger-Alternative bietet sich <a href="http://www.xdebug.org/index.php" target="_blank">Xdebug</a> an. Bleibt nur der ungleich höhere Implementierungsaufwand. Zudem gilt es zu tricksen, damit XDebug überhaupt als alternativer Debugger im &#8220;Preferences&#8221;-Menü unter Zend Studio im Einstellungszweig &#8220;PHP/Debug&#8221; zur Auswahl steht: Dazu gilt es, alle Dateien und Verzeichnisse, die im Plugin-Verzeichnis der IDE liegen und mit &#8220;com.zend.php.debug <em>[...]</em>&#8221; beginnen, zu &#8220;verstecken&#8221; beziehungsweise in ein passendes Unterverzeichnis zu verschieben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/zend-debugger-fuer-php-53-nur-noch-fuer-non-thread-safe-architektur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-Shell-Skripte mittels Eingabeaufforderung unter XAMPP für Windows ausführen</title>
		<link>http://www.muenster-webdesign.net/blog/php-shell-skripte-mittels-eingabeaufforderung-unter-xampp-fuer-windows-ausfuehren/</link>
		<comments>http://www.muenster-webdesign.net/blog/php-shell-skripte-mittels-eingabeaufforderung-unter-xampp-fuer-windows-ausfuehren/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 08:23:26 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=774</guid>
		<description><![CDATA[Häufig ist es erforderlich, PHP-Shell-Skripte, die beispielsweise später regelmäßig per Cronjob ausgeführt werden sollen, während der Entwicklung zu testen. Sofern die Entwicklung auf einem XAMPP-System unter Windows stattfindet, lassen sich .phpsh-Skripte mit folgendem Aufruf aus dem entsprechenden Verzeichnis heraus ([...]\xampp\php) ausführen: php.exe -f [Pfad/Dateiname] Eine Übersicht über alle unterstützten Kommandos liefert der Befehl php.exe -h.]]></description>
			<content:encoded><![CDATA[<p>Häufig ist es erforderlich, PHP-Shell-Skripte, die beispielsweise später regelmäßig per Cronjob ausgeführt werden sollen, während der Entwicklung zu testen. Sofern die Entwicklung auf einem XAMPP-System unter Windows stattfindet, lassen sich .phpsh-Skripte mit folgendem Aufruf aus dem entsprechenden Verzeichnis heraus ([...]\xampp\php) ausführen:</p>
<p>php.exe -f <em>[Pfad/Dateiname]</em></p>
<p>Eine Übersicht über alle unterstützten Kommandos liefert der Befehl <em>php.exe -h</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/php-shell-skripte-mittels-eingabeaufforderung-unter-xampp-fuer-windows-ausfuehren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Mit Setter- und Getter-Methoden arbeiten</title>
		<link>http://www.muenster-webdesign.net/blog/php-mit-setter-und-getter-methoden-arbeiten/</link>
		<comments>http://www.muenster-webdesign.net/blog/php-mit-setter-und-getter-methoden-arbeiten/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 15:05:09 +0000</pubDate>
		<dc:creator>münster-webdesign</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.muenster-webdesign.net/blog/?p=595</guid>
		<description><![CDATA[In der Praxis hat es sich als überaus hilfreich erwiesen, auf Eigenschaften nicht direkt zu zugreifen, sondern diese über entsprechende Setter- und Getter-Methoden anzusprechen. Die Vorteile liegen auf der Hand: Setter- und Getter-Methoden ermöglichen es Ihnen, die Werte der Eigenschaften vor dem Setzen auf Gültigkeit zu überprüfen und die Namen der Eigenschaften zu verstecken. In [...]]]></description>
			<content:encoded><![CDATA[<p>In der Praxis hat es sich als überaus hilfreich erwiesen, auf Eigenschaften nicht direkt zu zugreifen, sondern diese über entsprechende Setter- und Getter-Methoden anzusprechen.</p>
<p>Die Vorteile liegen auf der Hand: Setter- und Getter-Methoden ermöglichen es Ihnen, die Werte der Eigenschaften vor dem Setzen auf Gültigkeit zu überprüfen und die Namen der Eigenschaften zu verstecken.</p>
<p>In Kombination mit der Deklarierung von Eigenschaften als &#8220;private&#8221; respektive &#8220;protected&#8221; ist so in jedem Fall sichergestellt, dass ein Zugriff &#8220;von außen&#8221;, also außerhalb der Klassendefinition, nur noch über die Setter- und Getter-Methoden erfolgen kann.</p>
<p>Um nicht für jede Eigenschaft separate Setter- und Getter-Methoden entwickeln zu müssen, emfpiehlt sich ein allgemeiner Ansatz (hier für die Setter-Methode und zwei Eigenschaften, wobei diese dann als &#8220;protected&#8221; oder &#8220;private&#8221; deklariert werden können):</p>
<div class="code">public function set($eigenschaft, $wert)<br />
{<br />
switch ($eigenschaft, $wert)<br />
{<br />
case &#8216;eigenschaft1&#8242; : $this-&gt;eigenschaft1 = $wert;<br />
return true;<br />
break;<br />
case &#8216;eigenschaft2&#8242; : $this-&gt;eigenschaft2 = $wert;<br />
return true;<br />
break;<br />
}<br />
}</div>
]]></content:encoded>
			<wfw:commentRss>http://www.muenster-webdesign.net/blog/php-mit-setter-und-getter-methoden-arbeiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

