<?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>BlogoDev &#187; OOP</title>
	<atom:link href="http://www.bluby.org/blog/tag/oop/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bluby.org/blog</link>
	<description>Un blog para desarrolladores</description>
	<lastBuildDate>Mon, 28 Jun 2010 17:34:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Objetos dinámicos con PHP</title>
		<link>http://www.bluby.org/blog/2009/07/objetos-dinamicos-con-php/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=objetos-dinamicos-con-php</link>
		<comments>http://www.bluby.org/blog/2009/07/objetos-dinamicos-con-php/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 16:06:32 +0000</pubDate>
		<dc:creator>P-los</dc:creator>
				<category><![CDATA[Funciones]]></category>
		<category><![CDATA[Técnicas]]></category>
		<category><![CDATA[clases]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.bluby.org/blog/?p=64</guid>
		<description><![CDATA[Con php utilizando OOP, existe una forma sencilla para utilizar la herencia y polimorfismo. La idea es instanciar un objeto teniendo el nombre de la clase en un string, ya sea constante o una variable. La forma típica de hacer esto (o al menos la unica que yo conocía) era la siguiente: $objeto = new [...]]]></description>
			<content:encoded><![CDATA[<p>Con php utilizando OOP, existe una forma sencilla para utilizar la herencia y polimorfismo. La idea es instanciar un objeto teniendo el nombre de la clase en un string, ya sea constante o una variable. La forma típica de hacer esto (o al menos la unica que yo conocía) era la siguiente:</p>
<p><code>$objeto = new clase();</code></p>
<p>Si lo que queríamos es instanciar diferentes clases heredadas de una misma, o que implementen una interfase, lo que hacía era un switch para definir cual utilizar:</p>
<p><code>switch(condicion){<br />
case 1: $objeto = new clase1(); break;<br />
case 2: $objeto = new clase2(); break;<br />
}</code></p>
<p>Sin embargo, despues de buscar mucho por internet, me encontré con que es posible instanciar un objeto en base a un string, esto es:</p>
<p><code>$objeto = new "clase1"();</code></p>
<p>Una vez que comprobé esto, probé con éxito el utilizar una variable para el mismo fin:</p>
<p><code>$objeto = new $nombreClase();</code></p>
<p>¿Para que puede servir esto? Estoy trabajando en un sistema para mostrar widgets, los cuales se cargan en base a la información guardada en una base de datos, con la intensión de facilitar la inclusión y administración de los mismos. El cómo lo pondré más adelante en un nuevo post, pero basicamente es lo siguiente:</p>
<p><code>&lt;?php<br />
function Mostrar($nombre){<br />
require_once($nombre.".php");<br />
$objeto=new $nombre();<br />
$objeto-&gt;MostrarWidget();<br />
}<br />
?&gt;</code></p>
<p>De esta manera, la función recibe el nombre de la clase que se desea mostrar, incluye el archivo correspondiente (suponiendo que la clase está en un archivo con el mismo nombre) y llama a una función específica.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bluby.org/blog/2009/07/objetos-dinamicos-con-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
