<?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>Erlend Klakegg Bergheim &#187; php</title>
	<atom:link href="http://klakegg.net/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://klakegg.net</link>
	<description></description>
	<lastBuildDate>Thu, 25 Nov 2010 09:43:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Destruction-driven development</title>
		<link>http://klakegg.net/2010/03/destruction-driven-development/</link>
		<comments>http://klakegg.net/2010/03/destruction-driven-development/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 10:27:46 +0000</pubDate>
		<dc:creator>Erlend</dc:creator>
				<category><![CDATA[programmering]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.averlend.com/?p=217</guid>
		<description><![CDATA[Jeg har kodet en del før jeg begynte på informatikk, men før stuiene var mønster (patterns) et ukjent begrep for meg. Siden PHP i lang tid var det foretrukne språket ble det gjerne gjort nyvinninger nettopp i dette språket (IRC-bot kan nevnes). For en tid tilbake nevnte jeg en av mine &#8220;gode&#8221; idéer fra den [...]]]></description>
			<content:encoded><![CDATA[<p>Jeg har kodet en del før jeg begynte på informatikk, men før stuiene var mønster (patterns) et ukjent begrep for meg. Siden <a href="http://php.net/">PHP</a> i lang tid var det foretrukne språket ble det gjerne gjort nyvinninger nettopp i dette språket (IRC-bot kan nevnes).</p>
<p>For en tid tilbake nevnte jeg en av mine &#8220;gode&#8221; idéer fra den gang for noen med-studenter, og øyeblikkelig kom navnet &#8220;destruction-driven development&#8221; opp. Konseptet er i og for seg ikke noe jeg har sett igjen i løpet av årene på Gløshaugen, samt at gjennomføringen er bundet mot utvikling på nett, fortrinnsvis i skripingspråk.</p>
<p>Av og til er det greit å hente inn noen standard-filer som blir til over tid (av litt for mange asiater på <a href="http://vark.com/">Aardvark</a> kalt &#8220;custom framework&#8221;) for å lage til en demo, simpel to-siders løsning eller lignende, og i den forbindelse fant jeg at jeg ofte glemte å kjøre metoden som skulle vise resultatet til en bruker (mye &#8220;feilretting&#8221;). Med dette knyttet opp mot <a href="http://www.smarty.net/">Smarty</a> endte jeg opp med å ønske å lage sider slik:</p>
<pre class="brush: php;">&lt;?php

require_once(&quot;autoload.php&quot;);
Template::setTemplate(&quot;page.tpl&quot;);

$t = Template::getInstance();
$t-&gt;assign(&quot;title&quot;, &quot;Forside&quot;);
$t-&gt;assign(&quot;text&quot;, &quot;Lorem ipsum...&quot;);

?&gt;</pre>
<p>Konseptet er å la presentasjon foregår på et punkt hvor man er sikker på at all logikk er kjørt, og hvilket bedre punkt enn ved kjøring av  <a href="http://php.net/manual/en/features.gc.php">Garbage Collector (GC)</a> finnes? Ved å la destruction-metoden til template-objektet, som er en subklasse av Smarty, til å kjøre <a href="http://www.smarty.net/manual/en/api.display.php">display()</a>-metoden trenger ikke kodesnutten over å gjøre det, samt at jeg slipper å duplisere kode for å vise vise innhold. Se gjerne det vedlagte <a href="http://klakegg.net/wp-content/uploads/2010/02/destruct.zip">eksempelprosjekt</a> som benytter Smarty.</p>
<p>Jeg ser i utgangspunktet to problemer med overstående kode, hvilket er grunnen til at jeg ikke vil bruke dette konseptet i prosjekter:</p>
<ol>
<li>Det vil gjøre prosjektet vanskeligere å feilrette.</li>
<li>Implementasjonen av GC kan endre seg, og ved å oppdatere PHP kan man oppleve at alle sider er blanke. (Les: flere ting som potensielt kan gå galt)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://klakegg.net/2010/03/destruction-driven-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Test av namespace i PHP</title>
		<link>http://klakegg.net/2008/03/test-av-namespace-i-php/</link>
		<comments>http://klakegg.net/2008/03/test-av-namespace-i-php/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 12:38:10 +0000</pubDate>
		<dc:creator>Erlend</dc:creator>
				<category><![CDATA[programmering]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.averlend.com/2008/03/03/test-av-namespace-i-php/</guid>
		<description><![CDATA[PHP 5.3 skal komme med støtte for namespace, og under lesing om namespace i PHP 5.3 oppdaget jeg fålgende setning: Same namespace name can be used in multiple files. For å teste dette hentet jeg ned snapshot av PHP 6.0 og kompilerte den direkte på ene maskinen (ups&#8230;). Deretter laget jeg noen filer. index.php: &#60;?php [...]]]></description>
			<content:encoded><![CDATA[<p>PHP 5.3 skal komme med støtte for namespace, og under lesing om <a href="http://www.php.net/namespaces">namespace</a> i PHP 5.3 oppdaget jeg fålgende setning:</p>
<blockquote><p>Same namespace name can be used in multiple files.</p></blockquote>
<p>For å teste dette hentet jeg ned snapshot av PHP 6.0 og kompilerte den direkte på ene maskinen (ups&#8230;). Deretter laget jeg noen filer.</p>
<p>index.php:</p>
<pre class="brush: php;">&lt;?php
function __autoload($class) {
require_once(&quot;bar.php&quot;);
}

require_once(&quot;foo.php&quot;);

test::foo::test();
test::bar::test();
?&gt;</pre>
<p>foo.php:</p>
<pre class="brush: php;">&lt;?php
namespace test;

class foo {
public static function test() {
echo &quot;foo&quot;;
}
}
?&gt;</pre>
<p>bar.php:</p>
<pre class="brush: php;">&lt;?php
namespace test;

class bar {
public static function test() {
echo &quot;bar&quot;;
}
}
?&gt;</pre>
<p>Resultatet av kjøringen ble &#8220;foobar&#8221;, så da kan man altså &#8220;fylle opp&#8221; et namespace ved behov.</p>
<p>Nå gjenstår det bare å få tak i PHP 5.3 som ferdige pakker til Ubuntu.</p>
]]></content:encoded>
			<wfw:commentRss>http://klakegg.net/2008/03/test-av-namespace-i-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

