<?xml version="1.0" encoding="ISO-8859-15"?>
<rss version="2.0"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:atom="http://www.w3.org/2005/Atom"
>
	<channel>
		<copyright>Copyright 1998-2008 Tweakers.net BV</copyright>
		<pubDate>Thu, 04 Dec 2008 16:14:56 GMT</pubDate>
		<lastBuildDate>Thu, 04 Dec 2008 16:14:56 GMT</lastBuildDate>
		<description>GoT - list_messages</description>
		<image>
			<link>http://gathering.tweakers.net/</link>
			<title>Gathering of Tweakers</title>
			<url>http://tweakimg.net/g/if/logo.gif</url>
		</image>
		<language>nl-nl</language>
		<link>http://gathering.tweakers.net/rss/list_messages/1304319</link>
		<atom:link href="http://gathering.tweakers.net/rss/list_messages/1304319" rel="self" type="application/rss+xml" />
		<title>[php]probleem aanroepen classes vanuit andere classes - Programming - GoT</title>
		<webMaster>gathering@tweakers.net (Administrator)</webMaster>
		<item>
			<title>link0007</title>
			<link>http://gathering.tweakers.net/forum/list_message/30475218#30475218</link>
			<author>dummy@example.com (link0007)</author>
			<description>donderdag 24 juli 2008 20:01
Hallo,

Ik ben nu bezig mijn site opnieuw op te bouwen, en ga daarvoor gebruik maken van OOP. Ik heb in mijn design plannen 6 classes staan die functies bevatten voor verschillende delen van de site. 
Nu ik klaar ben met de tekeningen en programma structuur diagrammen, ben ik begonnen met het programmeren van de eerste paar testjes. Maar vrijwel direct liep ik tegen design problemen aan.

Ik heb in mijn voorbeeld 2 classes:
- scenes
- database

In de test staat deze code:PHP:123456789101112131415&#60;?php
&#160;&#160;&#160;&#160;include&#160;'mysqli_extended.php';
&#160;&#160;&#160;&#160;include&#160;'database.php';
&#160;&#160;&#160;&#160;include&#160;'scene.php';

&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$odatabase&#160;=&#160;new&#160;database;
&#160;&#160;&#160;&#160;$oscene=&#160;new&#160;scene;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$db&#160;=&#160;new&#160;mysqli_extended;

&#160;&#160;&#160;&#160;$list&#160;=&#160;$oscene-&#62;details(1);
&#160;&#160;&#160;&#160;foreach&#160;($list&#160;as&#160;$value)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;$value.&#34;&#60;br&#160;/&#62;&#34;;
&#160;&#160;&#160;&#160;}
?&#62;Dan heb ik in database.phpPHP:1234567891011121314151617181920212223242526272829303132&#60;?php
class&#160;database
{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;function&#160;column_list($type)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;($type&#160;==&#160;'scene')
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;&#34;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_id,scene_alive,scene_ip,scene_filename,scene_size,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_title,scene_author,scene_description,scene_password,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_datetime,scene_rating,scene_nr_downloads,scene_nr_views,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_nr_comments,scene_nr_ratings,scene_response_to,scene_last_edit,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_last_edit_by&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;public&#160;function&#160;fetch_details($type,$id)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;($type='scene')
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query&#160;=&#160;$db-&#62;prepare(&#34;SELECT&#160;&#34;.$this-&#62;column_list('scene').&#34;&#160;FROM&#160;box_scenes&#160;WHERE&#160;scene_id&#160;=&#160;?&#34;);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query-&#62;bind_param('i',&#160;$id);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query-&#62;execute();&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query-&#62;store_result();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$line&#160;=&#160;$query-&#62;fetch_assoc();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query-&#62;close();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;&#34;fetch&#160;flawless.&#34;;
&#160;&#160;&#160;&#160;return&#160;$line;
&#160;&#160;&#160;&#160;}
}
?&#62;En in scene.php het volgende:PHP:12345678910111213141516171819&#60;?php
class&#160;scene
{
&#160;&#160;&#160;&#160;public&#160;function&#160;details($scene_id)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;&#34;start&#160;of&#160;function&#160;details()&#160;&#60;br&#160;/&#62;&#34;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_array&#160;=&#160;$odatabase-&#62;fetch_details('scene',$scene_id);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;&#34;database&#160;linked&#160;in&#160;function&#160;details()&#160;&#60;br&#160;/&#62;&#34;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;($scene_array['scene_alive']&#160;==&#160;true)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;$scene_array;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;false;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;}
}
?&#62;Sorry als het een beetje op een code-dump lijkt, maar ik heb het idee dat het allemaal al zo minimaal mogelijk is nu.
Anyway, dit werkt niet, en logisch ook.


Maar wat is nu de beste manier om in elke class en elke functie toegang te geven tot de verschillende classes?

Globals moet ik ontwijken heb ik gehoord. Maar ik snap die singletons niet helemaal. Ik heb het geprobeerd maar daar kwamen ook nog steeds errors van. En daarnaast moest ik het in iedere functie opnieuw doen? Ik wil gewoon een keer in de constructor alle classes binnen slepen, maar niet meerdere objecten van dezelfde class hebben.

Ik wil bijvoorbeeld niet dadelijk 7x een db object openen.

Kan iemand me uitleggen hoe ik hier alles op orde krijg?

