<?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>Zend | Nerdpress.org</title>
	<atom:link href="https://nerdpress.org/tag/zend-php/feed/" rel="self" type="application/rss+xml" />
	<link>https://nerdpress.org</link>
	<description>...dev, tech problems and solutions.</description>
	<lastBuildDate>Tue, 08 Jun 2010 15:29:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Zend_Log pseudo logrotate</title>
		<link>https://nerdpress.org/2010/06/08/zend_log-pseudo-logrotate/</link>
					<comments>https://nerdpress.org/2010/06/08/zend_log-pseudo-logrotate/#comments</comments>
		
		<dc:creator><![CDATA[Ivo Bathke]]></dc:creator>
		<pubDate>Tue, 08 Jun 2010 15:29:32 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=1025</guid>

					<description><![CDATA[<p>Manchmal wachsen einem die Logfiles ja über den Kopf und drohen den Server zu sprengen. Dann muss man aufräumen, weithin als logrotation bekannt. Unter Linux gibt es ja das praktische logrotate Programm, welches man für seine zwecke vielfältig konfigurieren kann. Es gibt dann aber auch Fälle wo man dies nicht benutzen will/kann, zB weil man &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2010/06/08/zend_log-pseudo-logrotate/" class="more-link">Continue reading<span class="screen-reader-text"> "Zend_Log pseudo logrotate"</span></a></p>
The post <a href="https://nerdpress.org/2010/06/08/zend_log-pseudo-logrotate/">Zend_Log pseudo logrotate</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p>Manchmal wachsen einem die Logfiles ja über den Kopf und drohen den Server zu sprengen.<br />
Dann muss man aufräumen, weithin als logrotation bekannt. Unter Linux gibt es ja das praktische <a href="http://www.linuxconfig.org/Logrotate">logrotate</a> Programm, welches man für seine zwecke vielfältig konfigurieren kann.</p>
<p>Es gibt dann aber auch Fälle wo man dies nicht benutzen will/kann, zB weil man auf shared hosting ist oder man eine Tool ausliefern will, welches selbst aufräumen soll.</p>
<p>Zend_Log bietet zZt leider keine Log Rotation mit an, also muss man es selber machen:</p>
<p>In meinem Fall will ich die Logfiles ca eine Woche vorhalten, das sollte reichen um Problemen auf die Spur zu kommen.<br />
Zudem werde ich die tagesweise stückeln, da diese in einem Backend angezeigt werden sollen.<br />
Dafür nenne ich die Logfiles so:</p>
<pre class="brush: php; title: ; notranslate">
define('SYNC_LOG','sync.'.date('N').'.log.txt');
</pre>
<p>Also mit numerischem Wochentag im Namen.</p>
<p><span id="more-1025"></span></p>
<p>Die Pseudo Logrotation bedeutet in meinem Fall, alle LogFiles, die älter als die Woche sind, werden neu geschrieben, also der Inhalt nicht angehangen.</p>
<p>Dazu wird die Zend_Log_Writer Klasse extendet:</p>
<pre class="brush: php; title: ; notranslate">
class MyZend_Log_Rotated_File extends Zend_Log_Writer_Stream{
	function __construct($file) {
		parent::__construct($file,self::rotator($file));
	}
	static function rotator($file) {
		$mode = 'w+';
		if (file_exists($file)) {
			$ft = filemtime($file);
			$yt = mktime(0, 0, 0, date('m'), date('d')-1, date('Y'));
			if($ft &gt; $yt){
				$mode = 'a';
			}
		}
		return $mode;
	}
}
</pre>
<p>Jetzt wird bei jeder Instanzierung geprüft ob der File zu alt ist und der Öffne-Modus dementsprechend gesetzt und der Parent Klasse, also dem Zend_Log_Writer übergeben.</p>
<p>So wird es dann aufgerufen:</p>
<pre class="brush: php; title: ; notranslate">
$logger = new Zend_Log();
$writer = new MyZend_Log_Rotated_File(LOGDIR.SYNC_LOG);
$logger-&gt;addWriter($writer);
$logger-&gt;log('log was!');
</pre>The post <a href="https://nerdpress.org/2010/06/08/zend_log-pseudo-logrotate/">Zend_Log pseudo logrotate</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
					<wfw:commentRss>https://nerdpress.org/2010/06/08/zend_log-pseudo-logrotate/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Fail! Zend Db: Ausgabe eines Update Query</title>
		<link>https://nerdpress.org/2010/03/30/fail-zend-db-ausgabe-eines-update-query/</link>
					<comments>https://nerdpress.org/2010/03/30/fail-zend-db-ausgabe-eines-update-query/#comments</comments>
		
		<dc:creator><![CDATA[Ivo Bathke]]></dc:creator>
		<pubDate>Tue, 30 Mar 2010 16:04:55 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=905</guid>

					<description><![CDATA[<p>Heute gibt es mal einen Fail! Vorneweg: das Zend Framework (Version 1.10) wird hier &#8220;lose&#8221; benutzt, d.h. ohne Bootstrap. (Evtl. kann man da den Query loggen, aber kA) Die simple Ausgabe eines Update Query zu Debug Zwecken ist mit dem Zend Db Packet anscheinend nicht möglich. Man konstruiert den Query: $this-&#62;db-&#62;update($this-&#62;table, $data, 'id = '.(int)$this-&#62;data&#x5B;'id']); &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2010/03/30/fail-zend-db-ausgabe-eines-update-query/" class="more-link">Continue reading<span class="screen-reader-text"> "Fail! Zend Db: Ausgabe eines Update Query"</span></a></p>
The post <a href="https://nerdpress.org/2010/03/30/fail-zend-db-ausgabe-eines-update-query/">Fail! Zend Db: Ausgabe eines Update Query</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p>Heute gibt es mal einen Fail!</p>
<p>Vorneweg: das Zend Framework (Version 1.10) wird hier &#8220;lose&#8221; benutzt, d.h. ohne Bootstrap. (Evtl. kann man da den Query loggen, aber kA)</p>
<p>Die simple Ausgabe eines Update Query zu Debug Zwecken ist mit dem Zend Db Packet anscheinend nicht möglich.</p>
<p>Man konstruiert den Query:</p>
<pre class="brush: php; title: ; notranslate">
$this-&gt;db-&gt;update($this-&gt;table, $data, 'id = '.(int)$this-&gt;data&#x5B;'id']);
</pre>
<p><span id="more-905"></span></p>
<p>Irgendwas geht schief und man wüßte gerne was, also einfach mal den Query ausgeben und schauen was da los ist.</p>
<p>Eine <em>__toString</em> wie etwa bei den Select Konstrukten gibt es dort nicht.</p>
<p>Über den Profiler bekommt man auch nur den Query mit Platzhaltern und die Parameter Liste, aber keinen zusammengesetzten Query.<br />
Bereits bei über 10 Parameter wird das dann schon wieder unübersichtlich und ist somit auch nutzlos.</p>
<p>Probiert man es über <em>quoteInto</em> kommt auch nur Murks raus:<br />
Da wird jeder Platzhalter mit der kompleten Parameterliste ersetzt.</p>
<pre class="brush: php; title: ; notranslate">
$this-&gt;db-&gt;getProfiler()-&gt;setEnabled(true);
$n = $this-&gt;dbn-&gt;update($this-&gt;table, $ins, 'offline_id = '.(int)$this-&gt;id);
//gibt den query mit platzhaltern bei den Values aus
$query = $this-&gt;db-&gt;getProfiler()-&gt;getLastQueryProfile()-&gt;getQuery();
echo $query;
//gibt die Parameter Liste aus
$queryParams = $this-&gt;db-&gt;getProfiler()-&gt;getLastQueryProfile()-&gt;getQueryParams();
print_r($queryParams);
//setzt die komplette Parameterliste in jeden Platzhalter :(
echo $this-&gt;db-&gt;quoteInto($query, $queryParams)
$this-&gt;db-&gt;getProfiler()-&gt;setEnabled(false);
</pre>
<p>Das ist schon eher schwach, würde ich mal behaupten.<br />
Hat das schonmal jemand geschafft?<br />
Würde mich interessieren: wie?</p>The post <a href="https://nerdpress.org/2010/03/30/fail-zend-db-ausgabe-eines-update-query/">Fail! Zend Db: Ausgabe eines Update Query</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
					<wfw:commentRss>https://nerdpress.org/2010/03/30/fail-zend-db-ausgabe-eines-update-query/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Ein Projekt mit Zend Framework anlegen via USVN und Subclipse</title>
		<link>https://nerdpress.org/2009/10/27/ein-projekt-mit-zend-framework-anlegen-via-usvn-und-subclipse/</link>
		
		<dc:creator><![CDATA[Ivo Bathke]]></dc:creator>
		<pubDate>Tue, 27 Oct 2009 13:51:02 +0000</pubDate>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[USVN]]></category>
		<category><![CDATA[Zend]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=481</guid>

					<description><![CDATA[<p>Mal wieder ein neues Projekt anlegen, wird Zeit, dass das mal automatisch geht. Diesmal aber noch manuell und zwar so: USVN benutzen wir um bequem unsere Repos zu verwalten, hat sich bisher bewährt im manuellen Betrieb. Für den automatisierten Betrieb kann ich es allerdings nicht empfehlen. Der Text hier gilt für USVN Version 0.7.2, es &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2009/10/27/ein-projekt-mit-zend-framework-anlegen-via-usvn-und-subclipse/" class="more-link">Continue reading<span class="screen-reader-text"> "Ein Projekt mit Zend Framework anlegen via USVN und Subclipse"</span></a></p>
The post <a href="https://nerdpress.org/2009/10/27/ein-projekt-mit-zend-framework-anlegen-via-usvn-und-subclipse/">Ein Projekt mit Zend Framework anlegen via USVN und Subclipse</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p>Mal wieder ein neues Projekt anlegen, wird Zeit, dass das mal automatisch geht.</p>
<p>Diesmal aber noch manuell und zwar so:</p>
<p><a href="http://www.usvn.info/" target="_blank">USVN</a> benutzen wir um bequem unsere Repos zu verwalten, hat sich bisher bewährt im manuellen Betrieb.</p>
<p>Für den automatisierten Betrieb kann ich es allerdings nicht empfehlen.</p>
<p>Der Text hier gilt für USVN Version 0.7.2, es gibts übrigens eine neuere Version 1.0.1, da kann ich allerdings noch nicht viel zu sagen.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">benutzen wir um bequem unsere Repos zu verwalten, hat sich bisher bewährt im manuellen Betrieb.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Für den automatisierten Betrieb kann ich es allerdings nicht empfehlen</div>
<p>Also ein svn Projekt anlegen:<span id="more-481"></span></p>
<p><img fetchpriority="high" decoding="async" class="alignnone size-medium wp-image-485" title="usvn neues projekt" src="https://nerdpress.org/wp-content/uploads/2009/10/usvn_new-300x290.jpg" alt="usvn neues projekt" width="300" height="290" /></p>
<p>Dann Rechte vergeben nicht vergessen:</p>
<p><img decoding="async" class="alignnone size-medium wp-image-488" title="Usvn rechte vergeben" src="https://nerdpress.org/wp-content/uploads/2009/10/usvn_rights-300x104.jpg" alt="Usvn rechte vergeben" width="300" height="104" /></p>
<p>So das Repository ist angelegt.</p>
<p>Nun ab in die IDE damit:</p>
<p>In Eclipse ein neues Project anlegen, als SVN Checkout, dann den trunk auswählen, erneut in den &#8220;new Project Wizzard&#8221; wechseln, Namen geben usw. und finish.</p>
<p>Dann das bereits Vorgecodete in das angelegte Projekt kopieren, Initial Commit machen, Ignores setzen für zB Log Verzeichnisse, eclipse files und fertig.</p>
<p>Damit wäre das Projekt schonmal versioniert.</p>
<p>Fehlt aber noch das Zend Framework, was ich voll einbinden werde, da wir es mit ausliefern wollen.</p>
<p>Damit man auf dem aktuellsten Stand bleibt will ich das als svn:external einbinden,  da Zend einen anonymen read-only checkout aus deren Repos erlaubt ist dies auch möglich.</p>
<p>Ich benutze ZEND als &#8220;<a href="http://www.satya-weblog.com/2008/05/types-of-php-framework-glue-and-full.html" target="_blank">glue type framework</a>&#8220;, d.h. ohne MVC, daher werde ich nur die library einbinden.</p>
<p>Dafür wird eine externals.txt angelegt, wo folgendes drin steht:</p>
<pre class="brush: bash; title: ; notranslate">Zend http://framework.zend.com/svn/framework/standard/trunk/library/Zend/</pre>
<p>Die externals.txt dann committen.</p>
<p>In Subclipse nun die Externe Bibliothek anmelden und auschecken.</p>
<p>Dazu auf den Destination Ordner zB einen lib Ordner, da Rechtsklick und unter -&gt; Team setProperty wählen.</p>
<p><img decoding="async" class="alignnone size-medium wp-image-492" title="setProperty" src="https://nerdpress.org/wp-content/uploads/2009/10/setProperty-268x300.jpg" alt="setProperty" width="268" height="300" /></p>
<p>Da svn:externals wählen, File aktivieren, die externals.txt aussuchen und OK klicken.</p>
<p><img decoding="async" class="alignnone size-medium wp-image-493" title="setProperty2" src="https://nerdpress.org/wp-content/uploads/2009/10/setProperty2-300x297.jpg" alt="setProperty2" width="300" height="297" /></p>
<p>Dann lib Ordner updaten.</p>
<p>und -zack- da ist der ZEND Ordner samt inhalt und es kann losgehen.</p>The post <a href="https://nerdpress.org/2009/10/27/ein-projekt-mit-zend-framework-anlegen-via-usvn-und-subclipse/">Ein Projekt mit Zend Framework anlegen via USVN und Subclipse</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
