<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	> 
<channel> 
<title>DocumentoWeb - Perfil de sauljp07</title> 
<link>http://www.documentoweb.com/feed</link> 
<description>Informate de las nuevas publicaciones de DocumentoWeb.</description> 
<language>es-ES</language> 
<copyright>Licencia Creative Commons Atribución - No comercial - Licenciar igual</copyright>
<docs>http://www.documentoweb.com/publicaciones</docs>
<generator>Feed RSS creado por Null</generator>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<webMaster>documentoweb@gmail.com</webMaster>


<item> 
	<title>matesasesinos comentó en PHP: Tutorial: Patrón de Diseño Orientado a Objetos</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[me lei todo el analisis... ja... ta gueno saber esas cosillas... sobre todo cuando uno esta experimentando con algo tan jodido como la POO... grax.]]></description>
	<content:encoded><![CDATA[me lei todo el analisis... ja... ta gueno saber esas cosillas... sobre todo cuando uno esta experimentando con algo tan jodido como la POO... grax.]]></content:encoded>
	<dc:creator>matesasesinos</dc:creator>
	<pubDate>Fri, 13 Jan 2012 06:45:20</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en JavaScript: Debate: Importancia de proteger páginas de código malicioso javascript</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[]]></description>
	<content:encoded><![CDATA[]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 25 Jan 2011 14:02:59</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en JavaScript: Debate: Importancia de proteger páginas de código malicioso javascript</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Aprendiendo XSS jajajaja

http://es.wikipedia.org/wiki/Cross-site_scripting                                                                         ...]]></description>
	<content:encoded><![CDATA[Aprendiendo XSS jajajaja<br />
<br />
<a href="http://es.wikipedia.org/wiki/Cross-site_scripting" rel="nofollow">http://es.wikipedia.org/wiki/Cross-site_scripting</a>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 25 Jan 2011 13:47:31</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en jQuery: AJAX ultra fácil y accesible (método propio)</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Oye null este man este mas loco que una cabra...]]></description>
	<content:encoded><![CDATA[Oye null este man este mas loco que una cabra...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Wed, 03 Nov 2010 14:48:36</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en Element php+gd</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Aunque la idea es que compartas el conocimiento de lo que hay esta escrito....]]></description>
	<content:encoded><![CDATA[Aunque la idea es que compartas el conocimiento de lo que hay esta escrito....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 21 Oct 2010 20:41:06</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en Element php+gd</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Muy bien, lo probe y si es tu logo....]]></description>
	<content:encoded><![CDATA[Muy bien, lo probe y si es tu logo....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 21 Oct 2010 20:38:51</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en jQuery: AJAX ultra fácil y accesible (método propio)</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Muy bueno...]]></description>
	<content:encoded><![CDATA[Muy bueno...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 15 Oct 2010 17:32:29</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Funciona muy cool!! me encantó como funciona, ayer lo estuve practicando :D]]></description>
	<content:encoded><![CDATA[Funciona muy cool!! me encantó como funciona, ayer lo estuve practicando :D]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Fri, 03 Sep 2010 17:21:42</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad II</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Hola saul. Te cuento que, cuando pruebo hacer un registro... XAMPP se me cierra! fue increíble, hay un bucle infinito?]]></description>
	<content:encoded><![CDATA[Hola saul. Te cuento que, cuando pruebo hacer un registro... XAMPP se me cierra! fue increíble, hay un bucle infinito?]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Fri, 03 Sep 2010 17:20:25</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en el perfil de Diego Escares</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[hey null...]]></description>
	<content:encoded><![CDATA[hey null...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 26 Aug 2010 09:43:21</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[]]></description>
	<content:encoded><![CDATA[]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 30 Jul 2010 18:47:57</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en SEO: htaccess: Transformar URLs con .htaccess</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Quisiera retomar esta publicación, ya que me pidieron ayuda sobre un .htaccess, el estaba bien, y surgia el error 500 de apache, sucede que el apache...]]></description>
	<content:encoded><![CDATA[Quisiera retomar esta publicación, ya que me pidieron ayuda sobre un .htaccess, el estaba bien, y surgia el error 500 de apache, sucede que el apache no tenia activado el modulo 'rewrite_module', luego de la activacion funciono perfecto el .htaccess era muy parecido al de esta publicacion...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 29 Jul 2010 19:23:30</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en Guía: SEO: Optimización motores de búsqueda</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Yo tambien pienso eso, publica algo de los robots.txt]]></description>
	<content:encoded><![CDATA[Yo tambien pienso eso, publica algo de los robots.txt]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 29 Jul 2010 19:18:15</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en el perfil de Diego Escares</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Que problema con el troll caca jajajaja, http://es.wikipedia.org/wiki/Troll_(Internet).                                                               ...]]></description>
	<content:encoded><![CDATA[Que problema con el troll caca jajajaja, <a href="http://es.wikipedia.org/wiki/Troll_(Internet" rel="nofollow">http://es.wikipedia.org/wiki/Troll_(Internet</a>).]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 29 Jul 2010 18:02:53</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en el perfil de Diego Escares</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Bueno he tenido que aprender null, jajaja, bueno no es que se mucho, pero si he trabajado en el para el dise&ntilde;o de las interfaces y logos de las...]]></description>
	<content:encoded><![CDATA[Bueno he tenido que aprender null, jajaja, bueno no es que se mucho, pero si he trabajado en el para el dise&ntilde;o de las interfaces y logos de las aplicaciones]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 29 Jul 2010 17:50:18</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en su perfil</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[oye, sabes de dise&ntilde;o (photoshop y sus secuases) o solo de te dedicas a la programaci&oacute;n?]]></description>
	<content:encoded><![CDATA[oye, sabes de dise&ntilde;o (photoshop y sus secuases) o solo de te dedicas a la programaci&oacute;n?]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Thu, 29 Jul 2010 17:25:43</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en el perfil de Diego Escares</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[jajajajaja... tomen... Ban.....]]></description>
	<content:encoded><![CDATA[jajajajaja... tomen... Ban.....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 29 Jul 2010 17:01:42</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en su perfil</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[jajaja! son buenos no?, cuando baneas, se banea la IP m&aacute;s las cuentas relacionas a a esa IP ^^]]></description>
	<content:encoded><![CDATA[jajaja! son buenos no?, cuando baneas, se banea la IP m&aacute;s las cuentas relacionas a a esa IP ^^]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Thu, 29 Jul 2010 16:46:48</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en el perfil de Diego Escares</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Hice uso de mis poderes de moderador por primera vez...]]></description>
	<content:encoded><![CDATA[Hice uso de mis poderes de moderador por primera vez...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 29 Jul 2010 16:33:50</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en su perfil</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Vale por banear a ese tipo ;)]]></description>
	<content:encoded><![CDATA[Vale por banear a ese tipo ;)]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Thu, 29 Jul 2010 14:45:01</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en el perfil de seiack</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Bienvenido...]]></description>
	<content:encoded><![CDATA[Bienvenido...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 29 Jul 2010 13:19:28</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en su perfil</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Baneado.... caca9]]></description>
	<content:encoded><![CDATA[Baneado.... caca9]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 29 Jul 2010 10:44:16</pubDate>
</item>
<item> 
	<title>kakaroto comentó en su perfil</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[yo tampoco e tenido tiempo de revisar tus publicaciones ya que mi pc no sirve y no puedo correr el localhost ja ja ja ja cuando me compre otra compu...]]></description>
	<content:encoded><![CDATA[yo tampoco e tenido tiempo de revisar tus publicaciones ya que mi pc no sirve y no puedo correr el localhost ja ja ja ja cuando me compre otra compu nueva volvere a las andadas de la programacion]]></content:encoded>
	<dc:creator>kakaroto</dc:creator>
	<pubDate>Thu, 29 Jul 2010 05:44:41</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad V</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[No me he hecho el tiempo para revisar, tengo pendientes la gran mayoría de tus publicaciones :&lt;]]></description>
	<content:encoded><![CDATA[No me he hecho el tiempo para revisar, tengo pendientes la gran mayoría de tus publicaciones :&lt;]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Wed, 28 Jul 2010 19:45:01</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Patrón de Diseño Mapeo Objeto-Relacional </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[No me he hecho el tiempo para revisar, tengo pendientes la gran mayoría de tus publicaciones :&lt;]]></description>
	<content:encoded><![CDATA[No me he hecho el tiempo para revisar, tengo pendientes la gran mayoría de tus publicaciones :&lt;]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Wed, 28 Jul 2010 17:11:48</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad V</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Otras Caracteristicas
Los creadores de esta herramienta crearon suficientes funciones para cubrir todas las necesidades de un sistema, phpDataMapper...]]></description>
	<content:encoded><![CDATA[<h2>Otras Caracteristicas</h2>
<p>Los creadores de esta herramienta crearon suficientes funciones para cubrir todas las necesidades de un sistema, phpDataMapper es reciente y todav&iacute;a esta en desarrollo, pero va por buen camino.</p>
<p>Pueden visitar su pagina y gu&iacute;a oficial <a href="http://phpdatamapper.com/" target="_blank">phpDataMapper</a>.</p>
<h2>Consultas Personalizadas</h2>
<pre>$lista_registros=$persona-&gt;select()-&gt;from('persona')-&gt;where(array('id' =&gt; '3'));<br /></pre>
<p>Podriamos hacerlo as&iacute;:</p>
<pre>$lista_registros=$persona-&gt;query('SELECT * FROM persona WHERE id=3');<br /></pre>
<p>M&aacute;s sencillo:</p>
<pre>$lista_registros = $persona-&gt;all(array('id' =&gt; 3));</pre>
<p>Seleccionamos la persona con el id 3.</p>
<h2>Relaciones</h2>
<p>En caso de que una tabla tenga relacion con otra por una clave foranea podemos hacer algo muy sencillo:</p>
<p>En caso de que <strong>persona</strong> tenga relaci&oacute;n con <strong>publicaci&oacute;n</strong>:</p>
<p>Ejemplo:</p>
<p><em><strong>Archivo: Persona.php</strong></em></p>
<pre>&lt;?php<br /><br />class Persona extends phpDataMapper_Base {//inicio de la clase de mapeo<br /><br />&nbsp;&nbsp;&nbsp; // definir la fuente de&nbsp; datos (tabla para el adaptador)<br />&nbsp;&nbsp;&nbsp; protected $_datasource = "persona";<br /><br />&nbsp;&nbsp;&nbsp; // definir los atributos como propiedades de la clase con visibilidad publica<br />&nbsp;&nbsp;&nbsp; public $id = array ('type' =&gt; 'int', 'primary' =&gt; true, 'serial' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $nombre = array ('type' =&gt; 'string', 'required' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $email = array ('type' =&gt; 'string', 'required' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $web = array ('type' =&gt; 'string' );<br /><br />&nbsp;&nbsp;&nbsp; public $publicaciones = array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'type' =&gt; 'relation',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'relation' =&gt; 'HasMany',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'mapper' =&gt; 'Publicacion',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'where' =&gt; array('personaid' =&gt; 'entity.id')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br />&nbsp; &nbsp;<br />}//fin de la clase de mapeo<br /><br />?&gt;<br /></pre>
<p><em><strong>No es necesario modificar la tabla persona en la base de datos, $publicaciones har&aacute; las veces de una funci&oacute;n.</strong></em></p>
<p>El <strong>'mapper'</strong> como sabemos, ser&aacute; la clase mapeo la cual vamos a usar para ese atributo en este caso <strong>Publicacion</strong> de tipo <strong>'relation' </strong>donde <strong>personaid</strong> de la publicaci&oacute;n sea igual al <strong>id</strong> de la persona: <strong>'where' =&gt; array('personaid' =&gt; 'entity.id')</strong></p>
<p><em><strong>Archivo: Publicacion.php</strong></em></p>
<p><em>Para crear este mapeo debemos crear en la base de datos: tabla <strong>publicacion,</strong> atributos: <strong>id</strong> int, <strong>nombre</strong> varchar, <strong>personaid</strong> int.<br /></em></p>
<pre>&lt;?php<br /><br />class Publicacion extends phpDataMapper_Base {//inicio del mapeo<br /><br />&nbsp;&nbsp;&nbsp; protected $_datasource = "publicacion";<br /><br />&nbsp;&nbsp;&nbsp; // definir los atributos como propiedades de la clase con visibilidad publica<br />&nbsp;&nbsp;&nbsp; public $id = array ('type' =&gt; 'int', 'primary' =&gt; true, 'serial' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $nombre = array ('type' =&gt; 'string', 'required' =&gt; true );<br />    public $personaid = array('type' =&gt; 'int', 'key' =&gt; true, 'required' =&gt; true);<br /><br />}//fin del mapeo<br /><br />?&gt;<br /></pre>
<p>Para definir una clave foranea: <strong>array('type' =&gt; 'int', 'key' =&gt; true, 'required' =&gt; true);</strong></p>
<p><strong><em>Archivo: index.php</em></strong></p>
<pre>&lt;?php<br /><br />include 'Conexion.php';<br />include 'Persona.php';<br />include 'Publicacion.php';<br /><br />$persona = new Persona(Conexion::getConexion());<br /><br />$lista_registros = $persona-&gt;all();<br /><br />foreach ( $lista_registros as $registro ) {<br /><br />&nbsp;&nbsp;&nbsp; echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br /><br />    //Para mostrar todas las publicaciones<br />&nbsp;&nbsp;&nbsp; foreach($registro-&gt;publicaciones as $publicacion) {<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo "&lt;p&gt; ID: ".$publicacion-&gt;id.' Nombre: '. $publicacion-&gt;nombre. "&lt;/p&gt;";<br /><br />&nbsp;&nbsp;&nbsp; }<br /><br />}<br /><br />?&gt;<br /></pre>
<p>Ejemplo de una salida:</p>
<pre>Id: 2<br />&nbsp; Nombre: Alguien<br />&nbsp; Email: alguien@alguienweb.com<br />&nbsp; Web: www.alguienweb.com<br /><br />ID: 3 Nombre: primera publicacion<br /><br />ID: 4 Nombre: segunda publicacion<br /></pre>
<p>El alcance de este patr&oacute;n de dise&ntilde;o se nota en las relaciones de las tablas, en el ejemplo anterior pudimos mostrar r&aacute;pidamente los registros de publicaciones asociados a persona.</p>
<p>Otros frameworks tambi&eacute;n usan el Mapeo, yo recomiendo esta herramienta, ya que no se necesita depender de un frameworks para usarla, simplemente lo copiamos y empezamos a usarlo con nuestra aplicaci&oacute;n, sin necesidad de modificar mucho nuestro c&oacute;digo.</p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Wed, 28 Jul 2010 17:09:00</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Ayudita visual de como se vería "id" en phpmyadmin, con la opción auto increment (A_I):

                                                         ...]]></description>
	<content:encoded><![CDATA[Ayudita visual de como se vería "id" en phpmyadmin, con la opción auto increment (A_I):<br />
<br />
<a href="http://farm5.static.flickr.com/4114/4828783809_a84b5555b3.jpg" rel="nofollow"><img src="http://farm5.static.flickr.com/4114/4828783809_a84b5555b3.jpg" /></a>]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Sun, 25 Jul 2010 21:42:43</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad IV</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Oye, se ve bastante bien y veo una nueva forma de hacer mis consultas en la bd. Tendré que hacer algún experimento alguno de estos días, lo veo...]]></description>
	<content:encoded><![CDATA[Oye, se ve bastante bien y veo una nueva forma de hacer mis consultas en la bd. Tendré que hacer algún experimento alguno de estos días, lo veo prometedor.<br />
Gracias por tu publicación =).]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Sun, 25 Jul 2010 20:44:56</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Patrón de Diseño Mapeo Objeto-Relacional </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Oye, se ve bastante bien y veo una nueva forma de hacer mis consultas en la bd. Tendré que hacer algún experimento alguno de estos días, lo veo...]]></description>
	<content:encoded><![CDATA[Oye, se ve bastante bien y veo una nueva forma de hacer mis consultas en la bd. Tendré que hacer algún experimento alguno de estos días, lo veo prometedor.<br />
Gracias por tu publicación =).]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 24 Jul 2010 20:21:07</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad IV </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Oye, se ve bastante bien y veo una nueva forma de hacer mis consultas en la bd. Tendré que hacer algún experimento alguno de estos días, lo veo...]]></description>
	<content:encoded><![CDATA[Oye, se ve bastante bien y veo una nueva forma de hacer mis consultas en la bd. Tendré que hacer algún experimento alguno de estos días, lo veo prometedor.<br />
Gracias por tu publicación =).]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 24 Jul 2010 20:08:55</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad IV</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Actualizaci&oacute;n
Archivo: index.php
&lt;?php&nbsp;&nbsp;&nbsp; include 'Conexion.php';&nbsp;&nbsp;&nbsp; include...]]></description>
	<content:encoded><![CDATA[<h2>Actualizaci&oacute;n</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $registro = $persona-&gt;get(1);<br /><br />&nbsp;&nbsp;&nbsp; $registro-&gt;nombre='Webmaster';<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($registro);&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';&nbsp;&nbsp;&nbsp;  &nbsp;<br /><br />?&gt;<br /></pre>
<p>Primero obtenemos el registro que deseamos actualizar:</p>
<pre>$registro = $persona-&gt;get(1);</pre>
<p>Luego cambiamos los datos:</p>
<pre>$registro-&gt;nombre='Webmaster';<br /></pre>
<p>Y guardamos:</p>
<pre>$persona-&gt;save($registro);<br /></pre>
<p>Salida:</p>
<pre>Id: 1<br />&nbsp;&nbsp;Nombre: Webmaster<br />&nbsp;&nbsp;Email: null@documentoweb.com<br />&nbsp;&nbsp;Web:  www.documentoweb.com<br /></pre>
<h2>Eliminaci&oacute;n</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;delete(array('id' =&gt; 1));//Eliminacion<br /><br />&nbsp;&nbsp;&nbsp; $lista_registros = $persona-&gt;all();<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; foreach ( $lista_registros as $registro ) {<br /><br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;<br /><br />?&gt;<br /></pre>
<p>Para eliminar un registro usamos la funci&oacute;n <strong>delete(condici&oacute;n)</strong>:</p>
<pre>$persona-&gt;delete(array('id' =&gt; 1));<br /></pre>
<p>Donde la condici&oacute;n es un arreglo en el cual se expresan los valores que debe tener el registro para ser eliminado, en este caso el registro con el id 1.</p>
<p>Salida:</p>
<pre>Id: 2<br />&nbsp;&nbsp;Nombre: Alguien<br />&nbsp;&nbsp;Email: alguien@alguienweb.com<br />&nbsp;&nbsp;Web:  www.alguienweb.com</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 24 Jul 2010 19:58:18</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Patrón de Diseño Mapeo Objeto-Relacional </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Actualizaci&oacute;n
Archivo: index.php
&lt;?php&nbsp;&nbsp;&nbsp; include 'Conexion.php';&nbsp;&nbsp;&nbsp; include...]]></description>
	<content:encoded><![CDATA[<h2>Actualizaci&oacute;n</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $registro = $persona-&gt;get(1);<br /><br />&nbsp;&nbsp;&nbsp; $registro-&gt;nombre='Webmaster';<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($registro);&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';&nbsp;&nbsp;&nbsp;  &nbsp;<br /><br />?&gt;<br /></pre>
<p>Primero obtenemos el registro que deseamos actualizar:</p>
<pre>$registro = $persona-&gt;get(1);</pre>
<p>Luego cambiamos los datos:</p>
<pre>$registro-&gt;nombre='Webmaster';<br /></pre>
<p>Y guardamos:</p>
<pre>$persona-&gt;save($registro);<br /></pre>
<p>Salida:</p>
<pre>Id: 1<br />&nbsp;&nbsp;Nombre: Webmaster<br />&nbsp;&nbsp;Email: null@documentoweb.com<br />&nbsp;&nbsp;Web:  www.documentoweb.com<br /></pre>
<h2>Eliminaci&oacute;n</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;delete(array('id' =&gt; 1));//Eliminacion<br /><br />&nbsp;&nbsp;&nbsp; $lista_registros = $persona-&gt;all();<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; foreach ( $lista_registros as $registro ) {<br /><br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;<br /><br />?&gt;<br /></pre>
<p>Para eliminar un registro usamos la funci&oacute;n <strong>delete(condici&oacute;n)</strong>:</p>
<pre>$persona-&gt;delete(array('id' =&gt; 1));<br /></pre>
<p>Donde la condici&oacute;n es un arreglo en el cual se expresan los valores que debe tener el registro para ser eliminado, en este caso el registro con el id 1.</p>
<p>Salida:</p>
<pre>Id: 2<br />&nbsp;&nbsp;Nombre: Alguien<br />&nbsp;&nbsp;Email: alguien@alguienweb.com<br />&nbsp;&nbsp;Web:  www.alguienweb.com</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 24 Jul 2010 19:44:16</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad III</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Obtener todos los registros
Archivo: index.php
&lt;?php&nbsp;&nbsp;&nbsp; include 'Conexion.php';&nbsp;&nbsp;&nbsp; include...]]></description>
	<content:encoded><![CDATA[<h2>Obtener todos los registros</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $lista_registros = $persona-&gt;all();<br /><br />&nbsp;&nbsp;&nbsp; foreach ( $lista_registros as $registro ) {<br /><br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; }<br /><br />?&gt;<br /></pre>
<p>Para cargar todos los registros usamos la funci&oacute;n <strong>all()</strong>, luego recorremos el arreglo con un <strong>foreach</strong>.</p>
<p>Salida:</p>
<pre>Id: 1<br />&nbsp;&nbsp;Nombre: Null<br />&nbsp;&nbsp;Email: null@documentoweb.com<br />&nbsp;&nbsp;Web:  www.documentoweb.com<br /><br />Id: 2<br />&nbsp;&nbsp;Nombre: Alguien<br />&nbsp;&nbsp;Email:  alguien@alguienweb.com<br />&nbsp;&nbsp;Web: www.alguienweb.com<br /></pre>
<h2>Obtener un registro</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $registro = $persona-&gt;get(1);<br /><br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; <br /><br />?&gt;<br /></pre>
<p>Para obtener un registro especifico usamos la funci&oacute;n <strong>get($id)</strong>, le pasamos por par&aacute;metros el id de el registro deseado.</p>
<p>Salida:</p>
<pre>Id: 1<br />&nbsp;&nbsp;Nombre: Null<br />&nbsp;&nbsp;Email: null@documentoweb.com<br />&nbsp;&nbsp;Web:  www.documentoweb.com</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 24 Jul 2010 19:34:31</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad II </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[En esas ando... estoy preparando un post interesante y lo publico por ac&aacute;! :D]]></description>
	<content:encoded><![CDATA[En esas ando... estoy preparando un post interesante y lo publico por ac&aacute;! :D]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 23 Jul 2010 20:04:06</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Patrón de Diseño Mapeo Objeto-Relacional </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[En esas ando... estoy preparando un post interesante y lo publico por ac&aacute;! :D]]></description>
	<content:encoded><![CDATA[En esas ando... estoy preparando un post interesante y lo publico por ac&aacute;! :D]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 23 Jul 2010 19:47:50</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad II</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Nuevo Registro
Nuevo Archivo: index.php
&lt;?php&nbsp;&nbsp;&nbsp; include 'Conexion.php';&nbsp;&nbsp;&nbsp; include...]]></description>
	<content:encoded><![CDATA[<h2>Nuevo Registro</h2>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Null";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "null@documentoweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.documentoweb.com";<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Alguien";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "alguien@alguienweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.alguienweb.com";<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />?&gt;<br /></pre>
<p>Creamos 2 registros, usamos la funci&oacute;n <strong>get()</strong> para obtener un nuevo id, el lo hace autom&aacute;ticamente por ser incrementable:</p>
<pre>$nuevo_registro = $persona-&gt;get ();</pre>
<p>Luego completamos los otros datos:</p>
<pre>$nuevo_registro-&gt;nombre = "Null";<br />$nuevo_registro-&gt;email = "null@documentoweb.com";<br />$nuevo_registro-&gt;web = "www.documentoweb.com";</pre>
<p>Para finalizar usamos la funci&oacute;n <strong>save($nuevo_registro)</strong>, para guardar en la base de datos el registro y sus datos:</p>
<pre>$persona-&gt;save($nuevo_registro);<br /></pre>
<p>Salida:</p>
<pre>Registro Guardado <br />Registro Guardado</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 23 Jul 2010 19:44:34</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Nuevo Registro
Nuevo Archivo: index.php
&lt;?php&nbsp;&nbsp;&nbsp; include 'Conexion.php';&nbsp;&nbsp;&nbsp; include...]]></description>
	<content:encoded><![CDATA[<h2>Nuevo Registro</h2>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Null";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "null@documentoweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.documentoweb.com";<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Alguien";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "alguien@alguienweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.alguienweb.com";<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />?&gt;<br /></pre>
<p>Creamos 2 registros, usamos la funci&oacute;n <strong>get()</strong> para obtener un nuevo id, el lo hace autom&aacute;ticamente por ser incrementable:</p>
<pre>$nuevo_registro = $persona-&gt;get ();</pre>
<p>Luego completamos los otros datos:</p>
<pre>$nuevo_registro-&gt;nombre = "Null";<br />$nuevo_registro-&gt;email = "null@documentoweb.com";<br />$nuevo_registro-&gt;web = "www.documentoweb.com";</pre>
<p>Para finalizar usamos la funci&oacute;n <strong>save($nuevo_registro)</strong>, para guardar en la base de datos el registro y sus datos:</p>
<pre>$persona-&gt;save($nuevo_registro);<br /></pre>
<p>Salida:</p>
<pre>Registro Guardado <br />Registro Guardado</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 23 Jul 2010 19:19:36</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad III </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Nuevo Registro
Nuevo Archivo: index.php
&lt;?php&nbsp;&nbsp;&nbsp; include 'Conexion.php';&nbsp;&nbsp;&nbsp; include...]]></description>
	<content:encoded><![CDATA[<h2>Nuevo Registro</h2>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Null";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "null@documentoweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.documentoweb.com";<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Alguien";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "alguien@alguienweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.alguienweb.com";<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />?&gt;<br /></pre>
<p>Creamos 2 registros, usamos la funci&oacute;n <strong>get()</strong> para obtener un nuevo id, el lo hace autom&aacute;ticamente por ser incrementable:</p>
<pre>$nuevo_registro = $persona-&gt;get ();</pre>
<p>Luego completamos los otros datos:</p>
<pre>$nuevo_registro-&gt;nombre = "Null";<br />$nuevo_registro-&gt;email = "null@documentoweb.com";<br />$nuevo_registro-&gt;web = "www.documentoweb.com";</pre>
<p>Para finalizar usamos la funci&oacute;n <strong>save($nuevo_registro)</strong>, para guardar en la base de datos el registro y sus datos:</p>
<pre>$persona-&gt;save($nuevo_registro);<br /></pre>
<p>Salida:</p>
<pre>Registro Guardado <br />Registro Guardado</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 22 Jul 2010 21:27:41</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad II </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Nuevo Registro
Nuevo Archivo: index.php
&lt;?php&nbsp;&nbsp;&nbsp; include 'Conexion.php';&nbsp;&nbsp;&nbsp; include...]]></description>
	<content:encoded><![CDATA[<h2>Nuevo Registro</h2>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Null";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "null@documentoweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.documentoweb.com";<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Alguien";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "alguien@alguienweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.alguienweb.com";<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />?&gt;<br /></pre>
<p>Creamos 2 registros, usamos la funci&oacute;n <strong>get()</strong> para obtener un nuevo id, el lo hace autom&aacute;ticamente por ser incrementable:</p>
<pre>$nuevo_registro = $persona-&gt;get ();</pre>
<p>Luego completamos los otros datos:</p>
<pre>$nuevo_registro-&gt;nombre = "Null";<br />$nuevo_registro-&gt;email = "null@documentoweb.com";<br />$nuevo_registro-&gt;web = "www.documentoweb.com";</pre>
<p>Para finalizar usamos la funci&oacute;n <strong>save($nuevo_registro)</strong>, para guardar en la base de datos el registro y sus datos:</p>
<pre>$persona-&gt;save($nuevo_registro);<br /></pre>
<p>Salida:</p>
<pre>Registro Guardado <br />Registro Guardado</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 22 Jul 2010 21:25:50</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Nuevo Registro
Nuevo Archivo: index.php
&lt;?php&nbsp;&nbsp;&nbsp; include 'Conexion.php';&nbsp;&nbsp;&nbsp; include...]]></description>
	<content:encoded><![CDATA[<h2>Nuevo Registro</h2>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Null";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "null@documentoweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.documentoweb.com";<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Alguien";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "alguien@alguienweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.alguienweb.com";<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />?&gt;<br /></pre>
<p>Creamos 2 registros, usamos la funci&oacute;n <strong>get()</strong> para obtener un nuevo id, el lo hace autom&aacute;ticamente por ser incrementable:</p>
<pre>$nuevo_registro = $persona-&gt;get ();</pre>
<p>Luego completamos los otros datos:</p>
<pre>$nuevo_registro-&gt;nombre = "Null";<br />$nuevo_registro-&gt;email = "null@documentoweb.com";<br />$nuevo_registro-&gt;web = "www.documentoweb.com";</pre>
<p>Para finalizar usamos la funci&oacute;n <strong>save($nuevo_registro)</strong>, para guardar en la base de datos el registro y sus datos:</p>
<pre>$persona-&gt;save($nuevo_registro);<br /></pre>
<p>Salida:</p>
<pre>Registro Guardado <br />Registro Guardado</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 22 Jul 2010 21:21:22</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Conexi&oacute;n
Archivo: Conexion.php
&lt;?php//Archivos necesariosrequire 'phpDataMapper/Base.php';require 'phpDataMapper/Adapter/Mysql.php';class...]]></description>
	<content:encoded><![CDATA[<h2>Conexi&oacute;n</h2>
<p><em><strong>Archivo: Conexion.php</strong></em></p>
<pre>&lt;?php<br /><br />//Archivos necesarios<br />require 'phpDataMapper/Base.php';<br />require 'phpDataMapper/Adapter/Mysql.php';<br /><br />class Conexion {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; public function getConexion() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />            //parametros: ip, base de datos, usuario, pass<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $conexion = new phpDataMapper_Adapter_Mysql ( 'localhost', 'prueba', 'root', '' );<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch ( Exception $e ) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $e-&gt;getMessage ();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit ();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $conexion;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;<br /></pre>
<p>El primer archivo requerido es el Base.php este es para las tablas, el mapeo.</p>
<p>El segundo es la interfaz de conexi&oacute;n para MySql.</p>
<p>El bloque try-catch es una estructura que se usa cuando es necesario capturar excepciones (errores).</p>
<pre>try {<br />//Sentencias a ejecutar<br />} catch ( Exception $e ) {<br />//Sentancias a ejecutar en caso de una excepcion<br />}<br /></pre>
<p>En este caso la excepci&oacute;n seria que no se pudo hacer la conexi&oacute;n con MySql.</p>
<h2>Mapeo</h2>
<p><em><strong>Archivo: Persona.php</strong></em></p>
<pre>&lt;?php<br /><br />class Persona extends phpDataMapper_Base {//inicio de la clase de mapeo<br /><br />&nbsp;&nbsp;&nbsp; // definir la fuente de datos (tabla)<br />&nbsp;&nbsp;&nbsp; protected $_datasource = "persona";<br /><br />&nbsp;&nbsp;&nbsp; // definir los atributos como propiedades de la clase con visibilidad publica<br />&nbsp;&nbsp;&nbsp; public $id = array ('type' =&gt; 'int', 'primary' =&gt; true, 'serial' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $nombre = array ('type' =&gt; 'string', 'required' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $email = array ('type' =&gt; 'string', 'required' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $web = array ('type' =&gt; 'string' );<br />&nbsp; &nbsp;<br />}//fin de la clase de mapeo<br /><br />?&gt;<br /></pre>
<h2>Estructura:</h2>
<ul>
<li>La Clase lleva el nombre de la tabla que va a representar (mapear).</li>
<li>La variable <strong>$_datasource</strong> es el nombre de la tabla.</li>
<li>Todos los atributos deben ser representados.</li>
<li>Los <strong>id</strong> (claves primarias), deben ser autoincrementables en la base de datos, su representaci&oacute;n est&aacute;ndar es:<strong> array ('type' =&gt; 'int', 'primary' =&gt; true, 'serial' =&gt; true )</strong>;</li>
<li>Los atributos requeridos (not null) poseen el estatus 'required' =&gt; true</li>
<li>Los dem&aacute;s atributos solo llevan el tipo.</li>
<li>Cada tabla debe ser representada por su modelo.</li>
<li>El modelo hereda de<strong> phpDataMapper_Base</strong>.</li>
<li>La idea simplemente es llevar la tabla a c&oacute;digo PHP.</li>
</ul>
<h2>Uso</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br />&nbsp;&nbsp; &nbsp;<br />?&gt;<br /></pre>
<p>Al instanciar el modelo pasamos por parametro la conexi&oacute;n.</p>
<p>La sentencia Conexion::getConexion() significa una auto-instanciaci&oacute;n de Conexion(), (no se necesita el <strong>new</strong>), y llamado de la funci&oacute;n getConexion() inmediatamente.</p>
<p>Tambi&eacute;n podr&iacute;a ser:</p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $conexion = new Conexion();<br />&nbsp;&nbsp;&nbsp; $persona = new Persona($conexion-&gt;getConexion());<br /><br />?&gt;</pre>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 22 Jul 2010 21:16:43</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Patrón de Diseño Mapeo Objeto-Relacional</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Mejor conocido como ORM por sus siglas en ingles Object-Relational Mapping. Este patr&oacute;n est&aacute; dirigido a las bases de datos, como sabemos...]]></description>
	<content:encoded><![CDATA[<p>Mejor conocido como <em><strong>ORM</strong></em> por sus siglas en ingles <em><strong>Object-Relational Mapping</strong></em>. Este patr&oacute;n est&aacute; dirigido a las bases de datos, como sabemos las bases de datos son un conjunto de objetos relacionados entre si, de ah&iacute; su nombre, el mapeo se refiere a la descripci&oacute;n y estructura de un objeto (para este caso).</p>
<p>Para aplicar este patr&oacute;n usaremos phpDataMapper, una herramienta creada bajo el <em><strong>ORM</strong></em> , nos facilitar&aacute; en gran manera el manejo de nuestra base de datos.</p>
<p>Es una herramienta de gran utilidad para cuando se necesite crear una aplicaci&oacute;n r&aacute;pidamente, adem&aacute;s suma robustez a nuestra aplicaci&oacute;n, ayuda mantener un c&oacute;digo elegante y entendible.</p>
<h2>Links Relacionados</h2>
<ul>
<li><a href="http://es.wikipedia.org/wiki/Mapeo_objeto-relacional" target="_blank">Mapeo objeto-relacional</a></li>
<li><a href="http://phpdatamapper.com/" target="_blank">phpDataMapper Home</a></li>
<li><a href="../../PHP/Tutorial/Patron-de-Diseno-Orientado-a-Objetos" target="_blank">OOP</a></li>
<li>Descarga: <a href="http://github.com/vlucas/phpDataMapper/zipball/v0.5.1b" target="_blank">phpDataMapper</a></li>
</ul>
<h2>Uso</h2>
<p><em>Para poder implementar la herramienta necesitamos <a href="http://github.com/vlucas/phpDataMapper/zipball/v0.5.1b" target="_blank">descargarla</a>, descomprimirla y pegarla en el directorio ra&iacute;z de nuestra aplicaci&oacute;n.</em></p>
<p><em><strong>I</strong><strong>mportante:</strong> </em></p>
<ul>
<li><em>Esta herramienta necesita que los <strong>id</strong> de cada <strong>entidad</strong> sean <strong>autoincrementables</strong>, por ello se necesita MySql como administrador de base de datos (Hasta ahora esa es la interfaz de conexi&oacute;n que usa phpDataMapper).</em></li>
</ul>
<h2>Antes de Empezar</h2>
<ul>
<li><em>Para este Tutorial usaremos <strong>MySql</strong>.</em></li>
<li><em>Base de Datos: <strong>prueba.</strong></em></li>
<li><em>Tabla: <strong>persona</strong>.<br /></em></li>
<li><em>Atributos: <strong>id </strong>(int), <strong>nombre</strong> (varchar), <strong>email</strong> (varchar), <strong>web </strong>(varchar).</em></li>
<li><em>Tabla: <strong>publicacion</strong>.</em></li>
<li><em>Atributos: <strong>id</strong> (int), <strong>nombre</strong> (varchar), <strong>personaid</strong> (int).<br /></em></li>
</ul>
<h2>Unidades</h2>
<ul>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-I" target="_blank">Unidad I: Conexi&oacute;n y Mapeo</a></li>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-II" target="_blank">Unidad II: Creaci&oacute;n de un Registro</a></li>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-III" target="_blank">Unidad III: Obtenci&oacute;n de un Registro</a></li>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-IV" target="_blank">Unidad IV: Actualizaci&oacute;n y Eliminaci&oacute;n de un Registro</a></li>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-V" target="_blank">Unidad V: Otras Caracteristicas</a></li>
</ul>
<p>&nbsp;</p>
<blockquote>
<p>Si quieres aprender programaci&oacute;n web, s&oacute;lo en la web aprender&aacute;s</p>
<p>&nbsp;</p>
</blockquote>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 22 Jul 2010 21:15:54</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Patrón de Diseño Orientado a Objetos</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[y aunque no lo parezca si esta simplificado jajajajajaja.....]]></description>
	<content:encoded><![CDATA[y aunque no lo parezca si esta simplificado jajajajajaja.....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 20:06:19</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Patrón de Diseño Orientado a Objetos</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[jajaja, bueno para ser sincero no lo hiba a colocar, igual las personas siempre vamos al punto, a lo que nos interesa en realidad, pero lo hice por si...]]></description>
	<content:encoded><![CDATA[jajaja, bueno para ser sincero no lo hiba a colocar, igual las personas siempre vamos al punto, a lo que nos interesa en realidad, pero lo hice por si alguien queria saber un poco mas, detenerse en el sitio y tener algo que leer, simplificado...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 20:04:50</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Patrón de Diseño Orientado a Objetos </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[jajaja, bueno para ser sincero no lo hiba a colocar, igual las personas siempre vamos al punto, a lo que nos interesa en realidad, pero lo hice por si...]]></description>
	<content:encoded><![CDATA[jajaja, bueno para ser sincero no lo hiba a colocar, igual las personas siempre vamos al punto, a lo que nos interesa en realidad, pero lo hice por si alguien queria saber un poco mas, detenerse en el sitio y tener algo que leer, simplificado...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 20:02:08</pubDate>
</item>
<item> 
	<title>sauljp07 editó PHP: Tutorial: Diseño Orientado a Objetos Unidad IV (con cambio de URL)</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Bueno ya esta es la publicaci&oacute;n final de esta saga, hablar&eacute; de los constructores y destructores.
Constructor
El constructor de una...]]></description>
	<content:encoded><![CDATA[<p>Bueno ya esta es la publicaci&oacute;n final de esta saga, hablar&eacute; de los <em><strong>constructores</strong></em> y <em><strong>destructores</strong></em>.</p>
<h2>Constructor</h2>
<p>El <em><strong>constructor de una clase</strong></em> tiene como principal objetivo el de inicializar el objeto al ser instanciado, colocando as&iacute; sus atributos en los valores deseados.</p>
<p>El <em><strong>constructor</strong></em> es una funci&oacute;n, y como tal puede o no recibir p&aacute;rametros.</p>
<p>En PHP un ejemplo de constructor de una clase seria el siguiente:</p>
<pre>public function __construct() {<br /><br />}<br /></pre>
<p>Notemos que la funci&oacute;n esta denotada as&iacute;: <strong>__construct()</strong>, dos underscore ( __ ) y la palabra <em><strong>construct</strong></em>.</p>
<h2>Destructor</h2>
<p>El <em><strong>destructor de una clase</strong></em> es muy similar a el <em><strong>constructor</strong></em>, la diferencia radica en que este es llamado cuando es destruido el objeto, en otras palabras eliminado de la memoria, claro es solo en teoria, su objetivo principal es devolver alg&uacute;n objeto o situaci&oacute;n a su estado original, por ejemplo, cerrar conexiones con base de datos, o limpiar archivos temporales, o eliminar plantillas usadas, entre otras, ahora el concepto <em><strong>destructor</strong></em> no existe en PHP4 as&iacute; que cuidado con eso.</p>
<p>El destructor no recibe par&aacute;metros.</p>
<p>Un ejemplo seria el siguiente:</p>
<pre>public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />}</pre>
<p>Posee una estructura igual al constructor pero con la palabra <em><strong>destruct</strong></em>, <em>el destructor no funciona muy bien si se hereda esa clase, as&iacute; que cuidado, dependiendo de lo que se haga sirve o no, y para saberlo se necesita experiencia.</em></p>
<p>Ejemplo:</p>
<p><em><strong>Archivo: Estudiante.php</strong></em></p>
<pre>&lt;?php<br /><br />class Estudiante {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $id;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function __construct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;id=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre="Null";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Construyendo &lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Nombre: '.$this-&gt;nombre.', ID: '.$this-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Destruyendo';<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Estudiante.php';<br /><br />$estudiante = new Estudiante();<br /><br />?&gt;</pre>
<p>Salida:</p>
<pre>Construyendo <br />Nombre: Null, ID: 0<br />Destruyendo</pre>
<p>Mejoremos el c&oacute;digo, le colocaremos par&aacute;metros predefinidos al constructor:</p>
<p><em><strong>Nuevo Archivo: Estudiante.php</strong></em></p>
<pre>&lt;?php<br /><br />class Estudiante {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $id;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function __construct($id=0,$nombre="Null") {//Parametros predefinidos<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;id=$id;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Construyendo &lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Nombre: '.$this-&gt;nombre.', ID: '.$this-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Destruyendo';<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>&iquest;Para qu&eacute; se usan estos par&aacute;metros?, bueno si al instanciar el objeto no se pasan datos por par&aacute;metros estos ser&aacute;n los valores que tomaran las variable.</p>
<p>Ejemplo:</p>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Estudiante.php';<br /><br />$estudiante = new Estudiante(2,"Pedro");<br /><br />?&gt;</pre>
<p>Salida:</p>
<pre>Construyendo <br />Nombre: Pedro, ID: 2<br />Destruyendo</pre>
<p>Salida sin usar par&aacute;metros:</p>
<pre>Construyendo <br />Nombre: Null, ID: 0<br />Destruyendo<br /></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas   en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:52:46</pubDate>
</item>
<item> 
	<title>sauljp07 editó PHP: Tutorial: Diseño Orientado a Objetos Unidad III (con cambio de URL)</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[En esta publicaci&oacute;n hablar&eacute; de las Clase Abstractas y de las Interfaces, usaremos el ejemplo de las figuras geom&eacute;tricas expuesto...]]></description>
	<content:encoded><![CDATA[<p>En esta publicaci&oacute;n hablar&eacute; de las Clase Abstractas y de las Interfaces, usaremos el ejemplo de las figuras geom&eacute;tricas expuesto en la publicaci&oacute;n anterior.</p>
<h2>Clase Abstracta</h2>
<p>En la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> expliqu&eacute; que una clase era un concepto o plantilla y que esta al ser instanciada se transformaba en un objeto en memoria, una <em><strong>clase abstracta</strong></em> sigue siendo un concepto, pero a diferencia de la clase normal (<strong><em>clase concreta</em></strong>) esta no puede ser instanciada.</p>
<p>Una <em><strong>clase abstracta</strong></em> posee <em><strong>funciones abstractas</strong></em>, son m&eacute;todos que no han sido escritos, s&oacute;lo est&aacute; su cabecera, y s&oacute;lo estas clases pueden representarlos, su objetivo es ser escritos (<em><strong>implementados</strong></em>) por las <em><strong>subclases</strong></em>, y as&iacute; aplicar el polimorfismo explicado en la <a href="Diseno-Orientado-a-Objetos-Unidad-II">Unidad II</a>.</p>
<p>Explicar&eacute; mejor las diferencias entre <em><strong>clases abstractas</strong></em> y <em><strong>clases concretas</strong></em> mediante una tabla:</p>
<table border="0">
<tbody>
<tr>
<td><em><strong>Clases Abstractas</strong></em></td>
<td><strong><em>Clases Concretas</em></strong></td>
</tr>
<tr>
<td>Se usan para generalizar o clasificar clases concretas</td>
<td>Se usan para representar un objeto</td>
</tr>
<tr>
<td>Son usadas para ser heredadas, por que no pueden ser instanciadas</td>
<td>Pueden ser instanciadas y heredadas si se desea</td>
</tr>
<tr>
<td>Poseen m&eacute;todos abstractos (sin implementaci&oacute;n)</td>
<td>No poseen m&eacute;todos abstractos</td>
</tr>
<tr>
<td>Poseen m&eacute;todos implementados</td>
<td>Poseen m&eacute;todos implementados</td>
</tr>
</tbody>
</table>
<p><em>Para crear una clase o funci&oacute;n abstracta usaremos la palabra reservada <strong>abstract</strong></em>.</p>
<p>Ahora mejorando el c&oacute;digo de la <a href="Diseno-Orientado-a-Objetos-Unidad-II">Unidad II</a>, la nueva <em><strong>superclase</strong></em>:</p>
<p><em><strong>Nuevo Archivo: Figura.php</strong></em></p>
<pre>&lt;?php<br /><br />abstract class Figura {//Inicio de la clase abstracta<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; abstract public function area();//Funcion sin implementacion<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>Notemos la sintaxis, en la cabecera de la clase se coloc&oacute; <em><strong>abstract class</strong></em>, y ahora la funci&oacute;n area() tambi&eacute;n es abstracta, notemos que no tiene llaves <strong>{...}</strong>, la funci&oacute;n termina en punto y coma <strong>;</strong></p>
<pre>abstract public function area();//Funcion sin implementacion</pre>
<p>Si intentaramos instanciar Figura generar&iacute;a un error ( <strong>$figura = new Figura()</strong>; )</p>
<pre><strong>Fatal error</strong>:  Cannot instantiate abstract class Figura in...</pre>
<p>Este dice que no se puede instanciar una clase abstracta.</p>
<p>Los otros archivos quedar&iacute;an igual.</p>
<h2>Interfaz</h2>
<p>Una interfaz es una colecci&oacute;n de funciones sin implementaci&oacute;n, son similares a las clases abstractas, no pueden ser instanciadas, pero adem&aacute;s <strong>todas</strong> las funciones son abstractas, su objetivo principal es obligar a las <em><strong>clases concretas</strong></em> a que implementen todos sus m&eacute;todos abstractos, as&iacute; se asegura que todas las clases que la usen o mejor dicho que implementen la interfaz tengan los m&eacute;todos que deben ser comunes, y asegurar el polimorfismo de los mismos. Si una <em><strong>clase abstracta</strong></em> implementa una interfaz no necesita implementar las funciones de la misma.</p>
<p>Para declarar una interfaz usaremos la palabra reservada <em><strong>interface</strong></em>.</p>
<p><em><strong>Archivo: IFigura.php</strong></em></p>
<pre>&lt;?php<br /><br />interface IFigura {//Inicio de la interfaz<br /><br />&nbsp;&nbsp;&nbsp; public function area();<br />&nbsp;&nbsp; &nbsp;<br />}//Fin de la interfaz<br /><br />?&gt;</pre>
<p>Ahora cambiemos la clase abstracta Figura, simplemente eliminamos el m&eacute;todo area();</p>
<p>Luego veamos como quedaria la clase Rectangulo, para usar una interfaz usaremos la palabra <em><strong>implements</strong></em>:</p>
<p><em><strong>Nuevo Archivo: Rectangulo.php</strong></em></p>
<pre>&lt;?php<br /><br />class Rectangulo extends Figura implements IFigura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;<br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>Si no implementaramos area() cuando corrieramos el codigo pasar&iacute;a esto:</p>
<pre><strong>Fatal error</strong>:  Class Rectangulo contains 1 abstract method and  must therefore be declared abstract or implement the remaining methods  (IFigura::area) in...</pre>
<p>Nos dice que hay un m&eacute;todo abstracto declarado en la interfaz y que en Rectangulo no ha sido implementado.</p>
<p>Recordemos incluir la interfaz en el index:</p>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Figura.php';<br />include 'IFigura.php';//Nueva inclusion<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />.<br />.<br />.<br /><br />?&gt;</pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas  en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:46:48</pubDate>
</item>
<item> 
	<title>sauljp07 editó PHP: Tutorial: Diseño Orientado a Objetos Unidad II (con cambio de URL)</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Ya vimos los conceptos fundamentales de los objetos (Unidad I), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos...]]></description>
	<content:encoded><![CDATA[<p>Ya vimos los conceptos fundamentales de los objetos (<a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a>), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos ser&aacute;n las figuras geom&eacute;tricas.</p>
<h2>Herencia</h2>
<p>La <em><strong>herencia</strong></em> se refiera a que una clase B (<strong><em>subclase</em></strong>) puede usar la estructura de una clase A (<em><strong>superclase</strong></em>), igual que en el mundo real las personas heredamos los rasgos f&iacute;sicos de los padres, y no solo los rasgos f&iacute;sicos sino por ejemplo los apellidos.</p>
<p>La <em><strong>herencia</strong></em> es &uacute;til para tener un mejor entendimiento de los procesos de un programa de forma jerarquica o para clasificar una serie de clases rehusando el c&oacute;digo ya escrito.</p>
<p>Las clases que <strong><em>hereden</em></strong> obtendran<strong><em> todos los atributos y funciones</em></strong> de sus padres, y podran acceder a ellos si son <em><strong>public</strong></em> o <strong><em>protected</em></strong>, como explique en la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> los atributos y funciones <strong><em>private</em></strong> solo se pueden acceder dentro de la misma clase que los usa.</p>
<p>Las clases que <em><strong>hereden</strong></em> pueden agregar a su estructura nuevos atributos y funciones sin afectar a la <em><strong>superclase</strong></em>.</p>
<h2>Polimorfismo</h2>
<p>El <em><strong>polimorfismo</strong></em> se refiere a funciones que se llaman igual, pero se comportan diferente, <em>b&aacute;sicamente buscan solucionar el mismo problema de diferentes formas</em>.</p>
<p>Primero crearemos la <em><strong>superclase</strong></em>:</p>
<p><em><strong>Archivo: Figura.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Ahora creamos la primera herencia, para ello usaremos la palabra reservada <em><strong>extends</strong></em>:</p>
<p><em><strong>Archivo: Triangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Triangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $base;<br />&nbsp;&nbsp;&nbsp; private $altura;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getBase(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setBase($base){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;base=$base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getAltura(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setAltura($altura){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;altura=$altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando el c&oacute;digo vemos que en la cabecera se escribe <em><strong>extends</strong></em> luego de darle nombre a la <em><strong>subclase</strong><strong>&nbsp;</strong></em> en este caso Triangulo, e inmediatamente despu&eacute;s el nombre de la<em><strong> superclase</strong></em>.</p>
<p>El <em>Triangulo</em> ahora obtiene los atributos y funciones de <em>Figura</em>.</p>
<p>La funci&oacute;n <em>area()</em> se sobrescribe y se le da la nueva forma.</p>
<p>Creando otra <em><strong>subclase</strong></em>:</p>
<p><em><strong>Archivo: Rectangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Rectangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando la funci&oacute;n <strong>area()</strong> podemos ver que su comportamiento cambia para ambas clases, pero siguen siendo la misma funci&oacute;n heredada.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">//Triangulo<br />&nbsp;   public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />//Rectangulo<br />    public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }</span></span></span></span></span></pre>
<p>Para finalizar:</p>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />include 'Figura.php';<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />$triangulo = new Triangulo();<br />$triangulo-&gt;setNombre("Triangulo");<br />$triangulo-&gt;setAltura(2);<br />$triangulo-&gt;setBase(2);<br /><br />echo 'Nombre: '.$triangulo-&gt;getNombre().', Area: '.$triangulo-&gt;area();<br /><br />echo '&lt;br/&gt;';<br /><br />$rectangulo = new Rectangulo();<br />$rectangulo-&gt;setNombre("Rectangulo");<br />$rectangulo-&gt;setLadoA(2);<br />$rectangulo-&gt;setLadoB(2);<br /><br />echo 'Nombre: '.$rectangulo-&gt;getNombre().', Area: '.$rectangulo-&gt;area();<br /><br />?&gt;</span></span></span></span></span></pre>
<p>La salida seria algo as&iacute;:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Nombre: Triangulo, Area: 2<br />Nombre: Rectangulo, Area: 4</span></span></span></span></span></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:39:00</pubDate>
</item>
<item> 
	<title>sauljp07 editó PHP: Tutorial: Diseño Orientado a Objetos Unidad I (con cambio de URL)</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Patr&oacute;n de Dise&ntilde;o  (design patterns)
Los patrones de dise&ntilde;o se refieren a la arquitectura de un programa, a la forma en la que...]]></description>
	<content:encoded><![CDATA[<h2>Patr&oacute;n de Dise&ntilde;o  (design patterns)</h2>
<p>Los <strong><em>patrones de dise&ntilde;o</em></strong> se refieren a la arquitectura de un programa, a la forma en la que est&aacute; construidos, ellos se crean por la necesidad de solucionar alg&uacute;n &nbsp;problemas de forma efectiva y reusable, adem&aacute;s pretenden estandarizar el modo en que se desarrolla e implementa el software, facilitar el aprendizaje de las nuevas generaciones de dise&ntilde;adores, y generar un criterio de codigo eficiente y la optimizaci&oacute;n de una aplicaci&oacute;n.</p>
<p>Un <strong><em>Dise&ntilde;ador de Software</em></strong> (mejor conocido como <em>programador</em>) demuestra su madurez profesional aplicando dichos patrones que son variados y evocados a distintas soluciones o distintos software.</p>
<h2>OOP   (programaci&oacute;n orientada a objetos)</h2>
<p>La <em><strong>oop (<span id="result_box"><span>object-oriented  programming</span></span>)</strong></em> es una <em>abstracci&oacute;n</em> del mundo real, en otras palabras intenta imitar los objetos y circunstancias de la vida real, as&iacute; como los objetos de nuestro mundo poseen <em>caracter&iacute;sticas</em> <strong><em>(atributos)</em></strong> como: color, peso, tama&ntilde;o, estatura, entre otros, y <em>comportamientos</em> <em><strong>(funciones, m&eacute;todos o procedimientos) </strong></em>como: caminar, correr, disparar, buscar, entre otras, estos objetos tambi&eacute;n los tienen, en forma de c&oacute;digo, este c&oacute;digo que le da forma a un objeto se le llama <em>"clase"</em><strong><em> (class).</em></strong></p>
<p>La <em><strong>oop </strong></em>tambi&eacute;n es conocida como paradigma de programaci&oacute;n orientada a objetos.</p>
<p>PHP es un lenguaje de programaci&oacute;n que soporta la <strong><em>oop</em></strong> y es de gran utilidad crear objetos.</p>
<p>Los <em><strong>atributos</strong></em> siempre ser&aacute;n sustantivos y las <em><strong>funciones</strong></em> verbos.</p>
<h2>Class</h2>
<p>Antes de empezar con el c&oacute;digo, se puede decir que un objeto tiene dos niveles, uno que es la <em><strong>clase</strong></em> y otro que es su <em><strong>implementaci&oacute;n (instancia)</strong></em> o <em><strong>creaci&oacute;n, </strong></em>la <em><strong>clase</strong></em> es la plantilla por la cual se regir&aacute; la forma del <em><strong>objeto</strong></em>, por ejemplo la clase <em>Persona</em>, esta tiene atributos como color de cabello, estatura, nacionalidad, nombre entre otros, pero no es ninguna <em>Persona</em> en particular, es solo el <em><strong>concepto</strong></em> de lo que debe ser una <em>Persona</em>, una <strong><em>instancia </em></strong>o<strong><em> creaci&oacute;n</em></strong> de esta clase eres tu, y yo, el escritor de este articulo, ambos tal vez con nombres, nacionalidades, y color de cabello distintos, pero los dos somos tangibles, existimos, esa es la diferencia principal entre una <em><strong>clase (concepto)</strong></em> y una <em><strong>instancia (realidad)</strong></em>.</p>
<p><em><strong>La clase es un tipo de dato creado por el desarrollador.</strong></em></p>
<p>Ahora &iquest;C&oacute;mo transformamos todo esto en c&oacute;digo PHP?:</p>
<p class="codigo"><em><strong><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Archivo: Persona.php</span></span></span></span></span></strong></em></p>
<p class="codigo"><em><strong><span class="c1">&nbsp;</span></strong><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Recomiendo que cada clase se escriba en un archivo con su nombre, es posible crear varias clases en un solo archivo PHP.</span></span></span></span></span></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Persona {//Inicio de la Clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $nombre;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; //Funciones generalmente P&uacute;blicas<br />&nbsp;&nbsp;&nbsp; public function getNombre(){//Puede ser cambiado por obtenerNombre()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre){//Puede ser cambiado por insertarNombre()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$this-&gt;nombre=$nombre;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; private function pensar($pensamiento){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $pensamiento;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la Clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Observemos que tanto los atributos como las funciones est&aacute;n dentro de la clase, eso se llama encapsulamiento.</p>
<p>Las funciones get y set son utilizadas siempre para obtener e insertar los valores de los atributos de la clase, generalmente cada atributo posee estas dos funciones asociadas.</p>
<p>Las funciones y atributos <em><strong>public </strong></em>son la informaci&oacute;n a la cual se puede acceder desde la <strong><em>instancia</em></strong> de la clase, (el patr&oacute;n OO, exige que los atributos sean <em><strong>private</strong></em>, pero a nivel de programaci&oacute;n se pueden hacer publicos) ejemplo, otra persona puede pedirte tu nombre, pero no puede pedirte tus pensamientos (es solo para ejemplificar), por ende las funciones y atributos <em><strong>private</strong></em> solo pueden ser accedidas dentro de la clase.</p>
<p>La palabra reservada <strong>$this-&gt;</strong> se utiliza para llamar atributos y funciones de la misma clase, en este caso el nombre.</p>
<p>Mejorando el c&oacute;digo:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Persona {//Inicio de la Clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $nombre;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; //Funciones generalmente P&uacute;blicas<br />&nbsp;&nbsp;&nbsp; public function getNombre(){//Puede ser cambiado por obtenerNombre()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;pensar('Entrego mi nombre&lt;br/&gt;');//Llamando a la funci&oacute;n Privada<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre){//Puede ser cambiado por insertarNombre()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;pensar('Cambio mi nombre&lt;br/&gt;');//Llamando a la funci&oacute;n Privada<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$this-&gt;nombre=$nombre;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; private function pensar($pensamiento){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $pensamiento;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la Clase<br /><br />?&gt;<br /></span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">As&iacute; podemos ver el uso de la funci&oacute;n privada.</span></span></span></span></span></p>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Ahora:</span></span></span></span></span></p>
<p><em><strong></strong></em><em><strong><span><span><span><span><span>Archivo: index .php</span></span></span></span></span></strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />   include 'Persona.php';<br />   $objeto = new Persona();<br />   $objeto-&gt;setNombre('Pedro');<br />   echo 'Nombre '.$objeto-&gt;getNombre();<br /><br />?&gt;</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Para poder darle vida a nuestro objeto primero incluimos el archivo donde se encuentra la clase, luego con la palabra reservada <em><strong>new </strong></em>instanciamos el objeto:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$objeto = new Persona();</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Este sentencia crea un objeto Persona en la variable <em>$objeto</em> (esta variable puede tomar cualquier nombre).</span></span></span></span></span></p>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">y para finalizar usamos sus funciones p&uacute;blicas:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$objeto-&gt;setNombre('Pedro');<br />echo 'Nombre '.$objeto-&gt;getNombre();</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">el resultado seria:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Cambio mi nombre<br />Entrego mi nombre<br />Nombre Pedro</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:33:44</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Patrón de Diseño Orientado a Objetos</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Creo que parte del análisis no era necesario, no dan ganas de seguir leyendo con ese texto. Hay mucha información revelada ahi (los ejemplos son...]]></description>
	<content:encoded><![CDATA[Creo que parte del análisis no era necesario, no dan ganas de seguir leyendo con ese texto. Hay mucha información revelada ahi (los ejemplos son bastante buenos) y lo que intentamos es invitar, inducir de a poco la nueva info, no dar miedo jaja.]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:32:34</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Patrón de Diseño Orientado a Objetos </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Creo que parte del análisis no era necesario, no dan ganas de seguir leyendo con ese texto. Hay mucha información revelada ahi (los ejemplos son...]]></description>
	<content:encoded><![CDATA[Creo que parte del análisis no era necesario, no dan ganas de seguir leyendo con ese texto. Hay mucha información revelada ahi (los ejemplos son bastante buenos) y lo que intentamos es invitar, inducir de a poco la nueva info, no dar miedo jaja.]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:30:28</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Patrón de Diseño Orientado a Objetos </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Creo que parte del análisis no era necesario, no dan ganas de seguir leyendo con ese texto. Hay mucha información revelada ahi (los ejemplos son...]]></description>
	<content:encoded><![CDATA[Creo que parte del análisis no era necesario, no dan ganas de seguir leyendo con ese texto. Hay mucha información revelada ahi (los ejemplos son bastante buenos) y lo que intentamos es invitar, inducir de a poco la nueva info, no dar miedo jaja.]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:29:13</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Patrón de Diseño Orientado a Objetos</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[&nbsp;
Este patr&oacute;n es muy &uacute;til sobre todo si se trabaja con grupos grandes de desarrolladores, ya que se pueden crear estructuras de...]]></description>
	<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Este patr&oacute;n es muy &uacute;til sobre todo si se trabaja con grupos grandes de desarrolladores, ya que se pueden crear estructuras de manera que deban ser seguidas, para que as&iacute; asegurar el perfecto funcionamiento de la aplicaci&oacute;n al ser fusionada.</p>
<p>&iquest;C&oacute;mo definimos este patr&oacute;n?, es un m&eacute;todo por el cual los desarrolladores pueden crear y organizar entidades, estas entidades son una simulaci&oacute;n del mundo real, y por ende simulan soluciones a problemas reales, en otras palabras se imita de alguna forma como hacemos las cosas a mano, pero en un estructura programada.</p>
<h3>Caracteristicas</h3>
<ul>
<li>Simula actividades del mundo real.</li>
<li>El usuario crea sus propios tipos de datos.</li>
<li>Reutilizaci&oacute;n del c&oacute;digo.</li>
<li>Permite la portabilidad, compatibilidad y robustez, de ahi la creaci&oacute;n de FrameWorks.</li>
<li>Capacidad de encapsular la informaci&oacute;n y procedimientos.</li>
<li>Construci&oacute;n de sistemas complejos, con la participaci&oacute;n de muchos desarrolladores.</li>
<li>Mejor mantenimiento y adaptabilidad de modulos.</li>
<li>Es m&aacute;s entendible.</li>
</ul>
<h3>Pilares Fundamentales</h3>
<ul>
<li>Encapsulamiento.</li>
<li>Herencia.</li>
<li>Clase (Entidad).</li>
<li>Objeto.</li>
<li>Polimorfismo.</li>
</ul>
<h3>Analisis</h3>
<p>Existe un concepto para el an&aacute;lisis de patrones y de aplicaciones, este se llama <em><strong>Cohesi&oacute;n</strong></em> y <em><strong>Acoplamiento</strong></em>, nos ayuda a observar el grado de funcionalidad del c&oacute;digo y de la implementaci&oacute;n de una aplicaci&oacute;n, son conceptos un tanto dificiles, la <em><strong>cohesi&oacute;n</strong></em> es la capacidad de que los m&oacute;dulos o funciones resuelvan un problema por si solas, generalmente estas son agrupadas, en librer&iacute;as, en nuestro caso en <em><strong>clases</strong></em>, de manera que simulen la realidad, por ejemplo los usuarios, estos pueden ser eliminados, actualizados, y generados, todos esos m&oacute;dulos (funciones) est&aacute;n evocados hacia una misma entidad, pero cada una resuelve un problema distinto y por si solo, al organizarlos y unirlos creamos la <em><strong>clase</strong></em> <em>Usuario</em>, el <em><strong>acoplamiento</strong></em> se refiere a la dependencia que tiene un m&oacute;dulo de otro, al cambiar uno es necesario hacer cambios en el otro, esto es malo, debemos intentar tener el menor grado de <em><strong>acoplamient</strong><strong>o</strong></em> posible en nuestras aplicaciones, solo lo necesario y obligatorio, por ejemplo si en vez de usar una clase Usuario us&aacute;ramos una funci&oacute;n que recibiera el tipo de procedimiento, proceso($proceso), donde $proceso seria, "eliminar", "crear", "actualizar", podr&iacute;a a futuro generar molestias, y perdida de tiempo al intentar hacer grandes modificaciones, y lo peor es que los problemas generalmente aumenta exponencialmente. El <em><strong>dise&ntilde;o orientado a objetos</strong></em> tambi&eacute;n conocido como <em><strong>programaci&oacute;n orientada a objetos</strong></em> nos permite crear estructuras poco acopladas, para as&iacute; asegurar la compatibilidad y portabilidad de nuestro c&oacute;digo, es una muy buena opci&oacute;n implementarla, por supuesto que lleva tiempo, pero a la larga se notar&aacute; su flexibilidad.</p>
<h3>Unidades</h3>
<ul>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-I" target="_blank">Unidad I</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-II" target="_blank">Unidad II</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-III" target="_blank">Unidad III</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-IV" target="_blank">Unidad IV</a></li>
</ul>
<p>&nbsp;</p>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:23:00</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[&nbsp;
Este patr&oacute;n es muy &uacute;til sobre todo si se trabaja con grupos grandes de desarrolladores, ya que se pueden crear estructuras de...]]></description>
	<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Este patr&oacute;n es muy &uacute;til sobre todo si se trabaja con grupos grandes de desarrolladores, ya que se pueden crear estructuras de manera que deban ser seguidas, para que as&iacute; asegurar el perfecto funcionamiento de la aplicaci&oacute;n al ser fusionada.</p>
<p>&iquest;C&oacute;mo definimos este patr&oacute;n?, es un m&eacute;todo por el cual los desarrolladores pueden crear y organizar entidades, estas entidades son una simulaci&oacute;n del mundo real, y por ende simulan soluciones a problemas reales, en otras palabras se imita de alguna forma como hacemos las cosas a mano, pero en un estructura programada.</p>
<h3>Caracteristicas</h3>
<ul>
<li>Simula actividades del mundo real.</li>
<li>El usuario crea sus propios tipos de datos.</li>
<li>Reutilizaci&oacute;n del c&oacute;digo.</li>
<li>Permite la portabilidad, compatibilidad y robustez, de ahi la creaci&oacute;n de FrameWorks.</li>
<li>Capacidad de encapsular la informaci&oacute;n y procedimientos.</li>
<li>Construci&oacute;n de sistemas complejos, con la participaci&oacute;n de muchos desarrolladores.</li>
<li>Mejor mantenimiento y adaptabilidad de modulos.</li>
<li>Es m&aacute;s entendible.</li>
</ul>
<h3>Pilares Fundamentales</h3>
<ul>
<li>Encapsulamiento.</li>
<li>Herencia.</li>
<li>Clase (Entidad).</li>
<li>Objeto.</li>
<li>Polimorfismo.</li>
</ul>
<h3>Analisis</h3>
<p>Existe un concepto para el an&aacute;lisis de patrones y de aplicaciones, este se llama <em><strong>Cohesi&oacute;n</strong></em> y <em><strong>Acoplamiento</strong></em>, nos ayuda a observar el grado de funcionalidad del c&oacute;digo y de la implementaci&oacute;n de una aplicaci&oacute;n, son conceptos un tanto dificiles, la <em><strong>cohesi&oacute;n</strong></em> es la capacidad de que los m&oacute;dulos o funciones resuelvan un problema por si solas, generalmente estas son agrupadas, en librer&iacute;as, en nuestro caso en <em><strong>clases</strong></em>, de manera que simulen la realidad, por ejemplo los usuarios, estos pueden ser eliminados, actualizados, y generados, todos esos m&oacute;dulos (funciones) est&aacute;n evocados hacia una misma entidad, pero cada una resuelve un problema distinto y por si solo, al organizarlos y unirlos creamos la <em><strong>clase</strong></em> <em>Usuario</em>, el <em><strong>acoplamiento</strong></em> se refiere a la dependencia que tiene un m&oacute;dulo de otro, al cambiar uno es necesario hacer cambios en el otro, esto es malo, debemos intentar tener el menor grado de <em><strong>acoplamient</strong><strong>o</strong></em> posible en nuestras aplicaciones, solo lo necesario y obligatorio, por ejemplo si en vez de usar una clase Usuario us&aacute;ramos una funci&oacute;n que recibiera el tipo de procedimiento, proceso($proceso), donde $proceso seria, "eliminar", "crear", "actualizar", podr&iacute;a a futuro generar molestias, y perdida de tiempo al intentar hacer grandes modificaciones, y lo peor es que los problemas generalmente aumenta exponencialmente. El <em><strong>dise&ntilde;o orientado a objetos</strong></em> tambi&eacute;n conocido como <em><strong>programaci&oacute;n orientada a objetos</strong></em> nos permite crear estructuras poco acopladas, para as&iacute; asegurar la compatibilidad y portabilidad de nuestro c&oacute;digo, es una muy buena opci&oacute;n implementarla, por supuesto que lleva tiempo, pero a la larga se notar&aacute; su flexibilidad.</p>
<h3>Unidades</h3>
<ul>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-I" target="_blank">Unidad I</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-II" target="_blank">Unidad II</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-III" target="_blank">Unidad III</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-IV" target="_blank">Unidad IV</a></li>
</ul>
<p>&nbsp;</p>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 18:26:45</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad IV</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Perfecto, gracias a los dos por la aclaración.
Que genial aprender en mi propio sitio :D.]]></description>
	<content:encoded><![CDATA[Perfecto, gracias a los dos por la aclaración.<br />
Que genial aprender en mi propio sitio :D.]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Tue, 20 Jul 2010 17:46:22</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad IV</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Por supuesto, cuando se trabaja con un grupo, se crea el Patrón Estrategico, que es la parte fundamental, ahi se selecciona el patron de diseño, y...]]></description>
	<content:encoded><![CDATA[Por supuesto, cuando se trabaja con un grupo, se crea el Patrón Estrategico, que es la parte fundamental, ahi se selecciona el patron de diseño, y despues se creo el modelado, tal vez asi como dice null no se le ve importancia con proyectos personales o pequeños, porque siempre ahi una forma mas sencillad de hacerlo, cuando se trabaja con mas personas, es fundamental usar un patron y un modelado, usando interfaces, clases abstractas, entre otros, sino hay posibilidades de que el proyecto nunca salga a flote.]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 17:42:51</pubDate>
</item>
<item> 
	<title>iadrian20 comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad IV</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Es verdad, " Null "  hace cosas muy buenas sin usar la OOP mas que nada esto es para llevar un orden de desarrollo usando un equipo de desarolladores...]]></description>
	<content:encoded><![CDATA[Es verdad, " Null "  hace cosas muy buenas sin usar la OOP mas que nada esto es para llevar un orden de desarrollo usando un equipo de desarolladores por ejemplo Las Interfaces que explicaste en un articulo anterior "Objetivo principal es obligar a las clases concretas a que implementen todos sus métodos abstractos" en realidad no es solo eso, las intefaces se usan durante el desarrollo principal del core del sistema, en un proyecto grande se necesitan ingenieros de software tantos diseñadores del software (Arquitectura) y programadores (Codigo) del mismo, en primera instancia los analistas son los que hacen toda esa arquitectura usando distintos patrones , pueden ser MVC, OOP, ORM. Te decia esto por que asisti a una charla de J2EE hace poco. Y yo tambien tenia la misma idea que muchos por aqui. Hay material muy bueno sobre el tema en Sun y Oracle<br />
<br />
Saludos]]></content:encoded>
	<dc:creator>iadrian20</dc:creator>
	<pubDate>Tue, 20 Jul 2010 17:31:59</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad IV</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Bueno, este patron, y todo lo que implica, conceptos, interfaces, clases, entre otros, es muy util, ahora estaba explicando la teoria, pronto empezare...]]></description>
	<content:encoded><![CDATA[Bueno, este patron, y todo lo que implica, conceptos, interfaces, clases, entre otros, es muy util, ahora estaba explicando la teoria, pronto empezare a publicar usos extensos, y mas usados, pero para darte un ejemplo una utilidad principal son librerias, esto es framework, y no solo los que estan por ahi en la web, sino uno propio, si queremos crear una especie de marco de trabajo personal lo mejor es que nuestras librerias vallan ENCAPSULADAS en clases y en ellas todas sus funciones..]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 11:53:18</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad IV</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Nada más que discutir, están muy buenos, funciona todo ok. Los tendré de referencia para cuando lo necesite, porque yo no uso esto. No me queda...]]></description>
	<content:encoded><![CDATA[Nada más que discutir, están muy buenos, funciona todo ok. Los tendré de referencia para cuando lo necesite, porque yo no uso esto. No me queda claro un gran uso de ellos, porque para cada ejemplo que das, yo me imagino creándolo de otro modo más simple.<br />
¿Podrías darme ejemplos mucho más concretos de su uso?]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Tue, 20 Jul 2010 11:21:38</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Si dale, por cierto estaba por decirte que los leyeras para que los corrijas....]]></description>
	<content:encoded><![CDATA[Si dale, por cierto estaba por decirte que los leyeras para que los corrijas....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Tue, 20 Jul 2010 10:35:21</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Le quité las comillas a
echo "$pensamiento";

Estaban de sobra, queda así:
echo $pensamiento;]]></description>
	<content:encoded><![CDATA[Le quité las comillas a<br />
echo "$pensamiento";<br />
<br />
Estaban de sobra, queda así:<br />
echo $pensamiento;]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Tue, 20 Jul 2010 10:01:50</pubDate>
</item>
<item> 
	<title> Diego Escares editó la publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I de sauljp07 </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Le quité las comillas a
echo "$pensamiento";

Estaban de sobra, queda así:
echo $pensamiento;]]></description>
	<content:encoded><![CDATA[Le quité las comillas a<br />
echo "$pensamiento";<br />
<br />
Estaban de sobra, queda así:<br />
echo $pensamiento;]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Tue, 20 Jul 2010 09:54:23</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Acabo de darme el tiempo para leer el artículo. Está bastante bien, simple y bien explicado. Te felicito, ahora voy por el segundo.
Una acotación:...]]></description>
	<content:encoded><![CDATA[Acabo de darme el tiempo para leer el artículo. Está bastante bien, simple y bien explicado. Te felicito, ahora voy por el segundo.<br />
Una acotación: en el primer ejemplo no es necesario mostrar:<br />
<br />
    private function pensar($pensamiento){<br />
        echo "$pensamiento";<br />
    }<br />
<br />
Pues está de sobra. En este ejemplo no se usa, en cambio en el segundo sí.<br />
Saludos.]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Tue, 20 Jul 2010 09:49:03</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Orientado a Objetos Unidad IV</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Bueno ya esta es la publicaci&oacute;n final de esta saga, hablar&eacute; de los constructores y destructores.
Constructor
El constructor de una...]]></description>
	<content:encoded><![CDATA[<p>Bueno ya esta es la publicaci&oacute;n final de esta saga, hablar&eacute; de los <em><strong>constructores</strong></em> y <em><strong>destructores</strong></em>.</p>
<h2>Constructor</h2>
<p>El <em><strong>constructor de una clase</strong></em> tiene como principal objetivo el de inicializar el objeto al ser instanciado, colocando as&iacute; sus atributos en los valores deseados.</p>
<p>El <em><strong>constructor</strong></em> es una funci&oacute;n, y como tal puede o no recibir p&aacute;rametros.</p>
<p>En PHP un ejemplo de constructor de una clase seria el siguiente:</p>
<pre>public function __construct() {<br /><br />}<br /></pre>
<p>Notemos que la funci&oacute;n esta denotada as&iacute;: <strong>__construct()</strong>, dos underscore ( __ ) y la palabra <em><strong>construct</strong></em>.</p>
<h2>Destructor</h2>
<p>El <em><strong>destructor de una clase</strong></em> es muy similar a el <em><strong>constructor</strong></em>, la diferencia radica en que este es llamado cuando es destruido el objeto, en otras palabras eliminado de la memoria, claro es solo en teoria, su objetivo principal es devolver alg&uacute;n objeto o situaci&oacute;n a su estado original, por ejemplo, cerrar conexiones con base de datos, o limpiar archivos temporales, o eliminar plantillas usadas, entre otras, ahora el concepto <em><strong>destructor</strong></em> no existe en PHP4 as&iacute; que cuidado con eso.</p>
<p>El destructor no recibe par&aacute;metros.</p>
<p>Un ejemplo seria el siguiente:</p>
<pre>public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />}</pre>
<p>Posee una estructura igual al constructor pero con la palabra <em><strong>destruct</strong></em>, <em>el destructor no funciona muy bien si se hereda esa clase, as&iacute; que cuidado, dependiendo de lo que se haga sirve o no, y para saberlo se necesita experiencia.</em></p>
<p>Ejemplo:</p>
<p><em><strong>Archivo: Estudiante.php</strong></em></p>
<pre>&lt;?php<br /><br />class Estudiante {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $id;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function __construct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;id=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre="Null";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Construyendo &lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Nombre: '.$this-&gt;nombre.', ID: '.$this-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Destruyendo';<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Estudiante.php';<br /><br />$estudiante = new Estudiante();<br /><br />?&gt;</pre>
<p>Salida:</p>
<pre>Construyendo <br />Nombre: Null, ID: 0<br />Destruyendo</pre>
<p>Mejoremos el c&oacute;digo, le colocaremos par&aacute;metros predefinidos al constructor:</p>
<p><em><strong>Nuevo Archivo: Estudiante.php</strong></em></p>
<pre>&lt;?php<br /><br />class Estudiante {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $id;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function __construct($id=0,$nombre="Null") {//Parametros predefinidos<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;id=$id;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Construyendo &lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Nombre: '.$this-&gt;nombre.', ID: '.$this-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Destruyendo';<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>&iquest;Para qu&eacute; se usan estos par&aacute;metros?, bueno si al instanciar el objeto no se pasan datos por par&aacute;metros estos ser&aacute;n los valores que tomaran las variable.</p>
<p>Ejemplo:</p>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Estudiante.php';<br /><br />$estudiante = new Estudiante(2,"Pedro");<br /><br />?&gt;</pre>
<p>Salida:</p>
<pre>Construyendo <br />Nombre: Pedro, ID: 2<br />Destruyendo</pre>
<p>Salida sin usar par&aacute;metros:</p>
<pre>Construyendo <br />Nombre: Null, ID: 0<br />Destruyendo<br /></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas   en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Mon, 19 Jul 2010 21:03:07</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en su perfil</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Que lindo se ve tu perfil :)]]></description>
	<content:encoded><![CDATA[Que lindo se ve tu perfil :)]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Sun, 18 Jul 2010 23:09:04</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad III </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Que lindo se ve tu perfil :)]]></description>
	<content:encoded><![CDATA[Que lindo se ve tu perfil :)]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sun, 18 Jul 2010 22:17:00</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Orientado a Objetos Unidad III</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[En esta publicaci&oacute;n hablar&eacute; de las Clase Abstractas y de las Interfaces, usaremos el ejemplo de las figuras geom&eacute;tricas expuesto...]]></description>
	<content:encoded><![CDATA[<p>En esta publicaci&oacute;n hablar&eacute; de las Clase Abstractas y de las Interfaces, usaremos el ejemplo de las figuras geom&eacute;tricas expuesto en la publicaci&oacute;n anterior.</p>
<h2>Clase Abstracta</h2>
<p>En la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> expliqu&eacute; que una clase era un concepto o plantilla y que esta al ser instanciada se transformaba en un objeto en memoria, una <em><strong>clase abstracta</strong></em> sigue siendo un concepto, pero a diferencia de la clase normal (<strong><em>clase concreta</em></strong>) esta no puede ser instanciada.</p>
<p>Una <em><strong>clase abstracta</strong></em> posee <em><strong>funciones abstractas</strong></em>, son m&eacute;todos que no han sido escritos, s&oacute;lo est&aacute; su cabecera, y s&oacute;lo estas clases pueden representarlos, su objetivo es ser escritos (<em><strong>implementados</strong></em>) por las <em><strong>subclases</strong></em>, y as&iacute; aplicar el polimorfismo explicado en la <a href="Diseno-Orientado-a-Objetos-Unidad-II">Unidad II</a>.</p>
<p>Explicar&eacute; mejor las diferencias entre <em><strong>clases abstractas</strong></em> y <em><strong>clases concretas</strong></em> mediante una tabla:</p>
<table border="0">
<tbody>
<tr>
<td><em><strong>Clases Abstractas</strong></em></td>
<td><strong><em>Clases Concretas</em></strong></td>
</tr>
<tr>
<td>Se usan para generalizar o clasificar clases concretas</td>
<td>Se usan para representar un objeto</td>
</tr>
<tr>
<td>Son usadas para ser heredadas, por que no pueden ser instanciadas</td>
<td>Pueden ser instanciadas y heredadas si se desea</td>
</tr>
<tr>
<td>Poseen m&eacute;todos abstractos (sin implementaci&oacute;n)</td>
<td>No poseen m&eacute;todos abstractos</td>
</tr>
<tr>
<td>Poseen m&eacute;todos implementados</td>
<td>Poseen m&eacute;todos implementados</td>
</tr>
</tbody>
</table>
<p><em>Para crear una clase o funci&oacute;n abstracta usaremos la palabra reservada <strong>abstract</strong></em>.</p>
<p>Ahora mejorando el c&oacute;digo de la <a href="Diseno-Orientado-a-Objetos-Unidad-II">Unidad II</a>, la nueva <em><strong>superclase</strong></em>:</p>
<p><em><strong>Nuevo Archivo: Figura.php</strong></em></p>
<pre>&lt;?php<br /><br />abstract class Figura {//Inicio de la clase abstracta<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; abstract public function area();//Funcion sin implementacion<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>Notemos la sintaxis, en la cabecera de la clase se coloc&oacute; <em><strong>abstract class</strong></em>, y ahora la funci&oacute;n area() tambi&eacute;n es abstracta, notemos que no tiene llaves <strong>{...}</strong>, la funci&oacute;n termina en punto y coma <strong>;</strong></p>
<pre>abstract public function area();//Funcion sin implementacion</pre>
<p>Si intentaramos instanciar Figura generar&iacute;a un error ( <strong>$figura = new Figura()</strong>; )</p>
<pre><strong>Fatal error</strong>:  Cannot instantiate abstract class Figura in...</pre>
<p>Este dice que no se puede instanciar una clase abstracta.</p>
<p>Los otros archivos quedar&iacute;an igual.</p>
<h2>Interfaz</h2>
<p>Una interfaz es una colecci&oacute;n de funciones sin implementaci&oacute;n, son similares a las clases abstractas, no pueden ser instanciadas, pero adem&aacute;s <strong>todas</strong> las funciones son abstractas, su objetivo principal es obligar a las <em><strong>clases concretas</strong></em> a que implementen todos sus m&eacute;todos abstractos, as&iacute; se asegura que todas las clases que la usen o mejor dicho que implementen la interfaz tengan los m&eacute;todos que deben ser comunes, y asegurar el polimorfismo de los mismos. Si una <em><strong>clase abstracta</strong></em> implementa una interfaz no necesita implementar las funciones de la misma.</p>
<p>Para declarar una interfaz usaremos la palabra reservada <em><strong>interface</strong></em>.</p>
<p><em><strong>Archivo: IFigura.php</strong></em></p>
<pre>&lt;?php<br /><br />interface IFigura {//Inicio de la interfaz<br /><br />&nbsp;&nbsp;&nbsp; public function area();<br />&nbsp;&nbsp; &nbsp;<br />}//Fin de la interfaz<br /><br />?&gt;</pre>
<p>Ahora cambiemos la clase abstracta Figura, simplemente eliminamos el m&eacute;todo area();</p>
<p>Luego veamos como quedaria la clase Rectangulo, para usar una interfaz usaremos la palabra <em><strong>implements</strong></em>:</p>
<p><em><strong>Nuevo Archivo: Rectangulo.php</strong></em></p>
<pre>&lt;?php<br /><br />class Rectangulo extends Figura implements IFigura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;<br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>Si no implementaramos area() cuando corrieramos el codigo pasar&iacute;a esto:</p>
<pre><strong>Fatal error</strong>:  Class Rectangulo contains 1 abstract method and  must therefore be declared abstract or implement the remaining methods  (IFigura::area) in...</pre>
<p>Nos dice que hay un m&eacute;todo abstracto declarado en la interfaz y que en Rectangulo no ha sido implementado.</p>
<p>Recordemos incluir la interfaz en el index:</p>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Figura.php';<br />include 'IFigura.php';//Nueva inclusion<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />.<br />.<br />.<br /><br />?&gt;</pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas  en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sun, 18 Jul 2010 22:13:10</pubDate>
</item>
<item> 
	<title>Diego Escares está siguiendo a sauljp07</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Diego Escares está siguiendo a sauljp07                                                                                                              ...]]></description>
	<content:encoded><![CDATA[<strong><a href="/Null" title="Ir al perfil de Diego Escares">Diego Escares</a></strong> está siguiendo a <a href="/sauljp07" title="Ir al perfil de Diego Escares">sauljp07</a>]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Sun, 18 Jul 2010 21:49:16</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en su perfil</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Ahora sauljp07 es moderador de DocumentoWeb :D]]></description>
	<content:encoded><![CDATA[Ahora sauljp07 es moderador de DocumentoWeb :D]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Sun, 18 Jul 2010 21:06:10</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad II</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Listo...]]></description>
	<content:encoded><![CDATA[Listo...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 15:45:51</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad II </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Listo...]]></description>
	<content:encoded><![CDATA[Listo...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 15:45:10</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Listo...]]></description>
	<content:encoded><![CDATA[Listo...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 15:42:56</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en ¿Qué Framework PHP usas?</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Mira que bien, esa tambien es mi filosofia, y la de Rasmus Lerdorf, yo he utilizado codeigniter, no porque Rasmus lo diga, sino por que es uno de los...]]></description>
	<content:encoded><![CDATA[Mira que bien, esa tambien es mi filosofia, y la de Rasmus Lerdorf, yo he utilizado codeigniter, no porque Rasmus lo diga, sino por que es uno de los patrones exigidos en proyectos universitarios, etc...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 15:38:14</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad II</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Te cuento que, me acabo de dar cuenta jajaja]]></description>
	<content:encoded><![CDATA[Te cuento que, me acabo de dar cuenta jajaja]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 15:34:41</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad II</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Vamos bien parece. Te cuento que cuando editas tus artículos en la parte de abajo sale "más opciones", échale un ojo, ahi puedes enlazar mucho...]]></description>
	<content:encoded><![CDATA[Vamos bien parece. Te cuento que cuando editas tus artículos en la parte de abajo sale "más opciones", échale un ojo, ahi puedes enlazar mucho mejor tus publicaciones.]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Sat, 17 Jul 2010 14:47:09</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en ¿Qué Framework PHP usas?</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Yo para documentoweb no uso. Prefiero crear mi propio código, es más entretenido y se aprende mucho más que con algo creado por otro(s).
He leido...]]></description>
	<content:encoded><![CDATA[Yo para documentoweb no uso. Prefiero crear mi propio código, es más entretenido y se aprende mucho más que con algo creado por otro(s).<br />
He leido muy buenas características de KakePHP por el modelo-vista-controlador. Sin duda el uso de frameworks facilita muchas tareas, pero no he tenido la oportunidad de probarle y estrujar su código.]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Sat, 17 Jul 2010 14:44:57</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en Twitter: PHP: Twittear con PHP y la API de twitter</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[información muy util....]]></description>
	<content:encoded><![CDATA[información muy util....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 10:29:23</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Captcha en PHP para combatir el SPAM</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[muy bueno.....]]></description>
	<content:encoded><![CDATA[muy bueno.....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 10:27:53</pubDate>
</item>
<item> 
	<title>sauljp07 publicó ¿Qué Framework PHP usas?</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.]]></description>
	<content:encoded><![CDATA[<p>Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.</p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 10:20:32</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.]]></description>
	<content:encoded><![CDATA[<p>Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.</p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 09:53:47</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad II </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.]]></description>
	<content:encoded><![CDATA[<p>Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.</p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 09:51:12</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad II </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.]]></description>
	<content:encoded><![CDATA[<p>Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.</p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 09:45:09</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad II </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.]]></description>
	<content:encoded><![CDATA[<p>Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.</p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 09:42:43</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad II </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.]]></description>
	<content:encoded><![CDATA[<p>Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.</p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 09:31:45</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.]]></description>
	<content:encoded><![CDATA[<p>Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.</p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 09:27:51</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Orientado a Objetos Unidad II</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Ya vimos los conceptos fundamentales de los objetos (Unidad I), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos...]]></description>
	<content:encoded><![CDATA[<p>Ya vimos los conceptos fundamentales de los objetos (<a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a>), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos ser&aacute;n las figuras geom&eacute;tricas.</p>
<h2>Herencia</h2>
<p>La <em><strong>herencia</strong></em> se refiera a que una clase B (<strong><em>subclase</em></strong>) puede usar la estructura de una clase A (<em><strong>superclase</strong></em>), igual que en el mundo real las personas heredamos los rasgos f&iacute;sicos de los padres, y no solo los rasgos f&iacute;sicos sino por ejemplo los apellidos.</p>
<p>La <em><strong>herencia</strong></em> es &uacute;til para tener un mejor entendimiento de los procesos de un programa de forma jerarquica o para clasificar una serie de clases rehusando el c&oacute;digo ya escrito.</p>
<p>Las clases que <strong><em>hereden</em></strong> obtendran<strong><em> todos los atributos y funciones</em></strong> de sus padres, y podran acceder a ellos si son <em><strong>public</strong></em> o <strong><em>protected</em></strong>, como explique en la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> los atributos y funciones <strong><em>private</em></strong> solo se pueden acceder dentro de la misma clase que los usa.</p>
<p>Las clases que <em><strong>hereden</strong></em> pueden agregar a su estructura nuevos atributos y funciones sin afectar a la <em><strong>superclase</strong></em>.</p>
<h2>Polimorfismo</h2>
<p>El <em><strong>polimorfismo</strong></em> se refiere a funciones que se llaman igual, pero se comportan diferente, <em>b&aacute;sicamente buscan solucionar el mismo problema de diferentes formas</em>.</p>
<p>Primero crearemos la <em><strong>superclase</strong></em>:</p>
<p><em><strong>Archivo: Figura.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Ahora creamos la primera herencia, para ello usaremos la palabra reservada <em><strong>extends</strong></em>:</p>
<p><em><strong>Archivo: Triangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Triangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $base;<br />&nbsp;&nbsp;&nbsp; private $altura;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getBase(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setBase($base){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;base=$base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getAltura(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setAltura($altura){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;altura=$altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando el c&oacute;digo vemos que en la cabecera se escribe <em><strong>extends</strong></em> luego de darle nombre a la <em><strong>subclase</strong><strong>&nbsp;</strong></em> en este caso Triangulo, e inmediatamente despu&eacute;s el nombre de la<em><strong> superclase</strong></em>.</p>
<p>El <em>Triangulo</em> ahora obtiene los atributos y funciones de <em>Figura</em>.</p>
<p>La funci&oacute;n <em>area()</em> se sobrescribe y se le da la nueva forma.</p>
<p>Creando otra <em><strong>subclase</strong></em>:</p>
<p><em><strong>Archivo: Rectangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Rectangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando la funci&oacute;n <strong>area()</strong> podemos ver que su comportamiento cambia para ambas clases, pero siguen siendo la misma funci&oacute;n heredada.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">//Triangulo<br />&nbsp;   public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />//Rectangulo<br />    public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }</span></span></span></span></span></pre>
<p>Para finalizar:</p>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />include 'Figura.php';<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />$triangulo = new Triangulo();<br />$triangulo-&gt;setNombre("Triangulo");<br />$triangulo-&gt;setAltura(2);<br />$triangulo-&gt;setBase(2);<br /><br />echo 'Nombre: '.$triangulo-&gt;getNombre().', Area: '.$triangulo-&gt;area();<br /><br />echo '&lt;br/&gt;';<br /><br />$rectangulo = new Rectangulo();<br />$rectangulo-&gt;setNombre("Rectangulo");<br />$rectangulo-&gt;setLadoA(2);<br />$rectangulo-&gt;setLadoB(2);<br /><br />echo 'Nombre: '.$rectangulo-&gt;getNombre().', Area: '.$rectangulo-&gt;area();<br /><br />?&gt;</span></span></span></span></span></pre>
<p>La salida seria algo as&iacute;:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Nombre: Triangulo, Area: 2<br />Nombre: Rectangulo, Area: 4</span></span></span></span></span></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 09:26:05</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Ya vimos los conceptos fundamentales de los objetos (Unidad I), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos...]]></description>
	<content:encoded><![CDATA[<p>Ya vimos los conceptos fundamentales de los objetos (<a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a>), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos ser&aacute;n las figuras geom&eacute;tricas.</p>
<h2>Herencia</h2>
<p>La <em><strong>herencia</strong></em> se refiera a que una clase B (<strong><em>subclase</em></strong>) puede usar la estructura de una clase A (<em><strong>superclase</strong></em>), igual que en el mundo real las personas heredamos los rasgos f&iacute;sicos de los padres, y no solo los rasgos f&iacute;sicos sino por ejemplo los apellidos.</p>
<p>La <em><strong>herencia</strong></em> es &uacute;til para tener un mejor entendimiento de los procesos de un programa de forma jerarquica o para clasificar una serie de clases rehusando el c&oacute;digo ya escrito.</p>
<p>Las clases que <strong><em>hereden</em></strong> obtendran<strong><em> todos los atributos y funciones</em></strong> de sus padres, y podran acceder a ellos si son <em><strong>public</strong></em> o <strong><em>protected</em></strong>, como explique en la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> los atributos y funciones <strong><em>private</em></strong> solo se pueden acceder dentro de la misma clase que los usa.</p>
<p>Las clases que <em><strong>hereden</strong></em> pueden agregar a su estructura nuevos atributos y funciones sin afectar a la <em><strong>superclase</strong></em>.</p>
<h2>Polimorfismo</h2>
<p>El <em><strong>polimorfismo</strong></em> se refiere a funciones que se llaman igual, pero se comportan diferente, <em>b&aacute;sicamente buscan solucionar el mismo problema de diferentes formas</em>.</p>
<p>Primero crearemos la <em><strong>superclase</strong></em>:</p>
<p><em><strong>Archivo: Figura.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Ahora creamos la primera herencia, para ello usaremos la palabra reservada <em><strong>extends</strong></em>:</p>
<p><em><strong>Archivo: Triangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Triangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $base;<br />&nbsp;&nbsp;&nbsp; private $altura;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getBase(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setBase($base){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;base=$base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getAltura(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setAltura($altura){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;altura=$altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando el c&oacute;digo vemos que en la cabecera se escribe <em><strong>extends</strong></em> luego de darle nombre a la <em><strong>subclase</strong><strong>&nbsp;</strong></em> en este caso Triangulo, e inmediatamente despu&eacute;s el nombre de la<em><strong> superclase</strong></em>.</p>
<p>El <em>Triangulo</em> ahora obtiene los atributos y funciones de <em>Figura</em>.</p>
<p>La funci&oacute;n <em>area()</em> se sobrescribe y se le da la nueva forma.</p>
<p>Creando otra <em><strong>subclase</strong></em>:</p>
<p><em><strong>Archivo: Rectangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Rectangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando la funci&oacute;n <strong>area()</strong> podemos ver que su comportamiento cambia para ambas clases, pero siguen siendo la misma funci&oacute;n heredada.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">//Triangulo<br />&nbsp;   public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />//Rectangulo<br />    public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }</span></span></span></span></span></pre>
<p>Para finalizar:</p>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />include 'Figura.php';<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />$triangulo = new Triangulo();<br />$triangulo-&gt;setNombre("Triangulo");<br />$triangulo-&gt;setAltura(2);<br />$triangulo-&gt;setBase(2);<br /><br />echo 'Nombre: '.$triangulo-&gt;getNombre().', Area: '.$triangulo-&gt;area();<br /><br />echo '&lt;br/&gt;';<br /><br />$rectangulo = new Rectangulo();<br />$rectangulo-&gt;setNombre("Rectangulo");<br />$rectangulo-&gt;setLadoA(2);<br />$rectangulo-&gt;setLadoB(2);<br /><br />echo 'Nombre: '.$rectangulo-&gt;getNombre().', Area: '.$rectangulo-&gt;area();<br /><br />?&gt;</span></span></span></span></span></pre>
<p>La salida seria algo as&iacute;:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Nombre: Triangulo, Area: 2<br />Nombre: Rectangulo, Area: 4</span></span></span></span></span></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sat, 17 Jul 2010 08:17:47</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Ya vimos los conceptos fundamentales de los objetos (Unidad I), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos...]]></description>
	<content:encoded><![CDATA[<p>Ya vimos los conceptos fundamentales de los objetos (<a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a>), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos ser&aacute;n las figuras geom&eacute;tricas.</p>
<h2>Herencia</h2>
<p>La <em><strong>herencia</strong></em> se refiera a que una clase B (<strong><em>subclase</em></strong>) puede usar la estructura de una clase A (<em><strong>superclase</strong></em>), igual que en el mundo real las personas heredamos los rasgos f&iacute;sicos de los padres, y no solo los rasgos f&iacute;sicos sino por ejemplo los apellidos.</p>
<p>La <em><strong>herencia</strong></em> es &uacute;til para tener un mejor entendimiento de los procesos de un programa de forma jerarquica o para clasificar una serie de clases rehusando el c&oacute;digo ya escrito.</p>
<p>Las clases que <strong><em>hereden</em></strong> obtendran<strong><em> todos los atributos y funciones</em></strong> de sus padres, y podran acceder a ellos si son <em><strong>public</strong></em> o <strong><em>protected</em></strong>, como explique en la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> los atributos y funciones <strong><em>private</em></strong> solo se pueden acceder dentro de la misma clase que los usa.</p>
<p>Las clases que <em><strong>hereden</strong></em> pueden agregar a su estructura nuevos atributos y funciones sin afectar a la <em><strong>superclase</strong></em>.</p>
<h2>Polimorfismo</h2>
<p>El <em><strong>polimorfismo</strong></em> se refiere a funciones que se llaman igual, pero se comportan diferente, <em>b&aacute;sicamente buscan solucionar el mismo problema de diferentes formas</em>.</p>
<p>Primero crearemos la <em><strong>superclase</strong></em>:</p>
<p><em><strong>Archivo: Figura.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Ahora creamos la primera herencia, para ello usaremos la palabra reservada <em><strong>extends</strong></em>:</p>
<p><em><strong>Archivo: Triangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Triangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $base;<br />&nbsp;&nbsp;&nbsp; private $altura;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getBase(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setBase($base){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;base=$base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getAltura(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setAltura($altura){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;altura=$altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando el c&oacute;digo vemos que en la cabecera se escribe <em><strong>extends</strong></em> luego de darle nombre a la <em><strong>subclase</strong><strong>&nbsp;</strong></em> en este caso Triangulo, e inmediatamente despu&eacute;s el nombre de la<em><strong> superclase</strong></em>.</p>
<p>El <em>Triangulo</em> ahora obtiene los atributos y funciones de <em>Figura</em>.</p>
<p>La funci&oacute;n <em>area()</em> se sobrescribe y se le da la nueva forma.</p>
<p>Creando otra <em><strong>subclase</strong></em>:</p>
<p><em><strong>Archivo: Rectangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Rectangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando la funci&oacute;n <strong>area()</strong> podemos ver que su comportamiento cambia para ambas clases, pero siguen siendo la misma funci&oacute;n heredada.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">//Triangulo<br />&nbsp;   public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />//Rectangulo<br />    public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }</span></span></span></span></span></pre>
<p>Para finalizar:</p>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />include 'Figura.php';<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />$triangulo = new Triangulo();<br />$triangulo-&gt;setNombre("Triangulo");<br />$triangulo-&gt;setAltura(2);<br />$triangulo-&gt;setBase(2);<br /><br />echo 'Nombre: '.$triangulo-&gt;getNombre().', Area: '.$triangulo-&gt;area();<br /><br />echo '&lt;br/&gt;';<br /><br />$rectangulo = new Rectangulo();<br />$rectangulo-&gt;setNombre("Rectangulo");<br />$rectangulo-&gt;setLadoA(2);<br />$rectangulo-&gt;setLadoB(2);<br /><br />echo 'Nombre: '.$rectangulo-&gt;getNombre().', Area: '.$rectangulo-&gt;area();<br /><br />?&gt;</span></span></span></span></span></pre>
<p>La salida seria algo as&iacute;:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Nombre: Triangulo, Area: 2<br />Nombre: Rectangulo, Area: 4</span></span></span></span></span></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 12:56:42</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Ya vimos los conceptos fundamentales de los objetos (Unidad I), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos...]]></description>
	<content:encoded><![CDATA[<p>Ya vimos los conceptos fundamentales de los objetos (<a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a>), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos ser&aacute;n las figuras geom&eacute;tricas.</p>
<h2>Herencia</h2>
<p>La <em><strong>herencia</strong></em> se refiera a que una clase B (<strong><em>subclase</em></strong>) puede usar la estructura de una clase A (<em><strong>superclase</strong></em>), igual que en el mundo real las personas heredamos los rasgos f&iacute;sicos de los padres, y no solo los rasgos f&iacute;sicos sino por ejemplo los apellidos.</p>
<p>La <em><strong>herencia</strong></em> es &uacute;til para tener un mejor entendimiento de los procesos de un programa de forma jerarquica o para clasificar una serie de clases rehusando el c&oacute;digo ya escrito.</p>
<p>Las clases que <strong><em>hereden</em></strong> obtendran<strong><em> todos los atributos y funciones</em></strong> de sus padres, y podran acceder a ellos si son <em><strong>public</strong></em> o <strong><em>protected</em></strong>, como explique en la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> los atributos y funciones <strong><em>private</em></strong> solo se pueden acceder dentro de la misma clase que los usa.</p>
<p>Las clases que <em><strong>hereden</strong></em> pueden agregar a su estructura nuevos atributos y funciones sin afectar a la <em><strong>superclase</strong></em>.</p>
<h2>Polimorfismo</h2>
<p>El <em><strong>polimorfismo</strong></em> se refiere a funciones que se llaman igual, pero se comportan diferente, <em>b&aacute;sicamente buscan solucionar el mismo problema de diferentes formas</em>.</p>
<p>Primero crearemos la <em><strong>superclase</strong></em>:</p>
<p><em><strong>Archivo: Figura.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Ahora creamos la primera herencia, para ello usaremos la palabra reservada <em><strong>extends</strong></em>:</p>
<p><em><strong>Archivo: Triangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Triangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $base;<br />&nbsp;&nbsp;&nbsp; private $altura;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getBase(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setBase($base){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;base=$base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getAltura(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setAltura($altura){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;altura=$altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando el c&oacute;digo vemos que en la cabecera se escribe <em><strong>extends</strong></em> luego de darle nombre a la <em><strong>subclase</strong><strong>&nbsp;</strong></em> en este caso Triangulo, e inmediatamente despu&eacute;s el nombre de la<em><strong> superclase</strong></em>.</p>
<p>El <em>Triangulo</em> ahora obtiene los atributos y funciones de <em>Figura</em>.</p>
<p>La funci&oacute;n <em>area()</em> se sobrescribe y se le da la nueva forma.</p>
<p>Creando otra <em><strong>subclase</strong></em>:</p>
<p><em><strong>Archivo: Rectangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Rectangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando la funci&oacute;n <strong>area()</strong> podemos ver que su comportamiento cambia para ambas clases, pero siguen siendo la misma funci&oacute;n heredada.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">//Triangulo<br />&nbsp;   public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />//Rectangulo<br />    public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }</span></span></span></span></span></pre>
<p>Para finalizar:</p>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />include 'Figura.php';<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />$triangulo = new Triangulo();<br />$triangulo-&gt;setNombre("Triangulo");<br />$triangulo-&gt;setAltura(2);<br />$triangulo-&gt;setBase(2);<br /><br />echo 'Nombre: '.$triangulo-&gt;getNombre().', Area: '.$triangulo-&gt;area();<br /><br />echo '&lt;br/&gt;';<br /><br />$rectangulo = new Rectangulo();<br />$rectangulo-&gt;setNombre("Rectangulo");<br />$rectangulo-&gt;setLadoA(2);<br />$rectangulo-&gt;setLadoB(2);<br /><br />echo 'Nombre: '.$rectangulo-&gt;getNombre().', Area: '.$rectangulo-&gt;area();<br /><br />?&gt;</span></span></span></span></span></pre>
<p>La salida seria algo as&iacute;:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Nombre: Triangulo, Area: 2<br />Nombre: Rectangulo, Area: 4</span></span></span></span></span></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 12:55:25</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Ya vimos los conceptos fundamentales de los objetos (Unidad I), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos...]]></description>
	<content:encoded><![CDATA[<p>Ya vimos los conceptos fundamentales de los objetos (<a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a>), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos ser&aacute;n las figuras geom&eacute;tricas.</p>
<h2>Herencia</h2>
<p>La <em><strong>herencia</strong></em> se refiera a que una clase B (<strong><em>subclase</em></strong>) puede usar la estructura de una clase A (<em><strong>superclase</strong></em>), igual que en el mundo real las personas heredamos los rasgos f&iacute;sicos de los padres, y no solo los rasgos f&iacute;sicos sino por ejemplo los apellidos.</p>
<p>La <em><strong>herencia</strong></em> es &uacute;til para tener un mejor entendimiento de los procesos de un programa de forma jerarquica o para clasificar una serie de clases rehusando el c&oacute;digo ya escrito.</p>
<p>Las clases que <strong><em>hereden</em></strong> obtendran<strong><em> todos los atributos y funciones</em></strong> de sus padres, y podran acceder a ellos si son <em><strong>public</strong></em> o <strong><em>protected</em></strong>, como explique en la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> los atributos y funciones <strong><em>private</em></strong> solo se pueden acceder dentro de la misma clase que los usa.</p>
<p>Las clases que <em><strong>hereden</strong></em> pueden agregar a su estructura nuevos atributos y funciones sin afectar a la <em><strong>superclase</strong></em>.</p>
<h2>Polimorfismo</h2>
<p>El <em><strong>polimorfismo</strong></em> se refiere a funciones que se llaman igual, pero se comportan diferente, <em>b&aacute;sicamente buscan solucionar el mismo problema de diferentes formas</em>.</p>
<p>Primero crearemos la <em><strong>superclase</strong></em>:</p>
<p><em><strong>Archivo: Figura.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Ahora creamos la primera herencia, para ello usaremos la palabra reservada <em><strong>extends</strong></em>:</p>
<p><em><strong>Archivo: Triangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Triangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $base;<br />&nbsp;&nbsp;&nbsp; private $altura;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getBase(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setBase($base){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;base=$base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getAltura(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setAltura($altura){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;altura=$altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando el c&oacute;digo vemos que en la cabecera se escribe <em><strong>extends</strong></em> luego de darle nombre a la <em><strong>subclase</strong><strong>&nbsp;</strong></em> en este caso Triangulo, e inmediatamente despu&eacute;s el nombre de la<em><strong> superclase</strong></em>.</p>
<p>El <em>Triangulo</em> ahora obtiene los atributos y funciones de <em>Figura</em>.</p>
<p>La funci&oacute;n <em>area()</em> se sobrescribe y se le da la nueva forma.</p>
<p>Creando otra <em><strong>subclase</strong></em>:</p>
<p><em><strong>Archivo: Rectangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Rectangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando la funci&oacute;n <strong>area()</strong> podemos ver que su comportamiento cambia para ambas clases, pero siguen siendo la misma funci&oacute;n heredada.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">//Triangulo<br />&nbsp;   public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />//Rectangulo<br />    public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }</span></span></span></span></span></pre>
<p>Para finalizar:</p>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />include 'Figura.php';<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />$triangulo = new Triangulo();<br />$triangulo-&gt;setNombre("Triangulo");<br />$triangulo-&gt;setAltura(2);<br />$triangulo-&gt;setBase(2);<br /><br />echo 'Nombre: '.$triangulo-&gt;getNombre().', Area: '.$triangulo-&gt;area();<br /><br />echo '&lt;br/&gt;';<br /><br />$rectangulo = new Rectangulo();<br />$rectangulo-&gt;setNombre("Rectangulo");<br />$rectangulo-&gt;setLadoA(2);<br />$rectangulo-&gt;setLadoB(2);<br /><br />echo 'Nombre: '.$rectangulo-&gt;getNombre().', Area: '.$rectangulo-&gt;area();<br /><br />?&gt;</span></span></span></span></span></pre>
<p>La salida seria algo as&iacute;:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Nombre: Triangulo, Area: 2<br />Nombre: Rectangulo, Area: 4</span></span></span></span></span></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 12:41:43</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en Como comprar un dominio de .com</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[si en realidad zobyhost.com es muy bueno...]]></description>
	<content:encoded><![CDATA[si en realidad zobyhost.com es muy bueno...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 11:17:02</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en el perfil de Diego Escares</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[webmaster, de verdad me gusta esta pagina...]]></description>
	<content:encoded><![CDATA[webmaster, de verdad me gusta esta pagina...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 11:15:45</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[exacto yo tampoco entendi jajaja.
Y si voy a ver que pasa con la imagen....
Y si, yo lo escribi jajaja, pienso hacer la trilogia OO]]></description>
	<content:encoded><![CDATA[exacto yo tampoco entendi jajaja.<br />
Y si voy a ver que pasa con la imagen....<br />
Y si, yo lo escribi jajaja, pienso hacer la trilogia OO]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 11:14:37</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[]]></description>
	<content:encoded><![CDATA[]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Fri, 16 Jul 2010 10:59:54</pubDate>
</item>
<item> 
	<title>sauljp07 y Diego Escares ahora son amigos</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[sauljp07 y Diego Escares ahora son amigos                                                                                                             ...]]></description>
	<content:encoded><![CDATA[<strong><a href="/sauljp07" title="Ir al perfil de Diego Escares">sauljp07</a></strong> y <a href="/Null" title="Ir al perfil de Diego Escares">Diego Escares</a> ahora son amigos]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Fri, 16 Jul 2010 10:58:35</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en su perfil</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Hola sauljp07, bienvenido a DocumentoWeb! =)]]></description>
	<content:encoded><![CDATA[Hola sauljp07, bienvenido a DocumentoWeb! =)]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Fri, 16 Jul 2010 10:57:55</pubDate>
</item>
<item> 
	<title>Diego Escares comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Wow! lo escribiste tu verdad? déjame leerlo con más calma, mientras, verifica las imágenes en tu servidor que no se ven.
¡Gracias por...]]></description>
	<content:encoded><![CDATA[Wow! lo escribiste tu verdad? déjame leerlo con más calma, mientras, verifica las imágenes en tu servidor que no se ven.<br />
¡Gracias por compartir!<br />
<br />
PD: Kakaroto, no entendí tu emoción :S]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Fri, 16 Jul 2010 10:54:06</pubDate>
</item>
<item> 
	<title> Diego Escares editó la publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I de sauljp07 </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Wow! lo escribiste tu verdad? déjame leerlo con más calma, mientras, verifica las imágenes en tu servidor que no se ven.
¡Gracias por...]]></description>
	<content:encoded><![CDATA[Wow! lo escribiste tu verdad? déjame leerlo con más calma, mientras, verifica las imágenes en tu servidor que no se ven.<br />
¡Gracias por compartir!<br />
<br />
PD: Kakaroto, no entendí tu emoción :S]]></content:encoded>
	<dc:creator>Diego Escares</dc:creator>
	<pubDate>Fri, 16 Jul 2010 10:52:56</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Wow! lo escribiste tu verdad? déjame leerlo con más calma, mientras, verifica las imágenes en tu servidor que no se ven.
¡Gracias por...]]></description>
	<content:encoded><![CDATA[Wow! lo escribiste tu verdad? déjame leerlo con más calma, mientras, verifica las imágenes en tu servidor que no se ven.<br />
¡Gracias por compartir!<br />
<br />
PD: Kakaroto, no entendí tu emoción :S]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 08:11:00</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en Como comprar un dominio de .com</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[bueno si atbhost.net no te cuadra zobyhost.com nunca falla...]]></description>
	<content:encoded><![CDATA[bueno si atbhost.net no te cuadra zobyhost.com nunca falla...]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 07:48:21</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[¬¬]]></description>
	<content:encoded><![CDATA[¬¬]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 07:42:16</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[¬¬]]></description>
	<content:encoded><![CDATA[¬¬]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 07:39:51</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[¬¬]]></description>
	<content:encoded><![CDATA[¬¬]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Fri, 16 Jul 2010 07:38:46</pubDate>
</item>
<item> 
	<title>kakaroto comentó en PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Lo siento no pude contener mi emocion
I
I
V
aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa...]]></description>
	<content:encoded><![CDATA[Lo siento no pude contener mi emocion<br />
I<br />
I<br />
V<br />
aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa]]></content:encoded>
	<dc:creator>kakaroto</dc:creator>
	<pubDate>Thu, 15 Jul 2010 22:53:53</pubDate>
</item>
<item> 
	<title> sauljp07 editó su publicación PHP: Tutorial: Diseño Orientado a Objetos Unidad I </title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Muchas gracias sauljp07 probare ese hosting si presento problemas a cudire a ti primero creare unas pequeñas pruebas y si funciona cambiare todas mis...]]></description>
	<content:encoded><![CDATA[Muchas gracias sauljp07 probare ese hosting si presento problemas a cudire a ti primero creare unas pequeñas pruebas y si funciona cambiare todas mis webs a esa :P]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 15 Jul 2010 21:58:52</pubDate>
</item>
<item> 
	<title>sauljp07 publicó PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Patr&oacute;n de Dise&ntilde;o  (design patterns)
Los patrones de dise&ntilde;o se refieren a la arquitectura de un programa, a la forma en la que...]]></description>
	<content:encoded><![CDATA[<h2>Patr&oacute;n de Dise&ntilde;o  (design patterns)</h2>
<p>Los <strong><em>patrones de dise&ntilde;o</em></strong> se refieren a la arquitectura de un programa, a la forma en la que est&aacute; construidos, ellos se crean por la necesidad de solucionar alg&uacute;n &nbsp;problemas de forma efectiva y reusable, adem&aacute;s pretenden estandarizar el modo en que se desarrolla e implementa el software, facilitar el aprendizaje de las nuevas generaciones de dise&ntilde;adores, y generar un criterio de codigo eficiente y la optimizaci&oacute;n de una aplicaci&oacute;n.</p>
<p>Un <strong><em>Dise&ntilde;ador de Software</em></strong> (mejor conocido como <em>programador</em>) demuestra su madurez profesional aplicando dichos patrones que son variados y evocados a distintas soluciones o distintos software.</p>
<h2>OOP   (programaci&oacute;n orientada a objetos)</h2>
<p>La <em><strong>oop (<span id="result_box"><span>object-oriented  programming</span></span>)</strong></em> es una <em>abstracci&oacute;n</em> del mundo real, en otras palabras intenta imitar los objetos y circunstancias de la vida real, as&iacute; como los objetos de nuestro mundo poseen <em>caracter&iacute;sticas</em> <strong><em>(atributos)</em></strong> como: color, peso, tama&ntilde;o, estatura, entre otros, y <em>comportamientos</em> <em><strong>(funciones, m&eacute;todos o procedimientos) </strong></em>como: caminar, correr, disparar, buscar, entre otras, estos objetos tambi&eacute;n los tienen, en forma de c&oacute;digo, este c&oacute;digo que le da forma a un objeto se le llama <em>"clase"</em><strong><em> (class).</em></strong></p>
<p>La <em><strong>oop </strong></em>tambi&eacute;n es conocida como paradigma de programaci&oacute;n orientada a objetos.</p>
<p>PHP es un lenguaje de programaci&oacute;n que soporta la <strong><em>oop</em></strong> y es de gran utilidad crear objetos.</p>
<p>Los <em><strong>atributos</strong></em> siempre ser&aacute;n sustantivos y las <em><strong>funciones</strong></em> verbos.</p>
<h2>Class</h2>
<p>Antes de empezar con el c&oacute;digo, se puede decir que un objeto tiene dos niveles, uno que es la <em><strong>clase</strong></em> y otro que es su <em><strong>implementaci&oacute;n (instancia)</strong></em> o <em><strong>creaci&oacute;n, </strong></em>la <em><strong>clase</strong></em> es la plantilla por la cual se regir&aacute; la forma del <em><strong>objeto</strong></em>, por ejemplo la clase <em>Persona</em>, esta tiene atributos como color de cabello, estatura, nacionalidad, nombre entre otros, pero no es ninguna <em>Persona</em> en particular, es solo el <em><strong>concepto</strong></em> de lo que debe ser una <em>Persona</em>, una <strong><em>instancia </em></strong>o<strong><em> creaci&oacute;n</em></strong> de esta clase eres tu, y yo, el escritor de este articulo, ambos tal vez con nombres, nacionalidades, y color de cabello distintos, pero los dos somos tangibles, existimos, esa es la diferencia principal entre una <em><strong>clase (concepto)</strong></em> y una <em><strong>instancia (realidad)</strong></em>.</p>
<p><em><strong>La clase es un tipo de dato creado por el desarrollador.</strong></em></p>
<p>Ahora &iquest;C&oacute;mo transformamos todo esto en c&oacute;digo PHP?:</p>
<p class="codigo"><em><strong><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Archivo: Persona.php</span></span></span></span></span></strong></em></p>
<p class="codigo"><em><strong><span class="c1">&nbsp;</span></strong><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Recomiendo que cada clase se escriba en un archivo con su nombre, es posible crear varias clases en un solo archivo PHP.</span></span></span></span></span></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Persona {//Inicio de la Clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $nombre;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; //Funciones generalmente P&uacute;blicas<br />&nbsp;&nbsp;&nbsp; public function getNombre(){//Puede ser cambiado por obtenerNombre()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre){//Puede ser cambiado por insertarNombre()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$this-&gt;nombre=$nombre;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; private function pensar($pensamiento){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $pensamiento;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la Clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Observemos que tanto los atributos como las funciones est&aacute;n dentro de la clase, eso se llama encapsulamiento.</p>
<p>Las funciones get y set son utilizadas siempre para obtener e insertar los valores de los atributos de la clase, generalmente cada atributo posee estas dos funciones asociadas.</p>
<p>Las funciones y atributos <em><strong>public </strong></em>son la informaci&oacute;n a la cual se puede acceder desde la <strong><em>instancia</em></strong> de la clase, (el patr&oacute;n OO, exige que los atributos sean <em><strong>private</strong></em>, pero a nivel de programaci&oacute;n se pueden hacer publicos) ejemplo, otra persona puede pedirte tu nombre, pero no puede pedirte tus pensamientos (es solo para ejemplificar), por ende las funciones y atributos <em><strong>private</strong></em> solo pueden ser accedidas dentro de la clase.</p>
<p>La palabra reservada <strong>$this-&gt;</strong> se utiliza para llamar atributos y funciones de la misma clase, en este caso el nombre.</p>
<p>Mejorando el c&oacute;digo:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Persona {//Inicio de la Clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $nombre;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; //Funciones generalmente P&uacute;blicas<br />&nbsp;&nbsp;&nbsp; public function getNombre(){//Puede ser cambiado por obtenerNombre()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;pensar('Entrego mi nombre&lt;br/&gt;');//Llamando a la funci&oacute;n Privada<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre){//Puede ser cambiado por insertarNombre()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;pensar('Cambio mi nombre&lt;br/&gt;');//Llamando a la funci&oacute;n Privada<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$this-&gt;nombre=$nombre;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; private function pensar($pensamiento){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $pensamiento;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la Clase<br /><br />?&gt;<br /></span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">As&iacute; podemos ver el uso de la funci&oacute;n privada.</span></span></span></span></span></p>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Ahora:</span></span></span></span></span></p>
<p><em><strong></strong></em><em><strong><span><span><span><span><span>Archivo: index .php</span></span></span></span></span></strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />   include 'Persona.php';<br />   $objeto = new Persona();<br />   $objeto-&gt;setNombre('Pedro');<br />   echo 'Nombre '.$objeto-&gt;getNombre();<br /><br />?&gt;</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Para poder darle vida a nuestro objeto primero incluimos el archivo donde se encuentra la clase, luego con la palabra reservada <em><strong>new </strong></em>instanciamos el objeto:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$objeto = new Persona();</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Este sentencia crea un objeto Persona en la variable <em>$objeto</em> (esta variable puede tomar cualquier nombre).</span></span></span></span></span></p>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">y para finalizar usamos sus funciones p&uacute;blicas:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$objeto-&gt;setNombre('Pedro');<br />echo 'Nombre '.$objeto-&gt;getNombre();</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">el resultado seria:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Cambio mi nombre<br />Entrego mi nombre<br />Nombre Pedro</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 15 Jul 2010 21:53:42</pubDate>
</item>
<item> 
	<title>sauljp07 está siguiendo a Diego Escares</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[sauljp07 está siguiendo a Diego Escares                                                                                                              ...]]></description>
	<content:encoded><![CDATA[<strong><a href="/sauljp07" title="Ir al perfil de sauljp07">sauljp07</a></strong> está siguiendo a <a href="/Null" title="Ir al perfil de sauljp07">Diego Escares</a>]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 15 Jul 2010 19:14:25</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en Como comprar un dominio de .com</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[bueno, antes que todo que fina esta "documentoweb.com", pronto hare algun post, tal vez sobre algun patron de diseño de software, framework php, o...]]></description>
	<content:encoded><![CDATA[bueno, antes que todo que fina esta "documentoweb.com", pronto hare algun post, tal vez sobre algun patron de diseño de software, framework php, o sobre persistencia de datos como phpDataMapper o MyActiveRecord, o sobre modelado de objetos en php.<br />
<br />
este: <br />
zobyhost.com <br />
no falla (hasta ahora), con respecto a gmail no estaba enterado lo de el telefono celular, hace pocos dias cree una cuenta para un proyecto y fue muy rapido hacerla.<br />
<br />
000webhost.com<br />
es muy usada pero no muy buena (con respecto a zoby)<br />
<br />
y <br />
<br />
atbhost.net:<br />
hasta ahora es el mejor (criterio personal y de algunos colegas)]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 15 Jul 2010 18:44:42</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en Como comprar un dominio de .com</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[Pero que hosting gratuito usas?, no has intentado probar zobyhost.com, atbhost.net ó 000webhost.com?, yo particularmente recomiendo los 2...]]></description>
	<content:encoded><![CDATA[Pero que hosting gratuito usas?, no has intentado probar zobyhost.com, atbhost.net ó 000webhost.com?, yo particularmente recomiendo los 2 primeros....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Thu, 15 Jul 2010 15:24:55</pubDate>
</item>
<item> 
	<title>sauljp07 comentó en SEO: htaccess: Transformar URLs con .htaccess</title> 
	<link>http://www.documentoweb.com/sauljp07</link> 
	<guid>http://www.documentoweb.com/sauljp07</guid> 
	<description><![CDATA[estaba necesitando esta informacion justo ahora, nuchas gracias.....]]></description>
	<content:encoded><![CDATA[estaba necesitando esta informacion justo ahora, nuchas gracias.....]]></content:encoded>
	<dc:creator>sauljp07</dc:creator>
	<pubDate>Sun, 06 Jun 2010 10:37:34</pubDate>
</item>

</channel>
</rss>