offtopic:Ik weet niet zeker of dit taal-afhankelijk is, maar ik meen ooit eens gelezen te hebben dat PHP niet volledig OOP is.</description>
			<content:encoded><![CDATA[donderdag 24 juli 2008 20:01<br />
Hallo,<br>
<br>
Ik ben nu bezig mijn site opnieuw op te bouwen, en ga daarvoor gebruik maken van OOP. Ik heb in mijn design plannen 6 classes staan die functies bevatten voor verschillende delen van de site. <br>
Nu ik klaar ben met de tekeningen en programma structuur diagrammen, ben ik begonnen met het programmeren van de eerste paar testjes. Maar vrijwel direct liep ik tegen design problemen aan.<br>
<br>
Ik heb in mijn voorbeeld 2 classes:<br>
- scenes<br>
- database<br>
<br>
In de test staat deze code:<br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php</span>
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">include</span>&#160;<span class="code_string">'mysqli_extended.php'</span>;
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">include</span>&#160;<span class="code_string">'database.php'</span>;
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">include</span>&#160;<span class="code_string">'scene.php'</span>;
<br>
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$odatabase</span>&#160;=&#160;<span class="code_keyword">new</span>&#160;<span class="code_ident">database</span>;
<br>&#160;&#160;&#160;&#160;<span class="code_ident">$oscene</span>=&#160;<span class="code_keyword">new</span>&#160;<span class="code_ident">scene</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$db</span>&#160;=&#160;<span class="code_keyword">new</span>&#160;<span class="code_ident">mysqli_extended</span>;
<br>
<br>&#160;&#160;&#160;&#160;<span class="code_ident">$list</span>&#160;=&#160;<span class="code_ident">$oscene</span>-&#62;<span class="code_ident">details</span>(<span class="code_number">1</span>);
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">foreach</span>&#160;(<span class="code_ident">$list</span>&#160;<span class="code_keyword">as</span>&#160;<span class="code_ident">$value</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">echo</span>&#160;<span class="code_ident">$value</span>.<span class="code_string">&#34;&#60;br&#160;/&#62;&#34;</span>;
<br>&#160;&#160;&#160;&#160;}
<br><span class="code_preproc">?&#62;</span></code></div></td></tr></table><br>Dan heb ik in database.php<br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php</span>
<br><span class="code_keyword">class</span>&#160;<span class="code_ident">database</span>
<br>{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">column_list</span>(<span class="code_ident">$type</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(<span class="code_ident">$type</span>&#160;==&#160;<span class="code_string">'scene'</span>)
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_string">&#34;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_id,scene_alive,scene_ip,scene_filename,scene_size,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_title,scene_author,scene_description,scene_password,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_datetime,scene_rating,scene_nr_downloads,scene_nr_views,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_nr_comments,scene_nr_ratings,scene_response_to,scene_last_edit,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_last_edit_by&#160;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">fetch_details</span>(<span class="code_ident">$type</span>,<span class="code_ident">$id</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(<span class="code_ident">$type</span>=<span class="code_string">'scene'</span>)
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>&#160;=&#160;<span class="code_ident">$db</span>-&#62;<span class="code_ident">prepare</span>(<span class="code_string">&#34;SELECT&#160;&#34;</span>.<span class="code_ident">$this</span>-&#62;<span class="code_ident">column_list</span>(<span class="code_string">'scene'</span>).<span class="code_string">&#34;&#160;FROM&#160;box_scenes&#160;WHERE&#160;scene_id&#160;=&#160;?&#34;</span>);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">bind_param</span>(<span class="code_string">'i'</span>,&#160;<span class="code_ident">$id</span>);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">execute</span>();&#160;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">store_result</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$line</span>&#160;=&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">fetch_assoc</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">close</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">echo</span>&#160;<span class="code_string">&#34;fetch&#160;flawless.&#34;</span>;
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_ident">$line</span>;
<br>&#160;&#160;&#160;&#160;}
<br>}
<br><span class="code_preproc">?&#62;</span></code></div></td></tr></table><br>En in scene.php het volgende:<br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php</span>
<br><span class="code_keyword">class</span>&#160;<span class="code_ident">scene</span>
<br>{
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">details</span>(<span class="code_ident">$scene_id</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">echo</span>&#160;<span class="code_string">&#34;start&#160;of&#160;function&#160;details()&#160;&#60;br&#160;/&#62;&#34;</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_array</span>&#160;=&#160;<span class="code_ident">$odatabase</span>-&#62;<span class="code_ident">fetch_details</span>(<span class="code_string">'scene'</span>,<span class="code_ident">$scene_id</span>);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">echo</span>&#160;<span class="code_string">&#34;database&#160;linked&#160;in&#160;function&#160;details()&#160;&#60;br&#160;/&#62;&#34;</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(<span class="code_ident">$scene_array</span>[<span class="code_string">'scene_alive'</span>]&#160;==&#160;<span class="code_keyword">true</span>)
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_ident">$scene_array</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">else</span>
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_keyword">false</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;}
<br>}
<br><span class="code_preproc">?&#62;</span></code></div></td></tr></table><br>Sorry als het een beetje op een code-dump lijkt, maar ik heb het idee dat het allemaal al zo minimaal mogelijk is nu.<br>
Anyway, dit werkt niet, en logisch ook.<br>
<br>
<br>
Maar wat is nu de beste manier om in elke class en elke functie toegang te geven tot de verschillende classes?<br>
<br>
Globals moet ik ontwijken heb ik gehoord. Maar ik snap die singletons niet helemaal. Ik heb het geprobeerd maar daar kwamen ook nog steeds errors van. En daarnaast moest ik het in iedere functie opnieuw doen? Ik wil gewoon een keer in de constructor alle classes binnen slepen, maar niet meerdere objecten van dezelfde class hebben.<br>
<br>
Ik wil bijvoorbeeld niet dadelijk 7x een db object openen.<br>
<br>
Kan iemand me uitleggen hoe ik hier alles op orde krijg?<br>
<br>
<div class="offtopic">offtopic:<br>Ik weet niet zeker of dit taal-afhankelijk is, maar ik meen ooit eens gelezen te hebben dat PHP niet volledig OOP is.</div>]]></content:encoded>
			<guid isPermaLink="false">http://gathering.tweakers.net/forum/list_message/30475218#30475218</guid>
			<pubDate>Thu, 24 Jul 2008 18:01:11 GMT</pubDate>
		</item>
		<item>
			<title>link0007</title>
			<link>http://gathering.tweakers.net/forum/list_message/30475473#30475473</link>
			<author>dummy@example.com (link0007)</author>
			<description>donderdag 24 juli 2008 21:05
Laat maar, heb het probleem opgelost door rond te klooien met dubbele dubbele punten. Maar kan iemand me zeggen of de volgende oplossing goed is?

programma:PHP:12345678910111213&#60;?php
&#160;&#160;&#160;&#160;include&#160;'mysqli_extended.php';
&#160;&#160;&#160;&#160;include&#160;'database.php';
&#160;&#160;&#160;&#160;include&#160;'scene.php';

&#160;&#160;&#160;&#160;$scene&#160;=&#38;&#160;scene::getInstance();
&#160;&#160;&#160;&#160;$database&#160;=&#38;&#160;database::getInstance();
&#160;&#160;&#160;&#160;$list&#160;=&#160;$scene-&#62;details(1);
&#160;&#160;&#160;&#160;foreach&#160;($list&#160;as&#160;$value)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;$value.&#34;&#60;br&#160;/&#62;&#34;;
&#160;&#160;&#160;&#160;}
?&#62;scene.php:PHP:1234567891011121314151617181920212223242526272829303132&#60;?php
class&#160;scene
{
&#160;&#160;&#160;&#160;//&#160;object&#160;instance
&#160;&#160;&#160;&#160;private&#160;static&#160;$instance;
&#160;&#160;&#160;&#160;private&#160;static&#160;$database;

&#160;&#160;&#160;&#160;public&#160;static&#160;function&#160;getInstance()&#160;
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(!scene::$instance&#160;instanceof&#160;self)&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene::$instance&#160;=&#160;new&#160;self();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene::$database&#160;=&#38;&#160;database::getInstance();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;scene::$instance;
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;public&#160;function&#160;details($scene_id)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;&#34;start&#160;of&#160;function&#160;details()&#160;&#60;br&#160;/&#62;&#34;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_array&#160;=&#160;scene::$database-&#62;fetch_details('scene',$scene_id);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;&#34;database&#160;linked&#160;in&#160;function&#160;details()&#160;&#60;br&#160;/&#62;&#34;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;($scene_array['scene_alive']&#160;==&#160;true)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;$scene_array;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;false;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;}
}
?&#62;database.php:PHP:12345678910111213141516171819202122232425262728293031323334353637383940414243444546&#60;?php
class&#160;database
{
&#160;&#160;&#160;&#160;//&#160;object&#160;instance
&#160;&#160;&#160;&#160;private&#160;static&#160;$instance;
&#160;&#160;&#160;&#160;private&#160;static&#160;$db;

&#160;&#160;&#160;&#160;public&#160;static&#160;function&#160;getInstance()&#160;
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(!database::$instance&#160;instanceof&#160;self)&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;database::$instance&#160;=&#160;new&#160;self();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;database::$db&#160;=&#160;new&#160;mysqli_Extended('localhost','deb10784_phunbox','desk270jet','deb10784_phunbox');&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;database::$instance;
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;public&#160;function&#160;column_list($type)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;($type&#160;==&#160;'scene')
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;&#34;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_id,scene_alive,scene_ip,scene_filename,scene_size,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_title,scene_author,scene_description,scene_password,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_datetime,scene_rating,scene_nr_downloads,scene_nr_views,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_nr_comments,scene_nr_ratings,scene_response_to,scene_last_edit,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_last_edit_by&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;public&#160;function&#160;fetch_details($type,$id)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;($type='scene')
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query&#160;=&#160;database::$db-&#62;prepare(&#34;SELECT&#160;&#34;.database::$instance-&#62;column_list('scene').&#34;&#160;FROM&#160;pbox_scenes&#160;WHERE&#160;scene_id&#160;=&#160;?&#34;);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query-&#62;bind_param('i',&#160;$id);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query-&#62;execute();&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query-&#62;store_result();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$line&#160;=&#160;$query-&#62;fetch_assoc();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;$line;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$query-&#62;close();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;&#34;fetch&#160;flawless.&#34;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;$line;
&#160;&#160;&#160;&#160;}
}
?&#62;Het lijkt mij best proper, maar ik hoor het graag als het beter kan! Ben van plan deze zomer eens goed in PHP te duiken  </description>
			<content:encoded><![CDATA[donderdag 24 juli 2008 21:05<br />
Laat maar, heb het probleem opgelost door rond te klooien met dubbele dubbele punten. Maar kan iemand me zeggen of de volgende oplossing goed is?<br>
<br>
programma:<br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php</span>
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">include</span>&#160;<span class="code_string">'mysqli_extended.php'</span>;
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">include</span>&#160;<span class="code_string">'database.php'</span>;
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">include</span>&#160;<span class="code_string">'scene.php'</span>;
<br>
<br>&#160;&#160;&#160;&#160;<span class="code_ident">$scene</span>&#160;=&#38;&#160;<span class="code_ident">scene</span>::<span class="code_method">getInstance</span>();
<br>&#160;&#160;&#160;&#160;<span class="code_ident">$database</span>&#160;=&#38;&#160;<span class="code_ident">database</span>::<span class="code_method">getInstance</span>();
<br>&#160;&#160;&#160;&#160;<span class="code_ident">$list</span>&#160;=&#160;<span class="code_ident">$scene</span>-&#62;<span class="code_ident">details</span>(<span class="code_number">1</span>);
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">foreach</span>&#160;(<span class="code_ident">$list</span>&#160;<span class="code_keyword">as</span>&#160;<span class="code_ident">$value</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">echo</span>&#160;<span class="code_ident">$value</span>.<span class="code_string">&#34;&#60;br&#160;/&#62;&#34;</span>;
<br>&#160;&#160;&#160;&#160;}
<br><span class="code_preproc">?&#62;</span></code></div></td></tr></table><br>scene.php:<br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php</span>
<br><span class="code_keyword">class</span>&#160;<span class="code_ident">scene</span>
<br>{
<br>&#160;&#160;&#160;&#160;<span class="code_comment">//&#160;object&#160;instance</span>
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">private</span>&#160;<span class="code_keyword">static</span>&#160;<span class="code_ident">$instance</span>;
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">private</span>&#160;<span class="code_keyword">static</span>&#160;<span class="code_ident">$database</span>;
<br>
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">static</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">getInstance</span>()&#160;
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(!<span class="code_ident">scene</span>::<span class="code_ident">$instance</span>&#160;<span class="code_ident">instanceof</span>&#160;<span class="code_ident">self</span>)&#160;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">scene</span>::<span class="code_ident">$instance</span>&#160;=&#160;<span class="code_keyword">new</span>&#160;<span class="code_method">self</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">scene</span>::<span class="code_ident">$database</span>&#160;=&#38;&#160;<span class="code_ident">database</span>::<span class="code_method">getInstance</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_ident">scene</span>::<span class="code_ident">$instance</span>;
<br>&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">details</span>(<span class="code_ident">$scene_id</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">echo</span>&#160;<span class="code_string">&#34;start&#160;of&#160;function&#160;details()&#160;&#60;br&#160;/&#62;&#34;</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_array</span>&#160;=&#160;<span class="code_ident">scene</span>::<span class="code_ident">$database</span>-&#62;<span class="code_ident">fetch_details</span>(<span class="code_string">'scene'</span>,<span class="code_ident">$scene_id</span>);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">echo</span>&#160;<span class="code_string">&#34;database&#160;linked&#160;in&#160;function&#160;details()&#160;&#60;br&#160;/&#62;&#34;</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(<span class="code_ident">$scene_array</span>[<span class="code_string">'scene_alive'</span>]&#160;==&#160;<span class="code_keyword">true</span>)
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_ident">$scene_array</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">else</span>
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_keyword">false</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;}
<br>}
<br><span class="code_preproc">?&#62;</span></code></div></td></tr></table><br>database.php:<br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br>33<br>34<br>35<br>36<br>37<br>38<br>39<br>40<br>41<br>42<br>43<br>44<br>45<br>46<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php</span>
<br><span class="code_keyword">class</span>&#160;<span class="code_ident">database</span>
<br>{
<br>&#160;&#160;&#160;&#160;<span class="code_comment">//&#160;object&#160;instance</span>
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">private</span>&#160;<span class="code_keyword">static</span>&#160;<span class="code_ident">$instance</span>;
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">private</span>&#160;<span class="code_keyword">static</span>&#160;<span class="code_ident">$db</span>;
<br>
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">static</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">getInstance</span>()&#160;
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(!<span class="code_ident">database</span>::<span class="code_ident">$instance</span>&#160;<span class="code_ident">instanceof</span>&#160;<span class="code_ident">self</span>)&#160;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">database</span>::<span class="code_ident">$instance</span>&#160;=&#160;<span class="code_keyword">new</span>&#160;<span class="code_method">self</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">database</span>::<span class="code_ident">$db</span>&#160;=&#160;<span class="code_keyword">new</span>&#160;<span class="code_method">mysqli_Extended</span>(<span class="code_string">'localhost'</span>,<span class="code_string">'deb10784_phunbox'</span>,<span class="code_string">'desk270jet'</span>,<span class="code_string">'deb10784_phunbox'</span>);&#160;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_ident">database</span>::<span class="code_ident">$instance</span>;
<br>&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">column_list</span>(<span class="code_ident">$type</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(<span class="code_ident">$type</span>&#160;==&#160;<span class="code_string">'scene'</span>)
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_string">&#34;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_id,scene_alive,scene_ip,scene_filename,scene_size,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_title,scene_author,scene_description,scene_password,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_datetime,scene_rating,scene_nr_downloads,scene_nr_views,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_nr_comments,scene_nr_ratings,scene_response_to,scene_last_edit,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene_last_edit_by&#160;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">fetch_details</span>(<span class="code_ident">$type</span>,<span class="code_ident">$id</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(<span class="code_ident">$type</span>=<span class="code_string">'scene'</span>)
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>&#160;=&#160;<span class="code_ident">database</span>::<span class="code_ident">$db</span>-&#62;<span class="code_ident">prepare</span>(<span class="code_string">&#34;SELECT&#160;&#34;</span>.<span class="code_ident">database</span>::<span class="code_ident">$instance</span>-&#62;<span class="code_ident">column_list</span>(<span class="code_string">'scene'</span>).<span class="code_string">&#34;&#160;FROM&#160;pbox_scenes&#160;WHERE&#160;scene_id&#160;=&#160;?&#34;</span>);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">bind_param</span>(<span class="code_string">'i'</span>,&#160;<span class="code_ident">$id</span>);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">execute</span>();&#160;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">store_result</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$line</span>&#160;=&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">fetch_assoc</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_ident">$line</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$query</span>-&#62;<span class="code_ident">close</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">echo</span>&#160;<span class="code_string">&#34;fetch&#160;flawless.&#34;</span>;
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_ident">$line</span>;
<br>&#160;&#160;&#160;&#160;}
<br>}
<br><span class="code_preproc">?&#62;</span></code></div></td></tr></table><br>Het lijkt mij best proper, maar ik hoor het graag als het beter kan! Ben van plan deze zomer eens goed in PHP te duiken  <img src="http://gathering.tweakers.net/global/smileys/smile.gif" width="15"  height="15" alt=":)" class="smiley">]]></content:encoded>
			<guid isPermaLink="false">http://gathering.tweakers.net/forum/list_message/30475473#30475473</guid>
			<pubDate>Thu, 24 Jul 2008 19:05:35 GMT</pubDate>
		</item>
		<item>
			<title>Snake</title>
			<link>http://gathering.tweakers.net/forum/list_message/30475479#30475479</link>
			<author>dummy@example.com (Snake)</author>
			<description>donderdag 24 juli 2008 21:07
Database.php, regel 19, moet dubbele = zijn </description>
			<content:encoded><![CDATA[donderdag 24 juli 2008 21:07<br />
Database.php, regel 19, moet dubbele = zijn <img src="http://gathering.tweakers.net/global/smileys/wink.gif" width="15"  height="15" alt=";)" class="smiley">]]></content:encoded>
			<guid isPermaLink="false">http://gathering.tweakers.net/forum/list_message/30475479#30475479</guid>
			<pubDate>Thu, 24 Jul 2008 19:07:27 GMT</pubDate>
		</item>
		<item>
			<title>Cheatah</title>
			<link>http://gathering.tweakers.net/forum/list_message/30475536#30475536</link>
			<author>dummy@example.com (Cheatah)</author>
			<description>donderdag 24 juli 2008 21:19
Waarom maak je $database een static property van scene? Waarom vind ik maar &#233;&#233;n keer $this in je hele source code? Dat lijkt me niet echt een goed teken. Het geheel is gewoon slecht ontworpen. Dat blijkt alleen al uit het feit dat je drie classes zonder parameters instantieert.

De scene class zou sowieso ofwel een constructor moeten hebben waaraan je $database meegeeft, of een losse functie waarmee je $database doorgeeft. Die scene class moet dan voor instanties die database class in een property opslaan. En dan dus g&#233;&#233;n static property, maar bijvoorbeeld $this-&#62;database.

En gebruik hoofdletters voor je klassenamen. Waarom doe je dat niet? Is dat een gevalletje &#34;ik vind dat niet zo mooi staan&#34;?

Als je echt object ge&#246;rienteerd wilt leren programmeren doe je er beter aan bijvoorbeeld Visual C# 2008 Express Edition te installeren en daarmee aan de gang te gaan. Daarmee heb je meteen een heel aantal basisclasses waar je veel beter mee leert programmeren dan met zelfgebakken classes vanaf scratch.

Volgens mij is dit weer typisch een voorbeeld van eigenlijk nog niet toe zijn aan het bouwen van applicaties. Je mist simpelweg de basics, maar wilt al wel meteen iets compleet werkends maken.</description>
			<content:encoded><![CDATA[donderdag 24 juli 2008 21:19<br />
Waarom maak je $database een static property van scene? Waarom vind ik maar &#233;&#233;n keer $this in je hele source code? Dat lijkt me niet echt een goed teken. Het geheel is gewoon slecht ontworpen. Dat blijkt alleen al uit het feit dat je drie classes zonder parameters instantieert.<br>
<br>
De scene class zou sowieso ofwel een constructor moeten hebben waaraan je $database meegeeft, of een losse functie waarmee je $database doorgeeft. Die scene class moet dan voor instanties die database class in een property opslaan. En dan dus g&#233;&#233;n static property, maar bijvoorbeeld $this-&#62;database.<br>
<br>
En gebruik hoofdletters voor je klassenamen. Waarom doe je dat niet? Is dat een gevalletje &#34;ik vind dat niet zo mooi staan&#34;?<br>
<br>
Als je echt object ge&#246;rienteerd wilt leren programmeren doe je er beter aan bijvoorbeeld Visual C# 2008 Express Edition te installeren en daarmee aan de gang te gaan. Daarmee heb je meteen een heel aantal basisclasses waar je veel beter mee leert programmeren dan met zelfgebakken classes vanaf scratch.<br>
<br>
Volgens mij is dit weer typisch een voorbeeld van eigenlijk nog niet toe zijn aan het bouwen van applicaties. Je mist simpelweg de basics, maar wilt al wel meteen iets compleet werkends maken.]]></content:encoded>
			<guid isPermaLink="false">http://gathering.tweakers.net/forum/list_message/30475536#30475536</guid>
			<pubDate>Thu, 24 Jul 2008 19:19:29 GMT</pubDate>
		</item>
		<item>
			<title>link0007</title>
			<link>http://gathering.tweakers.net/forum/list_message/30475593#30475593</link>
			<author>dummy@example.com (link0007)</author>
			<description>donderdag 24 juli 2008 21:33
#cheatah: Wat bedoel je metquote:Dat blijkt alleen al uit het feit dat je drie classes zonder parameters instantieert.? Als ik geen parameters nodig heb dan heb ik die toch niet nodig? Er komt nog veel meer bij, dus een constructor komt er nog wel, met parameters. Maar eerst moet ik een basis hebben staan.

Inderdaad vind ik zaken zoals ditcode:1
database::$db-&#62;prepare(....)Vervelend, maar hoe zorg ik er dan voor dat het weer gewoon &#34;$db&#34; word, of &#34;$this-&#62;$db&#34;?</description>
			<content:encoded><![CDATA[donderdag 24 juli 2008 21:33<br />
#cheatah: Wat bedoel je met<blockquote><div>quote:</div><div class="message-quote-div">Dat blijkt alleen al uit het feit dat je drie classes zonder parameters instantieert.</div></blockquote>? Als ik geen parameters nodig heb dan heb ik die toch niet nodig? Er komt nog veel meer bij, dus een constructor komt er nog wel, met parameters. Maar eerst moet ik een basis hebben staan.<br>
<br>
Inderdaad vind ik zaken zoals dit<br>code:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
</pre></td><td class="phphighlightcode"><div><pre>database::$db-&#62;prepare(....)</pre></div></td></tr></table><br>Vervelend, maar hoe zorg ik er dan voor dat het weer gewoon &#34;$db&#34; word, of &#34;$this-&#62;$db&#34;?]]></content:encoded>
			<guid isPermaLink="false">http://gathering.tweakers.net/forum/list_message/30475593#30475593</guid>
			<pubDate>Thu, 24 Jul 2008 19:33:06 GMT</pubDate>
		</item>
		<item>
			<title>Borizz</title>
			<link>http://gathering.tweakers.net/forum/list_message/30475801#30475801</link>
			<author>dummy@example.com (Borizz)</author>
			<description>donderdag 24 juli 2008 22:17
quote:link0007 schreef op donderdag 24 juli 2008 @ 21:33:
#cheatah: Wat bedoel je met 

[...]

? Als ik geen parameters nodig heb dan heb ik die toch niet nodig? Er komt nog veel meer bij, dus een constructor komt er nog wel, met parameters. Maar eerst moet ik een basis hebben staan.

Inderdaad vind ik zaken zoals ditcode:1
database::$db-&#62;prepare(....)Vervelend, maar hoe zorg ik er dan voor dat het weer gewoon &#34;$db&#34; word, of &#34;$this-&#62;$db&#34;?PHP:1234567&#60;?php
class&#160;Scene&#160;{
&#160;&#160;&#160;&#160;protected&#160;$db;

&#160;&#160;&#160;&#160;public&#160;function&#160;__construct(Database&#160;$db)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$this-&#62;db&#160;=&#160;$db;
&#160;&#160;&#160;&#160;}
}
?&#62;Oftewel lees je even in in de programmeertaal die je gebruikt... Waarom zou je van al die classes maar 1 instance willen hebben trouwens? Volgens mij moet je je toch echt beter inlezen in OO design en programmeren.</description>
			<content:encoded><![CDATA[donderdag 24 juli 2008 22:17<br />
<blockquote><div>quote:</div><div class="message-quote-div"><b><a href="http://gathering.tweakers.net/forum/list_message/30475593#30475593" rel="external" class="messagelink">link0007 schreef op donderdag 24 juli 2008 @ 21:33</a>:</b><br>
#cheatah: Wat bedoel je met <br>
<br>
[...]<br>
<br>
? Als ik geen parameters nodig heb dan heb ik die toch niet nodig? Er komt nog veel meer bij, dus een constructor komt er nog wel, met parameters. Maar eerst moet ik een basis hebben staan.<br>
<br>
Inderdaad vind ik zaken zoals dit<br>code:<br><table class="phphighlight"><tr><td class="phphighlightline"><pre>1
</pre></td><td class="phphighlightcode"><div><pre>database::$db-&#62;prepare(....)</pre></div></td></tr></table><br>Vervelend, maar hoe zorg ik er dan voor dat het weer gewoon &#34;$db&#34; word, of &#34;$this-&#62;$db&#34;?</div></blockquote><br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code><br>1<br>2<br>3<br>4<br>5<br>6<br>7<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php
<br></span><span class="code_keyword">class</span>&#160;<span class="code_ident">Scene</span>&#160;{
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">protected</span>&#160;<span class="code_ident">$db</span>;
<br>
<br>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">__construct</span>(<span class="code_ident">Database</span>&#160;<span class="code_ident">$db</span>)&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$this</span>-&#62;<span class="code_ident">db</span>&#160;=&#160;<span class="code_ident">$db</span>;
<br>&#160;&#160;&#160;&#160;}
<br>}<span class="code_preproc">
<br>?&#62;</span></code></div></td></tr></table><br>Oftewel lees je even in in de programmeertaal die je gebruikt... Waarom zou je van al die classes maar 1 instance willen hebben trouwens? Volgens mij moet je je toch echt beter inlezen in OO design en programmeren.]]></content:encoded>
			<guid isPermaLink="false">http://gathering.tweakers.net/forum/list_message/30475801#30475801</guid>
			<pubDate>Thu, 24 Jul 2008 20:17:43 GMT</pubDate>
		</item>
		<item>
			<title>Cascade</title>
			<link>http://gathering.tweakers.net/forum/list_message/30476024#30476024</link>
			<author>dummy@example.com (Cascade)</author>
			<description>donderdag 24 juli 2008 23:09
Wat je nu doet is nog procedureel programmeren, alleen dan met de procedures in classes gestopt en daarna om &#039;beperkingen&#039; van die vorm heen werken (singletons gebruiken als een verkapte global maar dan binnen een class zelf). Dat maakt het geen OOP.

Het gebruiken van een singleton voor een database connectie vind ik dan nog geen slecht idee, als je als doel hebt om ook maar 1 open connectie naar je database toe te staan (maar doet die mysqli_extended class dat al niet?).

Als advies: je moet eens goed nadenken over wat jouw class scene allemaal moet doen en of die class database wel nodig is. 

Je kan om te beginnen dit doen:
- ga na welke eigenschappen een &#039;scene&#039; heeft, zet die als property in de class. Zoals het nu is, staan ze in een array die jouw functie fetch_details teruggeeft, heeft zo dus geen relatie met een specifiek Scene object...
- ga na hoe je die eigenschappen kan invullen als je een nieuwe instance van die class maakt. Ga je parameters via de constructor meegeven? Maak je functies daar voor? Heb je hier een functie nodig die het object vult vanuit de database?
Voorbeeld:PHP:1&#60;?php
public&#160;function&#160;fetchSceneFromDatabase(&#160;$db,&#160;$sceneId&#160;)
?&#62;- welke bewerkingen kan je op een scene toepassen? Maak daar (relevante) functies voor in de class.
- kan je de scene ook weer opslaan in de database? Nog een functie van de class Scene.
- aanleren om fatsoenlijke foutafhandeling te gebruiken.

Ik zou in eerste instantie de array met velden voor een scene uit die class database halen en naar de class Scene zelf verhuizen. Als je meer onder de knie hebt van OOP en wat patterns daarvan kan je later altijd nog naar een volwaardige &#039;data abstraction layer&#039; gaan (indien nodig).</description>
			<content:encoded><![CDATA[donderdag 24 juli 2008 23:09<br />
Wat je nu doet is nog procedureel programmeren, alleen dan met de procedures in classes gestopt en daarna om &#039;beperkingen&#039; van die vorm heen werken (singletons gebruiken als een verkapte global maar dan binnen een class zelf). Dat maakt het geen OOP.<br>
<br>
Het gebruiken van een singleton voor een database connectie vind ik dan nog geen slecht idee, als je als doel hebt om ook maar 1 open connectie naar je database toe te staan (maar doet die mysqli_extended class dat al niet?).<br>
<br>
Als advies: je moet eens goed nadenken over wat jouw class <i>scene</i> allemaal moet doen en of die class <i>database</i> wel nodig is. <br>
<br>
Je kan <i>om te beginnen</i> dit doen:<br>
- ga na welke eigenschappen een &#039;scene&#039; heeft, zet die als property in de class. Zoals het nu is, staan ze in een array die jouw functie fetch_details teruggeeft, heeft zo dus geen relatie met een specifiek Scene object...<br>
- ga na hoe je die eigenschappen kan invullen als je een nieuwe instance van die class maakt. Ga je parameters via de constructor meegeven? Maak je functies daar voor? Heb je hier een functie nodig die het object vult vanuit de database?<br>
Voorbeeld:<br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code><br>1<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php
<br></span><span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">fetchSceneFromDatabase</span>(&#160;<span class="code_ident">$db</span>,&#160;<span class="code_ident">$sceneId</span>&#160;)<span class="code_preproc">
<br>?&#62;</span></code></div></td></tr></table><br>- welke bewerkingen kan je op een scene toepassen? Maak daar (relevante) functies voor in de class.<br>
- kan je de scene ook weer opslaan in de database? Nog een functie van de class Scene.<br>
- aanleren om fatsoenlijke foutafhandeling te gebruiken.<br>
<br>
Ik zou in eerste instantie de array met velden voor een scene uit die class <i>database</i> halen en naar de class Scene zelf verhuizen. Als je meer onder de knie hebt van OOP en wat patterns daarvan kan je later altijd nog naar een volwaardige &#039;data abstraction layer&#039; gaan (indien nodig).]]></content:encoded>
			<guid isPermaLink="false">http://gathering.tweakers.net/forum/list_message/30476024#30476024</guid>
			<pubDate>Thu, 24 Jul 2008 21:09:10 GMT</pubDate>
		</item>
		<item>
			<title>link0007</title>
			<link>http://gathering.tweakers.net/forum/list_message/30476207#30476207</link>
			<author>dummy@example.com (link0007)</author>
			<description>vrijdag 25 juli 2008 00:14
Bedankt voor de opbouwende post 

Het is inderdaad waar dat OOP voor mij enorm lastig lijkt nu.. Ben al jaren gewent aan pascal, en daar ging object oriented programmeren niet echt mee. 

De applicatie die ik ga maken is in principe vergelijkbaar met iets als youtube. Dit is zoals de site nu is: http://www.phunbox.net/

De nieuwe site zal dan wel meer features hebben (gebruikers etc), maar kwa opbouw zal het er veel op lijken.

Daarom heb ik in mijn tekeningen deze classes bedacht:

- scene
- database
- backend
- user
- comment
- administration

Wat ik uiteindelijk wil, is dat ik de hele site opnieuw kan schrijven, op een manier die me beter instaat stelt dingen aan te passen, nieuwe dingen toe te voegen.. Een modulair ontwerp zeg maar.

Wat ik nu heb kwa functies in bijvoorbeeld scene is het volgende (komen nog wel meer bij.. maar deze zijn al geprogrammeerd):

new_scene($scene_file,$scene_title,$scene_author,$scene_description,$scene_password,$scene_response_to)
edit($scene_id,$scene_file,$scene_title,$scene_last_edit_by,$scene_description,$password)
details($scene_id)
delete($scene_id)
revive($scene_id)

Waar het OOP vooral naar voren komt is bijvoorbeeld bij de functie &#34;new_scene&#34;:PHP:12345678910111213141516171819202122&#60;?php
&#160;&#160;&#160;&#160;public&#160;function&#160;new_scene($scene_file,$scene_title,$scene_author,$scene_description,$scene_password,$scene_response_to)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_id&#160;=&#160;scene::$database-&#62;new_id('scene');
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_ip&#160;=&#160;scene::$backend-&#62;get_ip();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(scene::$backend-&#62;check_ban($scene_ip)&#160;==&#160;false)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_filedetails&#160;=&#160;scene::$backend-&#62;file_upload($scene_id,$scene_file);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scene::$database-&#62;add_scene
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;(
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_id,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_ip,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_filedetails['name'],
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_filedetails['size'],
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_title,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_author,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_description,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_password,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$scene_response_to
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;true;
&#160;&#160;&#160;&#160;}
?&#62;Hier vind ik het mooi dat ik snel bepaalde functies kan aanroepen, bijvoorbeeld om te kijken of de persoon die een scene wil uploaden niet gebant is.


In feite zal er dus nooit meer dan 1 object van elke class hoeven te bestaan in een script.


Heb ik hier echt wel nut van OOP? Of kan ik beter gewoon een stapel includes maken met functies erin?</description>
			<content:encoded><![CDATA[vrijdag 25 juli 2008 00:14<br />
Bedankt voor de opbouwende post <img src="http://gathering.tweakers.net/global/smileys/smile.gif" width="15"  height="15" alt=":)" class="smiley"><br>
<br>
Het is inderdaad waar dat OOP voor mij enorm lastig lijkt nu.. Ben al jaren gewent aan pascal, en daar ging object oriented programmeren niet echt mee. <br>
<br>
De applicatie die ik ga maken is in principe vergelijkbaar met iets als youtube. Dit is zoals de site nu is: <a href="http://www.phunbox.net/" title="http://www.phunbox.net/" rel="external">http://www.phunbox.net/</a><br>
<br>
De nieuwe site zal dan wel meer features hebben (gebruikers etc), maar kwa opbouw zal het er veel op lijken.<br>
<br>
Daarom heb ik in mijn tekeningen deze classes bedacht:<br>
<br>
- scene<br>
- database<br>
- backend<br>
- user<br>
- comment<br>
- administration<br>
<br>
Wat ik uiteindelijk wil, is dat ik de hele site opnieuw kan schrijven, op een manier die me beter instaat stelt dingen aan te passen, nieuwe dingen toe te voegen.. Een modulair ontwerp zeg maar.<br>
<br>
Wat ik nu heb kwa functies in bijvoorbeeld scene is het volgende (komen nog wel meer bij.. maar deze zijn al geprogrammeerd):<br>
<br>
new_scene($scene_file,$scene_title,$scene_author,$scene_description,$scene_password,$scene_response_to)<br>
edit($scene_id,$scene_file,$scene_title,$scene_last_edit_by,$scene_description,$password)<br>
details($scene_id)<br>
delete($scene_id)<br>
revive($scene_id)<br>
<br>
Waar het OOP vooral naar voren komt is bijvoorbeeld bij de functie &#34;new_scene&#34;:<br>PHP:<br><table class="phphighlight"><tr><td class="phphighlightline"><code><br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br></code></td><td class="phphighlightcode"><div><code><span class="code_preproc">&#60;?php
<br></span>&#160;&#160;&#160;&#160;<span class="code_keyword">public</span>&#160;<span class="code_keyword">function</span>&#160;<span class="code_method">new_scene</span>(<span class="code_ident">$scene_file</span>,<span class="code_ident">$scene_title</span>,<span class="code_ident">$scene_author</span>,<span class="code_ident">$scene_description</span>,<span class="code_ident">$scene_password</span>,<span class="code_ident">$scene_response_to</span>)
<br>&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_id</span>&#160;=&#160;<span class="code_ident">scene</span>::<span class="code_ident">$database</span>-&#62;<span class="code_ident">new_id</span>(<span class="code_string">'scene'</span>);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_ip</span>&#160;=&#160;<span class="code_ident">scene</span>::<span class="code_ident">$backend</span>-&#62;<span class="code_ident">get_ip</span>();
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">if</span>&#160;(<span class="code_ident">scene</span>::<span class="code_ident">$backend</span>-&#62;<span class="code_ident">check_ban</span>(<span class="code_ident">$scene_ip</span>)&#160;==&#160;<span class="code_keyword">false</span>)
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_filedetails</span>&#160;=&#160;<span class="code_ident">scene</span>::<span class="code_ident">$backend</span>-&#62;<span class="code_ident">file_upload</span>(<span class="code_ident">$scene_id</span>,<span class="code_ident">$scene_file</span>);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">scene</span>::<span class="code_ident">$database</span>-&#62;<span class="code_ident">add_scene</span>
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;(
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_id</span>,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_ip</span>,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_filedetails</span>[<span class="code_string">'name'</span>],
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_filedetails</span>[<span class="code_string">'size'</span>],
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_title</span>,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_author</span>,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_description</span>,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_password</span>,
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_ident">$scene_response_to</span>
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;);
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<span class="code_keyword">return</span>&#160;<span class="code_keyword">true</span>;
<br>&#160;&#160;&#160;&#160;}<span class="code_preproc">
<br>?&#62;</span></code></div></td></tr></table><br>Hier vind ik het mooi dat ik snel bepaalde functies kan aanroepen, bijvoorbeeld om te kijken of de persoon die een scene wil uploaden niet gebant is.<br>
<br>
<br>
In feite zal er dus nooit meer dan 1 object van elke class hoeven te bestaan in een script.<br>
<br>
<br>
Heb ik hier echt wel nut van OOP? Of kan ik beter gewoon een stapel includes maken met functies erin?]]></content:encoded>
			<guid isPermaLink="false">http://gathering.tweakers.net/forum/list_message/30476207#30476207</guid>
			<pubDate>Thu, 24 Jul 2008 22:14:54 GMT</pubDate>
		</item>
	</channel>
</rss>