<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oscar Angulo &#187; Uncategorized</title>
	<atom:link href="http://www.oscarangulo.cl/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oscarangulo.cl</link>
	<description>Desarrollo, Arquitectura, Tecnologías y mucho mas...</description>
	<lastBuildDate>Thu, 18 Feb 2010 20:22:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>&#8220;The test form is only available for requests from the local machine&#8221;</title>
		<link>http://www.oscarangulo.cl/2010/02/the-test-form-is-only-available-for-requests-from-the-local-machine-2/</link>
		<comments>http://www.oscarangulo.cl/2010/02/the-test-form-is-only-available-for-requests-from-the-local-machine-2/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 18:30:33 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[The test form is only available]]></category>
		<category><![CDATA[The test form is only available for requests from the local machine]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=117</guid>
		<description><![CDATA[Solución a este molesto mensaje&#8230; Espero les sirva saludos.!!!]]></description>
			<content:encoded><![CDATA[<p>Solución a este molesto mensaje&#8230;</p>
<pre class="brush:xml">
    <system.web>
        <webServices>
<protocols>
                <add name="HttpGet"/>
                <add name="HttpPost"/>
            </protocols>
         </webServices>
    </system.web>
</pre>
<p>Espero les sirva saludos.!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2010/02/the-test-form-is-only-available-for-requests-from-the-local-machine-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video</title>
		<link>http://www.oscarangulo.cl/2009/10/video/</link>
		<comments>http://www.oscarangulo.cl/2009/10/video/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 13:17:25 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=102</guid>
		<description><![CDATA[Try JibJab Sendables® eCards today!]]></description>
			<content:encoded><![CDATA[<div style="background-color: #e9e9e9; width: 425px;"><object id="A64060" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="319" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="quality" value="high" /><param name="scaleMode" value="showAll" /><param name="allowNetworking" value="all" /><param name="allowFullScreen" value="true" /><param name="FlashVars" value="external_make_id=8bUsGg0Wp7ZgXMsh&amp;service=sendables.jibjab.com&amp;partnerID=JibJab" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://aka.zero.jibjab.com/client/zero/ClientZero_EmbedViewer.swf?external_make_id=8bUsGg0Wp7ZgXMsh&amp;service=sendables.jibjab.com&amp;partnerID=JibJab" /><embed id="A64060" type="application/x-shockwave-flash" width="425" height="319" src="http://aka.zero.jibjab.com/client/zero/ClientZero_EmbedViewer.swf?external_make_id=8bUsGg0Wp7ZgXMsh&amp;service=sendables.jibjab.com&amp;partnerID=JibJab" allowscriptaccess="always" flashvars="external_make_id=8bUsGg0Wp7ZgXMsh&amp;service=sendables.jibjab.com&amp;partnerID=JibJab" allowfullscreen="true" allownetworking="all" scalemode="showAll" quality="high" wmode="transparent"></embed></object></p>
<div style="text-align: center; margin-top: 6px; width: 435px;">Try JibJab Sendables® <a href="http://sendables.jibjab.com/ecards">eCards</a> today!</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/10/video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Y nosotros nos quejamos?</title>
		<link>http://www.oscarangulo.cl/2009/09/y-nosotros-nos-quejamos/</link>
		<comments>http://www.oscarangulo.cl/2009/09/y-nosotros-nos-quejamos/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 15:48:01 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/2009/09/y-nosotros-nos-quejamos/</guid>
		<description><![CDATA[Play Video   Fuerza chicos&#8230; Con esto queda demostrado que todo se puede.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oscarangulo.cl/2009/09/y-nosotros-nos-quejamos/#mediaPlayer_99_0">Play Video</a></p>
<p> </p>
<p>Fuerza chicos&#8230; Con esto queda demostrado que todo se puede.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/09/y-nosotros-nos-quejamos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.oscarangulo.cl/nick.wmv" length="7409038" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>LINQ to XML (como crear rss reader)</title>
		<link>http://www.oscarangulo.cl/2009/09/linq-to-xml-como-crear-rss-reader/</link>
		<comments>http://www.oscarangulo.cl/2009/09/linq-to-xml-como-crear-rss-reader/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 14:06:27 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=94</guid>
		<description><![CDATA[Probablemente la mayor mejora en el modelo de programación que se ha hecho en .NET 3.5 es el trabajo que la consulta de datos sea un concepto de primera clase. Llamamos a este modelo de programación de consultas “LINQ”, que viene de .NET Language Integrated Query. LINQ permite un modelo realmente rico que facilita la <a href='http://www.oscarangulo.cl/2009/09/linq-to-xml-como-crear-rss-reader/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Probablemente la mayor mejora en el modelo de programación que se ha hecho en .NET 3.5 es el trabajo que la consulta de datos<br />
sea un concepto de primera clase. Llamamos a este modelo de programación de consultas “LINQ”, que viene de .NET Language Integrated Query. LINQ permite un modelo realmente rico que facilita la creación de diferentes proveedores de datos. .NET3.5 integra un conjunto de librerías que permiten realizar consultas LINQ sobre objetos, xml y bases de datos.</p>
<p style="text-align: justify;"><span id="more-94"></span><br />
<strong>¿Qué es LINQ to XML?</strong></p>
<p style="text-align: justify;">LINQ to XML es un proveedor de datos de LINQ que está implementado en el namespace “System.Xml.Linq” en .NET 3.5</p>
<p style="text-align: justify;">Proporciona un modelo de programación limpio que nos permite leer, construir y escribir datos en XML. Con esto, podemos realizar consultas LINQ a través de XML que tengamos en el sistema de archivos, desde una URL remota o servicio web, o cualquier contenido XML en memoria.</p>
<p style="text-align: justify;">Nos permite una forma de consultar datos y formarlos mucho más fácilmente que con la API de bajo nivel XmlReader/XmlWriter. También es mucho más eficiente (y usa mucha menos memoria) que la API DOM que tiene XmlDocument.</p>
<p style="text-align: justify;"><strong>Usando LINQ to XML para consultar un archivo XML local</strong></p>
<p style="text-align: justify;">Para una primera toma de contacto y ver cómo funciona  LINQ to XML, podemos crear un archivo local XML simple  como el siguiente, que usa un schema personalizado que hemos definido para guardar nuestras rss:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step2.jpg" border="0" alt="" width="566" height="319" align="bottom" /></p>
<p style="text-align: justify;">Podríamos usar la nueva clase XDocument que viene en el namespace System.Xml.Linq para abrir y consultar el archivo. Lo que queremos es iltrar los elementos &lt;Feed&gt; y devolver una secuencia de las feeds deshabilitadas (esto es, cuando el elemento &lt;Feed&gt; tenga el atributo “status” con el valor “disable”). Con el siguiente código lo conseguimos:</p>
<p style="text-align: justify;">VB:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step4.jpg" border="0" alt="" width="928" height="256" align="bottom" /></p>
<p style="text-align: justify;">C#:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step3.jpg" border="0" alt="" width="816" height="368" align="bottom" /></p>
<p style="text-align: justify;">Fijáos en el código que estamos cargando el archivo XML con el método estático XDocument.Load(path) – que devuelve un objeto XDocument. Como estamos ejecutando este codigo en ASP.NET, usamos el método  Server.MapPath(path) para obtener la ruta correcta de nuestro archivo XML relativo a la página que estamos ejecutando.</p>
<p style="text-align: justify;">Una vez que tenemos el objecto XDocument podemos escribir la expresión LINQ necesaria para obtener los datos que estamos buscando. En el código anterior estamos consultado cada elemento &lt;Feed&gt; del archivo XML. Esto lo conseguimos con la consulta:</p>
<blockquote style="text-align: justify;"><p><em>from feed in feedXML.Decedents(”Feed”)</em></p></blockquote>
<p style="text-align: justify;">Luego le aplicamos un filtro para que devuelva aquellos elementos “Feed” que no tienen el atributo “status” y los que cuyo valor del atributo “status” NO es “disabled”:</p>
<blockquote style="text-align: justify;"><p><em>Where (feed.Attribute(”status”) is<br />
Nothing) OrElse (feed.Attribute(”status”).Value &lt;&gt;<br />
“disabled”)</em></p></blockquote>
<p style="text-align: justify;">Ahora usamos el select de nuestra consulta LINQ para indicar qué datos queremos devolver. Simplemente escribimos “select feed”, LINQ to XML devolverá una secuencia de objetos XElement que representan cada nodo del archivo XML que cumplen el filtro. En el código anterior usamos las características de shaping/projection de LINQ en lugar de definir un nuevo tipo anónimo al vuelo, y definimos dos propiedades –<br />
Name y Feed – que queremos obtener con los subelementos &lt;Name&gt; y &lt;URL&gt; de cada elemento &lt;Feed&gt;:</p>
<blockquote style="text-align: justify;"><p><em>Select Name = feed.Element(”Name”).Value,<br />
Url=feed.Element(”Url”).Value</em></p></blockquote>
<p style="text-align: justify;">Y ahora podemos trabajar con esa colección de datos como lo haríamos con cualquier colección o tabla en .NET. VS 2008 nos da intellisense y chequeo en compilación sobre esta secuencia de  tipos anónimos:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step5.jpg" border="0" alt="" width="487" height="133" align="bottom" /></p>
<p style="text-align: justify;">También podemos enlazar estos resultados con cualquier control de ASP.NET, Windows Forms, o WPF. Por ejemplo, si tenemos un control de lista desplegable (dropdownlist) en nuestra página:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step6.jpg" border="0" alt="" width="522" height="227" align="bottom" /></p>
<p style="text-align: justify;">Podemos usar el código de LINQ to XML anterior paraenlazar los resultados:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step7.jpg" border="0" alt="" width="922" height="178" align="bottom" /></p>
<p style="text-align: justify;">Con esto, nuestra página quedará de la siguiente forma:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step8.jpg" border="0" alt="" width="397" height="149" align="bottom" /></p>
<p style="text-align: justify;"><strong>Umm- ¿que es eso de “tipos anonimos”?</strong></p>
<p style="text-align: justify;">En el código anterior hemos usado una nueva  característica de VB y C# llamada “tipo anónimos”. Los tipos anónimos permiten a los desarrolladores definir tipos directamente en una linea, sin tener que crear una clase para el tipo. Podéis aprender más sobre ellos en el<br />
post sobre los tipos anónimos.</p>
<p style="text-align: justify;">Aunque los tipos anónimos son muy útiles cuando queremos iterar localmente y trabajar con datos, normalmente queremos/necesitamos definir clases cuando pasamos los resultados de las consultas LINQ entre múltiples clases, entre librerías, y entre servicios web.</p>
<p style="text-align: justify;">Para permitir esto, podemos definirnos una clase llamada “FeedDefinition” para representar nuestros datos así:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step9.jpg" border="0" alt="" width="333" height="100" align="bottom" /></p>
<p style="text-align: justify;">Fijáos que estamos usando la característica de “<a href="http://thinkingindotnet.wordpress.com/2007/03/27/nuevas-caracteristicas-de-la-nueva-version-de-c-orcas/">Propiedades automáticas</a>” de C# para definir las propiedades (sin tener que definir una variable para ellos).</p>
<p style="text-align: justify;">Ahora podemos escribir el siguiente método para devolver una lista genérica List&lt;FeedDefinition&gt;:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step10.jpg" border="0" alt="" width="849" height="257" align="bottom" /></p>
<p style="text-align: justify;">Fijáos que el único cambio que hemos hecho a la consulta LINQ to XML es que en vez de usar un tipo anónimo (”select new” sin ningún tipo) hemos usado  “select new FeedDefinition”. Con este cambio estamos devolviendo una secuencia de objetos FeedDefinition que podemos pasar a otras clases, ensamblados, o a servicios web.</p>
<p style="text-align: justify;"><strong>Usar LINQ to XML para obtener una lista de rss en XML<br />
remota</strong></p>
<p style="text-align: justify;">El método estático XDocument.Load(path) nos permite abrir tanto archivos XML locales, como feeds XML devueltas de una url HTTP. Esto nos permite acceder a RSS remotas, REST APIs, y a cualquier otro contenido XML publicado en la web.</p>
<p style="text-align: justify;">Por ejemplo, veamos el XML de las rss de mi blog(<a href="http://weblogs.asp.net/scottgu/rss.aspx">http://weblogs.asp.net/scottgu/rss.aspx</a>):</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step11.jpg" border="0" alt="" width="805" height="497" align="bottom" /></p>
<p style="text-align: justify;">Con el siguiente código LINQ to XML podemos obtener los datos de mi RSS, y trabajar con cada elemento feed individual como cualquier otro objeto .NET:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step12.jpg" border="0" alt="" width="668" height="494" align="bottom" /></p>
<p style="text-align: justify;">Fijáos cómo estamos convirtiendo el campo “Published” de la rss – que es un string en XML- a un tipo DateTime de .NET. Fijáos también que LINQ to XML añade un tipo XNamespace que nos permite una forma segura de tipos para declarar y trabajar con Namespaces XML ( Lo<br />
que necesitamos hacer para obtener los elementos &lt;slash:comments&gt;).</p>
<p style="text-align: justify;">Podemos aprovechar las características de composición de LINQ para hacer otra consulta más para obtener aquellos post que han sido  publicados en los últimos siete días:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step14.jpg" border="0" alt="" width="662" height="588" align="bottom" /></p>
<p style="text-align: justify;">Como vemos, podemos usar los resultados de una consulta LINQ como parte de entrada de otra. Con esto conseguimos un código muy limpio, y entendible.</p>
<p style="text-align: justify;"><strong>Usar subconsultas LINQ dentro de una expresión LINQ to XML</strong></p>
<p style="text-align: justify;">Si miramos el XML del RSS, veremos que el tag de comentarios de cada post se guardan como elementos &lt;category&gt; repetidos debajo de cada elemento &lt;item&gt;:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step15.jpg" border="0" alt="" width="959" height="396" align="bottom" /></p>
<p style="text-align: justify;">Cuando definimos el modelo de objetos para una clase “BlogEntry”, podemos representar los valores de &lt;category&gt; como una colección de strings. Por ejemplo, con una propiedad “Tags” que es una lista genérica de strings:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step16.jpg" border="0" alt="" width="434" height="152" align="bottom" /></p>
<p style="text-align: justify;">Os estaréis preguntando – ¿Como obtenemos el conjunto de elementos &lt;category&gt; de los elementos &lt;item&gt; y los transformamos en una colección de strings?. LINQ permite que este tipo de escenarios sea muy sencillo, con consultas LINQ anidadas:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step17.jpg" border="0" alt="" width="794" height="450" align="bottom" /></p>
<p style="text-align: justify;">LINQ nos permite coger grandes cantidades de datos y hacerlas jerárquicas (y tomar una estructura de datos jerárquica y llenarla). Podemos usar esta característica con cualquier tipo de fuente de datos – XML, SQL, objetos, arrays, colecciones, etc.</p>
<p style="text-align: justify;"><strong>Juntarlo todo para un lector simple de RSS</strong></p>
<p style="text-align: justify;">Ya hemos visto lo sencillo que es escribir código LINQ to XML para obtener una RSS de un archivo local, y cómo consultarla remotamente para obtener los detalles de cad a elemento. Podemos enlazar el resultado a un GridView o ListView de ASP.NET:</p>
<p style="text-align: justify;"><img src="http://www.scottgu.com/blogposts/rssreader/step0.jpg" border="0" alt="" width="885" height="546" align="bottom" /></p>
<p style="text-align: justify;">Hemos construido una aplicación de ejemplo que junta  todas esas características para obtener un lector de RSS con LINQ to XML y el nuevo control &lt;asp:ListView&gt;. Podéis descargarla de <a href="http://www.scottgu.com/blogposts/rssreader/LINQToXMLRSSReader.zip">aquí</a>. Está tanto en VB como en C#.</p>
<p style="text-align: justify;"><strong>Resumen</strong></p>
<p style="text-align: justify;">LINQ to XML es una herramienta muy potente para consultar, filtrar y transformar datos XML de forma eficiente. Podemos usarlo tanto para XML’s locales o remotos. Podemos usarlo para transformar datos XML en objetos y colecciones .NET que podremos manipular y transferir en nuestras aplicaciones.</p>
<p style="text-align: justify;">LINQ to XML usa el mismo núcleo y conceptos sobre consultas de LINQ, que LINQ to SQL, LINQ to Object, LINQ to SharePoint, LINQ to  mazon, LINQ to NHibernate, etc, usan cuando consultan datos. Podéis aprender más sobre la sintaxis de LINQ y las nuevas características de VB y C# en los siguientes post:</p>
<ul style="text-align: justify;">
<li>
<p style="margin-bottom: 0cm"> </p>
<ul>
<li>
<p style="margin-bottom: 0cm"><a href="http://thinkingindotnet.wordpress.com/2007/03/27/nuevas-caracteristicas-de-la-nueva-version-de-c-orcas/">Propiedades<br />
automáticas, Inicializadores de objetos e inicializadores<br />
de colecciones</a>.</li>
<li>
<p style="margin-bottom: 0cm"><a href="http://thinkingindotnet.wordpress.com/2007/03/28/nueva-caracteristica-de-“orcas”-metodos-de-extension/">Métodos<br />
de extension.</a></li>
<li>
<p style="margin-bottom: 0cm"><a href="http://thinkingindotnet.wordpress.com/2007/04/10/nueva-caracteristica-de-orcas-expresiones-lambda/">Expresiones<br />
Lambda</a></li>
<li>
<p style="margin-bottom: 0cm"><a href="http://thinkingindotnet.wordpress.com/2007/04/22/nueva-caracteristica-de-“orcas”-sintaxis-de-consultas/">Sintaxis<br />
de consultas</a></li>
<li><a href="http://thinkingindotnet.wordpress.com/2007/05/16/nueva-caracteristica-de-orcas-tipos-anonimos/">Tipos<br />
anónimos</a></li>
</ul>
</li>
</ul>
<p style="text-align: justify;">También encontraréis útil la serie de post sobre LINQ to SQL:</p>
<ul style="text-align: justify;">
<li>
<p style="margin-bottom: 0cm"><a href="http://thinkingindotnet.wordpress.com/2007/05/20/usando-linq-to-sql-1ª-parte/"><span style="color: #006a80;">Parte<br />
1: Introducción a LINQ to SQL</span></a></li>
<li>
<p style="margin-bottom: 0cm"><a href="http://thinkingindotnet.wordpress.com/2007/05/30/linq-to-sql-2ª-parte-definiendo-nuestras-clases-del-modelo-de-datos/"><span style="color: #006a80;">Parte<br />
2: Definiendo el modelo de datos.</span></a></li>
<li>
<p style="margin-bottom: 0cm"><a href="http://thinkingindotnet.wordpress.com/2007/06/30/linq-to-sql-3ª-parte-consultando-la-base-de-datos/"><span style="color: #006a80;">Parte<br />
3: Consultando la base de datos</span></a></li>
<li>
<p style="margin-bottom: 0cm"><a href="http://thinkingindotnet.wordpress.com/2007/07/13/linq-to-sql-4ª-parte-actualizando-la-base-de-datos/"><span style="color: #006a80;">Parte<br />
4: Actualizando la base de datos.</span></a></li>
<li><a href="http://thinkingindotnet.wordpress.com/2007/07/19/linq-to-sql-5ª-parte-enlazar-controles-de-interfaz-de-usuario-con-el-asplinqdatsource/">Parte<br />
5: Enlazar controles de interfaz de usuario con<br />
el ASP:LinqDatSource</a></li>
</ul>
<p style="text-align: justify;">Dentro de poco volveremos con LINQ to XML y veremos cómo podemos usarlo no sólo para datos XML sino para generar cualquier tipo de salida XML desde una estructura de datos de .NET.</p>
<p style="text-align: justify;">Espero que sirva</p>
<p style="text-align: justify;">Referencia : thinkingindotnet.wordpress.com/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/09/linq-to-xml-como-crear-rss-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Y Nos Convertiremos en Super SayaYin?</title>
		<link>http://www.oscarangulo.cl/2009/09/y-nos-convertiremos-en-super-sayayin/</link>
		<comments>http://www.oscarangulo.cl/2009/09/y-nos-convertiremos-en-super-sayayin/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 00:21:09 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=90</guid>
		<description><![CDATA[ Estimados, se acuerdan de vegeta, cuando vei el ki de Goku y se iba de espalda&#8230; Bueno muy pronto podran ver mi ki, jajaja. En realidad no se si tanto, pero estos lentes de contacto seran capas de mostrarnos una &#8220;Realidad aumentada&#8221;, estan hechos de chips y todas esas cosas, mas una pantalla led pequeñisima, <a href='http://www.oscarangulo.cl/2009/09/y-nos-convertiremos-en-super-sayayin/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 476px"><img title="Super Lente" src="http://www.fayerwayer.com/up/2009/09/lente-de-contacto.jpg" alt="Por FayerWayer" width="466" height="319" /><p class="wp-caption-text">Por FayerWayer</p></div>
<p style="text-align: justify;"> Estimados, se acuerdan de vegeta, cuando vei el ki de Goku y se iba de espalda&#8230;</p>
<p style="text-align: justify;">Bueno muy pronto podran ver mi ki, jajaja. En realidad no se si tanto, pero estos lentes de contacto seran capas de mostrarnos una &#8220;Realidad aumentada&#8221;, estan hechos de chips y todas esas cosas, mas una pantalla led pequeñisima, que nos permitira obtener mas informacion de nuestro entorno, imginense mirando algo ver la temperatura, medir tamaños&#8230;</p>
<p style="text-align: justify;">Fuente <a href="http://www.fayerwayer.com">www.fayerwayer.com</a></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/09/y-nos-convertiremos-en-super-sayayin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVC ( Modelo Vista Controlador )</title>
		<link>http://www.oscarangulo.cl/2009/08/mvc-modelo-vista-controlador/</link>
		<comments>http://www.oscarangulo.cl/2009/08/mvc-modelo-vista-controlador/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 17:39:19 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=86</guid>
		<description><![CDATA[Estimados, le toca el turno a MVC, partamos por la definición:     Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones Web, donde la <a href='http://www.oscarangulo.cl/2009/08/mvc-modelo-vista-controlador/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><strong>Estimados, le toca el turno a MVC, partamos por la definición:</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Modelo Vista Controlador (MVC)</strong> es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones Web, donde la vista es la página <a title="HTML" href="http://es.wikipedia.org/wiki/HTML">HTML</a> y el código que provee de datos dinámicos a la página. El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.</p>
<p> <span id="more-86"></span></p>
<p>Ya suena bonito ¿Pero y?&#8230;</p>
<p> </p>
<p> </p>
<p>Vamos a explicarlo ahora de una manera mas didáctica:</p>
<p> </p>
<p> </p>
<p>Partamos por la raíz etimología MODELO, VISTA, CONTROLADOR:</p>
<ul>
<li><strong>Modelo</strong>: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comparar un número de unidades negativo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o los ítems del carrito de compra. Esto quiere decir que aquí se operan los datos y las reglas de negocio asociadas al sistema, los datos deben entrar de manera correcta y salir de manera perfecta para que la aplicación haga todas las maravillas que programaras.</li>
<li><strong>Vista</strong>: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.</li>
<li><strong>Controlador</strong>: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista.</li>
</ul>
<p> </p>
<p>A Continuación un pequeño diagrama.</p>
<p style="text-align: center;"> <img class="size-full wp-image-87 alignnone" title="mvc" src="http://www.oscarangulo.cl/wp-content/uploads/2009/08/mvc.png" alt="mvc" width="321" height="151" /></p>
<p align="center"><a href="http://upload.wikimedia.org/wikipedia/commons/a/a9/ModelViewControllerDiagram_es.svg"></a></p>
<p>Las desventajas:</p>
<ul>
<li>Tener que ceñirse a una estructura predefinida, lo que a veces puede incrementar la complejidad del sistema. Hay problemas que son más difíciles de resolver respetando el patrón MVC.</li>
<li>
La curva de aprendizaje para los nuevos desarrolladores se estima mayor que la de modelos más simples como Webforms.</li>
<li>
La distribución de componentes obliga a crear y mantener un mayor número de ficheros.</li>
</ul>
<p> </p>
<p>Las ventajas</p>
<ul>
<li>Clara separación entre interfaz, lógica de negocio y de presentación, que además provoca parte de las ventajas siguientes.</li>
<li>
Sencillez para crear distintas representaciones de los mismos datos.</li>
<li>
Facilidad para la realización de pruebas unitarias de los componentes, así como de aplicar desarrollo guiado por pruebas (TDD).</li>
<li>
Reutilización de los componentes.</li>
<li>
Simplicidad en el mantenimiento de los sistemas.</li>
<li>
Facilidad para desarrollar prototipos rápidos.</li>
<li>
Los desarrollos suelen ser más escalables.</li>
</ul>
<p> </p>
<p>Como pueden ver entre pro y contras termina siendo una opción bastante buena para el desarrollo de nuestras aplicaciones.</p>
<p> </p>
<p>Además Microsoft con su ASP.net MVC nos facilita un montón la vida, permitiéndonos tener una aplicación con el patrón MVC implementado en pocos minutos, amigos les invito a analizar la pagina que menciono a continuación e interiorizarse en este mundo, que como saben es “Un Mundo Interesante”.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/08/mvc-modelo-vista-controlador/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Concatenar Fecha con Hora en Oracle</title>
		<link>http://www.oscarangulo.cl/2009/08/concatenar-fecha-con-hora-en-oracle/</link>
		<comments>http://www.oscarangulo.cl/2009/08/concatenar-fecha-con-hora-en-oracle/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 22:18:02 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[conc]]></category>
		<category><![CDATA[concatenar]]></category>
		<category><![CDATA[fecha]]></category>
		<category><![CDATA[hora]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[to_char]]></category>
		<category><![CDATA[to_date]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=70</guid>
		<description><![CDATA[Debido a las cirscunstancias de la vida, me vi en la obligacion de concatenar lo siguiente :        TRANDATE    TRANTIME 1 19-02-2007       112016 Donde trandate esta en un formato normal pero, trantime en un formato algo extraño siendo:     11 : hora     20 : minutos     16 : segundos Como objetivo se tiene que lograr la <a href='http://www.oscarangulo.cl/2009/08/concatenar-fecha-con-hora-en-oracle/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Debido a las cirscunstancias de la vida, me vi en la obligacion de concatenar lo siguiente :</p>
<p style="text-align: center;"><code>       TRANDATE    TRANTIME</code></p>
<p style="text-align: center;"><code>1 19-02-2007       112016 </code></p>
<p>Donde trandate esta en un formato normal pero, trantime en un formato algo extraño siendo:<br />
    11 : hora<br />
    20 : minutos<br />
    16 : segundos</p>
<p>Como objetivo se tiene que lograr la siguiente salida, en un Date  :<br />
<code>19-02-2007 11:20:16</code></p>
<p>La solucion despues del salto.</p>
<p><span id="more-70"></span></p>
<p>Para solucionar el tema implemente la siguiente consulta.</p>
<p>select to_date(to_char(t.trandate, &#8216;dd/mm/yyyy&#8217;) || &#8216; &#8216; ||<br />
                               to_char(substr(t.trantime, 0, 2) || &#8216;:&#8217; ||<br />
                               substr(t.trantime, 3, 2) || &#8216;:&#8217; ||<br />
                               substr(t.trantime, 5, 2)),<br />
                               &#8217;dd/mm/yyyy hh24:mi:ss&#8217;)<br />
         from oangulo t;</p>
<p><img class="aligncenter size-full wp-image-74" title="Resultado Consulta" src="http://www.oscarangulo.cl/wp-content/uploads/2009/08/consulta.JPG" alt="Resultado Consulta" width="485" height="234" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/08/concatenar-fecha-con-hora-en-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novedad Tecnologica Lector Sim Leotec</title>
		<link>http://www.oscarangulo.cl/2009/08/novedad-tecnologica-lector-sim-leotec%c2%bfcomo-guardara-los-contactos/</link>
		<comments>http://www.oscarangulo.cl/2009/08/novedad-tecnologica-lector-sim-leotec%c2%bfcomo-guardara-los-contactos/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 13:22:07 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=62</guid>
		<description><![CDATA[LEOTEC , compañía especializada en dispositivos para el ocio digital, presenta un nuevo Lector SIM para la gestión más completa de la tarjeta SIM del teléfono móvil: permite leer, editar y hacer copias de seguridad del directorio telefónico, los mensajes SMS y las melodías y fotografías almacenadas en la tarjeta. Con esta completa solución de <a href='http://www.oscarangulo.cl/2009/08/novedad-tecnologica-lector-sim-leotec%c2%bfcomo-guardara-los-contactos/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p align="justify"><strong>LEOTEC </strong>, compañía especializada en  dispositivos para el ocio digital, presenta un nuevo Lector SIM para la gestión  más completa de la tarjeta SIM del teléfono móvil: permite leer, editar y hacer  copias de seguridad del directorio telefónico, los mensajes SMS y las melodías y  fotografías almacenadas en la tarjeta.</p>
<p align="justify">Con esta completa solución de software y hardware, el usuario  puede ordenar, compactar, imprimir y modificar –de una manera cómoda y sencilla-  todo el contenido de una tarjeta SIM, desde los contactos de la agenda (para  mantenerlos a salvo de una posible pérdida o robo del teléfono móvil) a los  mensajes que quiera guardar para la posteridad. Además, con este Lector SIM  podrá crear, editar y hacer copias de sus melodías y fotografías favoritas, para  poder reutilizarlas cuando cambie de teléfono. Mas Info&#8230;.<span id="more-62"></span></p>
<p align="justify">El nuevo Lector SIM de Leotec soporta QQ, ICQ y MSN, así como  tarjetas SIM GSM y UIMA CDMA. Guarda información online en tiempo real y permite  gestionar múltiples tarjetas SIM, pudiendo copiar contenido de una tarjeta a  otra. No necesita alimentación externa –funciona con un simple “conectar y  listo”- y es compatible con los puertos USB 1.1 y 2.0. Ofrece además unas  reducidas dimensiones (60x25x11 mm) y un peso ligero (10 gr) para que el usuario  lo lleve siempre consigo.</p>
<p align="justify">El nuevo Lector SIM de Leotec se encuentra disponible en todo  el territorio nacional con un precio recomendado de  9,90  euros (IVA incluido).</p>
<p style="text-align: center;">
<div class="wp-caption alignnone" style="width: 217px"><img title="Lector Sim" src="http://www.masterdisseny.com/master-net/tecnologia/00150.jpg" alt="Lector Sm" width="207" height="315" /><p class="wp-caption-text">Lector Sm</p></div>
<p><em><span style="color: #c0c0c0;">Fuente : </span><span style="color: #c0c0c0;">http://www.masterdisseny.com/</span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/08/novedad-tecnologica-lector-sim-leotec%c2%bfcomo-guardara-los-contactos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>POO en PHP</title>
		<link>http://www.oscarangulo.cl/2009/05/poo-en-php/</link>
		<comments>http://www.oscarangulo.cl/2009/05/poo-en-php/#comments</comments>
		<pubDate>Mon, 18 May 2009 15:50:13 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=57</guid>
		<description><![CDATA[Siglas de Programacion Orientada a Objetos (OOP en ingles &#8211; Object Oriented Programming &#8211; ) es una variante de programacion que permite reutilizar gran parte del codigo, lo hace mas estetico y legible ya que esta mas orientado a la logica humana, ademas de ser muy util en proyectos grandes.En proyectos con varios programadores, es <a href='http://www.oscarangulo.cl/2009/05/poo-en-php/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Siglas de <strong>P</strong>rogramacion <strong>O</strong>rientada a <strong>O</strong>bjetos (OOP en ingles &#8211; Object Oriented Programming &#8211; ) es una variante de programacion que permite reutilizar gran parte del codigo, lo hace mas estetico y legible ya que esta mas orientado a la logica humana, ademas de ser muy util en proyectos grandes.En proyectos con varios programadores, es posible asignar clases especificas que hagan un trabajo especifico a cada programador, y este desarrollarla independientemente de los avances de los demas ya que los objetos son independientes unos de otros, esto hara mas rapido y practico el desarrollo del proyecto.</p>
<p><span id="more-57"></span></p>
<p><strong>OOP en PHP</strong></p>
<p>PHP desde su version 3.0 soportaba la sintaxis de la OOP sin embargo en ese tiempo (y un poco ahora) carecia de todas sus caracteristicas.</p>
<p>A este tiempo PHP soporta todo lo que un lenguaje orientado a objetos en teoria deberia soportar:</p>
<p>* Encapsulamiento<br />
* Tipos Abstractos de Datos y ocultamiento de la Información<br />
* Herencia<br />
* Polimorfismo</p>
<p>PHP no es un lenguaje 100% orientado a objetos sin embargo los soporta, por que no sacar provecho de eso. Para comprender la POO, debemos comprender las partes que la conforman:</p>
<p>Qué son las clases?</p>
<p>La clase es una plantilla que usamos para crear objetos, al crear un objeto de una clase se dice que es una instancia de esa clase.Los objetos en php se crean con la palabra reservada <strong>new</strong>.</p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Código:</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">&lt;?php<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">class </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo<br />
    </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">{<br />
        </span><span style="FONT-SIZE: 10pt; COLOR: #ff8000; FONT-FAMILY: 'Courier New'">//Constructor<br />
         </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">function </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
         {</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$ob </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= new </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">?&gt;</span></p>
<p>          }</p>
<p>     }</p>
<p> </p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
Aqui la variable $ob seria una instancia de la clase <strong>Ejemplo</strong>.</span></p>
<p><strong>Constructor</strong><br />
El constructor es el metodo que es llamdo automaticamente al crear una instancia de la clase, el constructor lleva el mismo nombre de la clase, (aunque en la version de 5 de PHP sera especificado como _constructor ), el constructor no debe retornar ningun valor y es unico (distintamente a C plus).Pero bien, para que una clase sea util necesita metodos y atributos:</p>
<p><strong>Metodos</strong><br />
los metodos (tambien operaciones) no son mas que un tipo de funciones propias de la clase, se manejan igual, reciben parametros, desarrollan un proceso y devuelven ( o no ) un valor, los metodos se definen con la palabra reservada:</p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Código:</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">&lt;?php</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">class </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">{<br />
    <br />
    function </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
    {<br />
          </span><span style="FONT-SIZE: 10pt; COLOR: #ff8000; FONT-FAMILY: 'Courier New'">//Do nothing&#8230;<br />
    </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">}</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">MuestraNombre</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$nombre</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">)<br />
   {<br />
       echo </span><span style="FONT-SIZE: 10pt; COLOR: #dd0000; FONT-FAMILY: 'Courier New'">&#8220;El nombre es &#8221; </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">. </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$nombre</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
   }<br />
}</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= new </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">MuestraNombre</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #dd0000; FONT-FAMILY: 'Courier New'">&#8216;Ing_Amc&#8217;</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">);</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">?&gt;</span></p>
<p> </p>
<p>    function </p>
<p> </p>
<p> </p>
<p> </p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
Esto es una clase con un simple metodo que muestra el valor de su unico parametro programado, el ejemplo daria como resultado:</span></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Citar</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">El nombre es Ing_Amc</span></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
<strong>Atributos</strong><br />
Los atributos son variables que contienen informaciÃÆ ³n del estado de un objeto.Estos se definen usando la palabra reservada <strong>var</strong>.</span></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Código:</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">&lt;?php<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">class </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
{<br />
    var </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$atributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
   {<br />
      </span><span style="FONT-SIZE: 10pt; COLOR: #ff8000; FONT-FAMILY: 'Courier New'">//Do nothing&#8230;<br />
   </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">}</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">DaValor</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$valor</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">)<br />
  {<br />
       </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$this</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">atributo </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$valor</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
   }</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= new </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">DaValor</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">4</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">);<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">?&gt;</span></p>
<p>    function </p>
<p>  function </p>
<p>}</p>
<p> </p>
<p> </p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
Ahora el atributo valdra 4, $this usada en el ejemplo, es una variable especial referenciada al objeto y atributos de la clase o de la clases heredadas, esto nos lleva al siguiente punto.</span></p>
<p><strong>Herencia</strong><br />
La herencia permite a una clase, &#8220;heredar&#8221; (ya lo imaginaban no?) , los metodos y atributos de otra clase, para este proceso es usada la palabra reservada extends seguida de la que sera su clase &#8220;padre&#8221;, Ejemplo:</p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Código:</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">&lt;?php<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">class </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">{<br />
     var </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$atributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
    {<br />
        </span><span style="FONT-SIZE: 10pt; COLOR: #ff8000; FONT-FAMILY: 'Courier New'">// Do nothing<br />
    </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">}<br />
  <br />
    function </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">setAtributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$value</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">)<br />
   {<br />
       </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$atributo </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$value</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
   }<br />
}</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo2 </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">extends </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">{<br />
     function </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo2</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
    {</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">getAtributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
  {<br />
         return </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$atributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
  }</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= new </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo2</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">setAtributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">7</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">);</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">getAtributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">?&gt;</span></p>
<p>     function </p>
<p>class </p>
<p>    }</p>
<p>   function </p>
<p>}</p>
<p> </p>
<p> </p>
<p>echo </p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
Como vez pueden usarse los metodos de las dos clases ya que al instanciar un objeto de la clase Ejemplo2 al ser heredada de Ejemplo adquiere sus elementos.</span></p>
<p><strong>Herencia Multiple en PHP</strong><br />
La herencia multiple no es soportada por PHP sin embargo en su version 5 implementan el uso de interfaces, que me supongo (como en el caso de Java) lo prefirieron por practisidad y simplicidad de codigo, ya que al programar con herencia multiple se puede llegar a formar una jerarquia de clases realmente desordenada, ademas de que en muchos casos es desechada por los desarrolladores por la complicacion de uso.</p>
<p><strong>Sistemas de Proteccion</strong><br />
Nuevamente, esto en PHP no existe hasta su version 5.Esto permite hacer a los metodos y atributos de una clase accesibles desde cierto punto.</p>
<p><strong>Acceso Public (Publico)</strong><br />
Al ser declarado un metodo o atributo public sera accesible desde cualquier punto, este es el punto mas bajo del sistema de proteccion. Para declarar publico, se usa la palabra reservada <strong>public</strong>.</p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Código:</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">&lt;?php<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">class </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
{<br />
   public </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$atributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">() {<br />
        </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$this</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">atributo </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= </span><span style="FONT-SIZE: 10pt; COLOR: #dd0000; FONT-FAMILY: 'Courier New'">&#8216;Hey!&#8217;</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
   }<br />
  <br />
}</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= new </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">atributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">?&gt;</span></p>
<p>    function </p>
<p> </p>
<p>echo </p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
<strong>Acceso Private (Privado)</strong><br />
Este es el más restrictivo, los elementos declarados bajo private solo seran accesibles desde metodos de su clase original.</span></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Código:</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">&lt;?php<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">class </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
{<br />
   private </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$atributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">() {<br />
        </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$this</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">atributo </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= </span><span style="FONT-SIZE: 10pt; COLOR: #dd0000; FONT-FAMILY: 'Courier New'">&#8216;Hey!&#8217;</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
   }</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">daAtributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
  {<br />
         return </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$this</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">atributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
  }<br />
  <br />
}</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= new </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Ejemplo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">daAtributo</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">?&gt;</span></p>
<p>    function </p>
<p>   function </p>
<p> </p>
<p>echo </p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
Como vez, hemos tenido que instanciar un metodo para devolver el valor de atributo.</span></p>
<p><em>Acceso Protected (Protegido)</em><br />
Con este los elementos seran accesibles desde su clase original o desde clases heredadas.</p>
<p>Ejemplo Completo de Clase <strong>Simple</strong>:</p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Código:</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">&lt;?php</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">class </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Clase </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">{</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$numeros </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= array();<br />
    <br />
    function </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Clase</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
    {<br />
        </span><span style="FONT-SIZE: 10pt; COLOR: #ff8000; FONT-FAMILY: 'Courier New'">//Do nothing&#8230;<br />
    </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">}<br />
    <br />
    function </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">setNumero</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$numero</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">)<br />
    {<br />
         </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$this</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">numeros</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">[] = </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$numero</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">;<br />
    }<br />
    <br />
    function </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">muestraNumeros</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">()<br />
    {<br />
       return </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">implode</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #dd0000; FONT-FAMILY: 'Courier New'">&#8216;,&#8217;</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">, </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$this</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">numeros</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">);<br />
    }</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj </span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">= new </span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">Clase</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">setNumero</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">2</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">);</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">setNumero</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">4</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">);</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">setNumero</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">(</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">6</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">);</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">$obj</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">-&gt;</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">muestraNumeros</span><span style="FONT-SIZE: 10pt; COLOR: #007700; FONT-FAMILY: 'Courier New'">();</span><span style="FONT-SIZE: 10pt; COLOR: #0000bb; FONT-FAMILY: 'Courier New'">?&gt;</span></p>
<p> </p>
<p>    var </p>
<p>}</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>echo </p>
<p> </p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 12pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
Una clase con dos metodos, uno para agregar numeros, donde podemos agregar los numeros que queramos y otra para mostrar los numeros separados por una coma, observa que para guardar los numeros es usado un atributo en modalidad de array, el valor de los atributos dentro de la clase es estatico asi que sirve a la perfeccion para nuestro proposito.<br />
Esto mostraria:</span></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">Citar</span></strong></p>
<p class="MsoNormal" style="BACKGROUND: #eeeeee; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15.6pt"><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma">2,4,6</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 8.5pt; FONT-FAMILY: Tahoma"><br />
La programación orientada a objetos no es mas dificil que la programacion estructurada y es bastante util, aunque tiene tambien sus desventajas como el tiempo de procesamiento&#8230;, pero!, quieres saber mas?:</span></p>
<p><a href="http://www.desarrolloweb.com/articulos/1697.php?manual=58" target="_blank"><span style="color: #f4b12c;">http://www.desarrolloweb.com/articulos/1697.php?manual=58</span></a><br />
<a href="http://www.zonaphp.com/programacion-orientada-a-objetos-en-php/" target="_blank"><span style="color: #f4b12c;">http://www.zonaphp.com/programacion-orientada-a-objetos-en-php/</span></a><br />
<a href="http://www.webestilo.com/php/articulo.phtml?art=28" target="_blank"><span style="color: #f4b12c;">http://www.webestilo.com/php/articulo.phtml?art=28</span></a><br />
<a href="http://www.google.com.mx/search?hl=es&amp;q=poo+php&amp;btnG=B%C3%BAsqueda+en+Google&amp;meta=" target="_blank"><span style="color: #f4b12c;">http://www.google.com.mx/search?hl=es&amp;q=poo+php&amp;btnG=B%C3%BAsqueda+en+Google&amp;meta=</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/05/poo-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto Ayuda&#8230;.</title>
		<link>http://www.oscarangulo.cl/2009/05/auto-ayuda/</link>
		<comments>http://www.oscarangulo.cl/2009/05/auto-ayuda/#comments</comments>
		<pubDate>Fri, 15 May 2009 13:28:51 +0000</pubDate>
		<dc:creator>Oscar Angulo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.oscarangulo.cl/?p=51</guid>
		<description><![CDATA[A veces somos exigentes, no sobre exijimos pensamos que tenemos que hacer todo, que todo hay que hacerlo ahora porque el mundo en cualquier momento se acaba, a veces sentimos que tenemos que ayudar a los demas, siendo que nosotros mismos necesitamos estar mejor,  a continuacion les dejo un libro que quizas mas de alguna <a href='http://www.oscarangulo.cl/2009/05/auto-ayuda/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">A veces somos exigentes, no sobre exijimos pensamos que tenemos que hacer todo, que todo hay que hacerlo ahora<img class="alignright" title="El caballero de la armadura oxidada Robert Fisher..." src="http://www.partidogen.com.ar/revista/2008/noviembre/txt/cultura/el.jpg" alt="" width="235" height="333" /> porque el mundo en cualquier momento se acaba, a veces sentimos que tenemos que ayudar a los demas, siendo que nosotros mismos necesitamos estar mejor,  a continuacion les dejo un libro que quizas mas de alguna a leido alguna vez pero que nunca esta de mas recordarlo &#8220;El caballero de la armadura oxidada&#8221; es un libro de autoayuda que me hizo cambiar un poco mi perspectiva de la vida y como enfrentar las cosas, por eso es que lo quiero compartir con ustedes&#8230;.</p>
<p style="text-align: justify;">Descargalo <a title="El Caballero de La Armadura Oxidada" href="http://www.oscarangulo.cl/archivos/el_caballero_de_la_armadura_oxidada.doc" target="_blank">Aquí</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oscarangulo.cl/2009/05/auto-ayuda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
