<?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>Supra-Net &#187; php</title>
	<atom:link href="http://supra-net.org/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://supra-net.org</link>
	<description>por Enrique Sardon</description>
	<lastBuildDate>Thu, 08 Jul 2010 06:10:19 +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>mejores frameworks para webs</title>
		<link>http://supra-net.org/310/mejores-frameworks-para-webs/</link>
		<comments>http://supra-net.org/310/mejores-frameworks-para-webs/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 15:31:19 +0000</pubDate>
		<dc:creator>Enrique Sardon</dc:creator>
				<category><![CDATA[opinion]]></category>
		<category><![CDATA[comparacion]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://supra-net.org/?p=310</guid>
		<description><![CDATA[Como sabemos hay muchos lenguajes de programación pero hay muchos que no son para web específicamente como Ruby o Python. también lenguajes hechos específicamente para este destino. para los lenguajes hechos para escritorio, se ha creado varios frameworks para hacerlos trabajar en web inclusive se ha considerado que en python es mas rapido que en [...]]]></description>
			<content:encoded><![CDATA[<p>Como sabemos hay muchos lenguajes de programación pero hay muchos que no son para web específicamente como Ruby o Python. también lenguajes hechos específicamente para este destino.</p>
<p>para los lenguajes hechos para escritorio, se ha creado varios frameworks para hacerlos trabajar en web inclusive se ha considerado que en <a href="http://wiki.rubyonrails.com/rails/pages/Framework+Performance">python es mas rapido que en PHP</a> lo que deja  mucho que desear de PHP y por el contrario los frameworks para  PHP son mas completos para desarrollar aplicaciones inmensas.</p>
<p>veamos como son los mejores framewoks para estos lenguajes:</p>
<p><strong><a href="http://www.symfony-project.org/" target="_blank">PHP -&gt; Symfony</a>:</strong></p>
<p style="padding-left: 30px;">este es considerado uno de los mejores frameworks de PHP inclusive Yahoo, esta escrito en este freamework para PHP el cual tiene muchas cosas, lo malo es que su aprendizaje es  un poco lento por la complejidad de sus pociones, pero, en fin es un buen freamework con miles de opciones para administración de bases de datos, trabajo con feeds, apis de diferentes webs, calendarios, trabajo con ajax, XML, formularios y mucho mas.</p>
<p style="padding-left: 30px;">utiliza la arquitectura MVC(modelo-vista-controlador)</p>
<p><a href="http://www.djangoproject.com/" target="_blank">Python -&gt; Django</a>:</p>
<p style="padding-left: 30px;">un framework que utiliza un paradigma bien parecido al MVC pero en este caso se llama MTV(Model-Template-View) que básicamente es lo mismo, solo que con nombres cambiados <img src='http://supra-net.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<p style="padding-left: 30px;">no es tan completo como el Symfony de PHP, pero ciertamente, el lenguaje python es mas fácil de aprender que PHP ademas de que te introduce todo de lleno al paradigma de programación MVC sin estar haciendo la tradicional mezcla de código con HTML(comprobada mala practica).  pueden darse una pasada por <a href="http://docs.djangoproject.com" target="_blank">su documentacion</a> para que puedan saber sus cualidades y defectos</p>
<p><a href="http://wiki.rubyonrails.com/" target="_blank">Ruby -&gt; Rails</a></p>
<p style="padding-left: 30px;">es un framework para ruby que también utiliza el paradigma de programación MVC, y como python el lenguaje Ruby es facilísimo de aprender con muchísimas librerías para hacer un montón de cosas,  como procesamiento de imágenes, blogs, portales de alta calidad y muchísimas cosas mas.</p>
<p>De hecho que existen mas alternativas que solo estas, pero estas son las mejores para cada lenguaje, ahora la cosa es que en PHP hay muchísima controversia por la cantidad de frameworks que existen y dicen ser los mejores, pero a mi arecer por los comentarios que en la web se pueden observar y por experiencia personal, me gusta mas symfony, claro que otras alternativas como el <a href="http://www.cakephp.org/" target="_self">phpCake</a> o el <a href="http://framework.zend.com/" target="_blank">ZendFramework</a> son buenas y la básica de <a href="http://codeigniter.com/" target="_blank">CodeIngniter</a> que es considerada la mas rápida y fácil.</p>
<p>ahora mes estoy obsesionado con python y su Django por lo facil del lenguaje y su forma de trabjar con puro objeto.</p>
<hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> )</small>]]></content:encoded>
			<wfw:commentRss>http://supra-net.org/310/mejores-frameworks-para-webs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Multiblogs wordpress sin necesidad de WPmu</title>
		<link>http://supra-net.org/247/multiblogs-wordpress-sin-necesidad-de-wpmu/</link>
		<comments>http://supra-net.org/247/multiblogs-wordpress-sin-necesidad-de-wpmu/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 03:30:53 +0000</pubDate>
		<dc:creator>Enrique Sardon</dc:creator>
				<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://supra-net.org/?p=247</guid>
		<description><![CDATA[este es un truco que lei en el blog de mi amigo charlieman para que un solo wordpress, funcione para muchos blogs a la vez, esto trae muchas ventajas, ademas de usar solo un script de wordpress para varios blogs, tb puedes usar los mismos plufins y themes en todos los blgs independientemente de que [...]]]></description>
			<content:encoded><![CDATA[<p>este es un truco que lei en el blog de mi amigo <a href="http://charlieman.net/articulo/varios-blogs-de-wordpress-con-un-solo" target="_blank">charlieman</a> para que un solo wordpress, funcione para muchos blogs a la vez, esto trae muchas ventajas, ademas de usar solo un script de wordpress para varios blogs, tb puedes usar los mismos plufins y themes en todos los blgs independientemente de que en uno esté activado o no.</p>
<p>otra gran ventaja es las actualizaciones, ya que no hay necesidad de estar actualizar cada uno de tus blogs y solo es necesario actualizar un wordpress para que todos este? en la ultima version.</p>
<p>una mas es el espacio y el orden de tu hosting, que por ejemplo en Cpanel se desordena un monton al tener varios blogs y varios domnio.</p>
<p>ahora lo primero que se tiene que hacer es apintar todos los dominios y subdominios a nuestra instalacion de WP, en el caso de CPanel, colocar todos los dominios como <strong>Parked Domain</strong> (Dominio Aparcado). de esa forma todos los dominiosapuntaran al <strong>Public_html. </strong></p>
<p>luego modificar el archivo <strong>wp-config.php</strong> y cambiar el area donde se colocan los datos del blog.</p>
<p style="padding-left: 30px;">&lt;?php<br />
$sitename = strtolower( $_SERVER['SERVER_NAME'] );<br />
if ( substr( $sitename, 0, 4 ) == &#8216;www.&#8217; ) {<br />
$sitename = substr( $sitename, 4 );<br />
}<br />
switch ( $sitename ) {<br />
case &#8216;example.com&#8217;:<br />
define(&#8216;DB_NAME&#8217;, &#8216;database&#8217;);<br />
define(&#8216;DB_USER&#8217;, &#8216;dbuser&#8217;);<br />
define(&#8216;DB_PASSWORD&#8217;, &#8216;dbpassword&#8217;);<br />
define(&#8216;DB_HOST&#8217;, &#8216;localhost&#8217;);<br />
define(&#8216;DB_CHARSET&#8217;, &#8216;utf8&#8242;);<br />
define(&#8216;DB_COLLATE&#8217;, &#8221;);<br />
$table_prefix  = &#8216;blog1_&#8217;;<br />
define (&#8216;WPLANG&#8217;, &#8216;es_PE&#8217;);<br />
break;<br />
case &#8216;juanperez.example.com&#8217;:<br />
define(&#8216;DB_NAME&#8217;, &#8216;database&#8217;);<br />
define(&#8216;DB_USER&#8217;, &#8216;dbuser&#8217;);<br />
define(&#8216;DB_PASSWORD&#8217;, &#8216;jpass&#8217;);<br />
define(&#8216;DB_HOST&#8217;, &#8216;localhost&#8217;);<br />
define(&#8216;DB_CHARSET&#8217;, &#8216;utf8&#8242;);<br />
define(&#8216;DB_COLLATE&#8217;, &#8221;);<br />
$table_prefix  = &#8216;wp_&#8217;;<br />
define (&#8216;WPLANG&#8217;, &#8216;es_PE&#8217;);<br />
break;</p>
<p style="padding-left: 30px;">case &#8216;defaulthost.com&#8217;:<br />
define(&#8216;DB_NAME&#8217;, &#8216;database2&#8242;);<br />
define(&#8216;DB_USER&#8217;, &#8216;dbuser2&#8242;);<br />
define(&#8216;DB_PASSWORD&#8217;, &#8216;jpass2&#8242;);<br />
define(&#8216;DB_HOST&#8217;, &#8216;localhost&#8217;);<br />
define(&#8216;DB_CHARSET&#8217;, &#8216;utf8&#8242;);<br />
define(&#8216;DB_COLLATE&#8217;, &#8221;);<br />
$table_prefix = &#8216;wp_&#8217;;<br />
define (&#8216;WPLANG&#8217;, &#8216;es_PE&#8217;);<br />
break;<br />
default:<br />
define(&#8216;DB_NAME&#8217;, &#8216;anotherdb&#8217;);<br />
define(&#8216;DB_USER&#8217;, &#8216;anotheruser&#8217;);<br />
define(&#8216;DB_PASSWORD&#8217;, &#8216;anotherpass&#8217;);<br />
define(&#8216;DB_HOST&#8217;, &#8216;anotherhost.net&#8217;);<br />
define(&#8216;DB_CHARSET&#8217;, &#8216;utf8&#8242;);<br />
define(&#8216;DB_COLLATE&#8217;, &#8221;);<br />
$table_prefix  = &#8216;wp_&#8217;;<br />
define (&#8216;WPLANG&#8217;, &#8216;en_GB&#8217;);<br />
break;<br />
}</p>
<p style="padding-left: 30px;">define(&#8216;ABSPATH&#8217;, dirname(__FILE__).&#8217;/');<br />
require_once(ABSPATH.&#8217;wp-settings.php&#8217;);<br />
?&gt;</p>
<p style="padding-left: 30px;">
<p>una comparacion con el wordpress Mu es que en este la instalacion es bien complicada a comparacion del WP normal. ademas que el WP Mu solo funciona con un domino y cera subdominios por cada blog, mientras que con este metodo puedes tener cualauier domino o subdomino con un solo WP</p>
<p>si te das cuenta tambien puedes usar diferentes bases de datos y diferentes idiomas.</p>
<p>yo uso este sistema para administar mis blogs y me funciona perfecto</p>
<hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> )</small>]]></content:encoded>
			<wfw:commentRss>http://supra-net.org/247/multiblogs-wordpress-sin-necesidad-de-wpmu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Que es MVC? &#8212; PHP</title>
		<link>http://supra-net.org/243/%c2%bfque-es-mvc-php/</link>
		<comments>http://supra-net.org/243/%c2%bfque-es-mvc-php/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 08:31:41 +0000</pubDate>
		<dc:creator>Enrique Sardon</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[desarroollo]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[zend framewok]]></category>

		<guid isPermaLink="false">http://supra-net.org/?p=243</guid>
		<description><![CDATA[No!!! no es el movimiento de vida cristiana xD!!! sino se trata de una nueva forma de trabajar con PHP y facilita el desarrollo de aplicaciones grandes! pero que es?? MVC-&#62;Modelo Vista Controlador con esta forma de trabajar se separa el código PHP del HTML y se consigue usando Frameworks que soporten esta forma de [...]]]></description>
			<content:encoded><![CDATA[<p>No!!! no es el movimiento de vida cristiana xD!!! sino se trata de una nueva forma de trabajar con PHP y facilita el desarrollo de aplicaciones grandes! pero que es??</p>
<p>MVC-&gt;Modelo Vista Controlador</p>
<p>con esta forma de trabajar se separa el código PHP del HTML y se consigue usando Frameworks que soporten esta forma de trabajar tipo el <a href="http://framework.zend.com">ZendFramework</a> y <a href="http://codeigniter.com/">codeIgniter</a>, que son muy buenos, el gran problema es aprender la forma de trabajar que es totalmente diferente. por ejemplo:</p>
<p>un programa en PHP normal se escribiría con el código PHP mezclado con el HTML, mientras que con MVC trabajas de forma separada, preocupándote solo por el código aparte del HTML.</p>
<p>Ademas ara trabajar de forma MVC tienes que respetar unas estructuras impuestas por los mismos desarrolladores del Framework usando las mejores practicas para el desarrollo de aplicaciones WEB. por ejemplo en Zend Frameork, se trabaja de la siguiente Forma:</p>
<ul>
<li>apps -&gt; aquí van los datos del proyecto
<ul>
<li>controllers -&gt; los controladores con todo el código y la lógica</li>
<li>Views -&gt; Las Vistas con la parte de HTML</li>
<li>layout -&gt; una especie de plantilla general  en HTML</li>
<li>helpers -&gt; código que te te puede servir de ayuda en tu aplicación</li>
</ul>
</li>
<li>config -&gt; archivos de configuración que tal vez necesites</li>
<li>public -&gt; el directorio que se va a publicar, es el único que se ve y tiene acceso directo</li>
<li>library -&gt; aquí se guardan algunas clases que tal vez puedas llegar a necesitar</li>
</ul>
<p>Por supuesto también se tiene que incluir el ZendFramwork, pero lo puedes hacer desde otro lugar o sino haciendo un enlace simbólico dentro de library.</p>
<p>como puedes ver toda la lógica se va a los controllers y el diseño se va a los views, haciendo un uso mas optimo del sistema, ademas así se inicia el desarrollo multicapa.</p>
<p>espero que les sirva</p>
<hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> )</small>]]></content:encoded>
			<wfw:commentRss>http://supra-net.org/243/%c2%bfque-es-mvc-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS con PHP usando magpierss</title>
		<link>http://supra-net.org/160/rss-con-php-usando-magpierss/</link>
		<comments>http://supra-net.org/160/rss-con-php-usando-magpierss/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 15:04:32 +0000</pubDate>
		<dc:creator>Enrique Sardon</dc:creator>
				<category><![CDATA[off topic]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://supra-net.org/?p=160</guid>
		<description><![CDATA[magpierss es una librería de PHP que te permite obtener datos de feeds RSS, RDF y RSS2 asi que trabaja con los tipos mas conocidos de feds. Esta librería hace facil el parseo(decodificacion,traduccion del XML), ara eso solo es necesario bajrse la libreria de su archivo en Sourceforge y descomprimirla en el directorio donde estas [...]]]></description>
			<content:encoded><![CDATA[<p><strong>magpierss</strong> es una librería de PHP que te permite obtener datos de feeds RSS, RDF y RSS2 asi que trabaja con los tipos mas conocidos de feds. Esta librería hace facil el parseo(decodificacion,traduccion del XML), ara eso solo es necesario bajrse la libreria de su <a href="http://sourceforge.net/project/showfiles.php?group_id=55691">archivo en Sourceforge</a> y descomprimirla en el directorio donde estas trabajando tu proyecto, para esto la libreria trae muchos archivos en su comprimido, pero mychos de ellos osn solo ejemplos, solo nos quedaremos con los archivos <strong>.inc</strong> y el directorio <strong>extlib</strong>.</p>
<p>bueno empecemos creando un index.php en el cual estará nuestro primer feed obtenido. este index.php contendra:</p>
<blockquote><p><strong> &lt;?php<br />
require(&#8216;rss_fetch.inc&#8217;);<br />
$rss = fetch_rss(&#8216;http://supra-net.org/feed&#8217;); //este es el feed de mi blog<br />
?&gt;</strong></p></blockquote>
<p>con eso ya esta todo,con eso ya obtuvimos el feed y lo podemos usar en forma de arreglo o colocarlo  genericamente en nuestra página:</p>
<p>De Forma Generica:</p>
<blockquote><p><strong>&lt;?php<br />
include(&#8216;rss_fetch.inc&#8217;);</strong></p>
<p><strong>$rss = fetch_rss(&#8216;http://</strong><strong>supra-net.org/feed</strong><strong>&#8216;);</strong><br />
<strong>echo &#8216;&lt;pre&gt;&#8217;;<br />
print_r($rss);<br />
echo &#8216;&lt;/pre&gt;&#8217;;<br />
?&gt;</strong></p></blockquote>
<p>En Forma de Arreglo:</p>
<blockquote><p><strong>include &#8216;rss_fetch.inc&#8217;;</strong></p>
<p><strong>$url = &#8216;</strong><strong>http://</strong><strong>supra-net.org/feed&#8217;;<br />
$rss = fetch_rss($url);</strong></p>
<p><strong>echo &#8220;Site: &#8220;, $rss-&gt;channel['title'], &#8220;&lt;br&gt;<br />
&#8220;;<br />
foreach ($rss-&gt;items as $item ) {<br />
$title = $item[title];<br />
$url   = $item[link];<br />
echo &#8220;&lt;a href=$url&gt;$title&lt;/a&gt;&lt;/li&gt;&lt;br&gt;<br />
&#8220;;<br />
}</strong></p></blockquote>
<p>En este ultimo ejemploprimero se muestra el titulo de la web de donde se sacó el feed, luego recorre todos los items del feed, para despues mostrar el titulo del item que linkea al articulo, real.</p>
<p>ahora hagamos algo mas innteresante:</p>
<blockquote><p><strong>&lt;?php<br />
include(&#8216;rss_fetch.inc&#8217;);</strong></p>
<p><strong>// Set error reporting for this<br />
error_reporting(E_ERROR);</strong></p>
<p><strong>// Obtenemos el Feed RSS<br />
$rss = fetch_rss(&#8216;</strong><strong>http://</strong><strong>supra-net.org/feed</strong><strong>&#8216;);</strong></p>
<p><strong>if ($rss)<br />
{</strong></p>
<p><strong> // coloca los 5 primeros Items a un nuestro arreglo<br />
$items = array_slice($rss-&gt;items, 0, 5);</strong></p>
<p><strong> // explora todos los Items en el arreglo<br />
foreach ($items as $item ) </strong></p>
<p><strong> {<br />
// obtenemos la URL, Título y descripción de cada Item obtenido<br />
echo &#8216;&lt;li&gt;&lt;a href=&#8221;&#8216;.$item['link'].&#8217;&#8221;&gt;&#8217;.$item['title'].&#8217;&lt;/a&gt; &#8211; &#8216;.$item['description'].&#8217;&lt;/li&gt;&#8217;;<br />
}<br />
}<br />
else<br />
{<br />
//si es que hay un error o no hay nada en el feed, muestra el error<br />
echo &#8216;&lt;h2&gt;Error:&lt;/h2&gt;&lt;p&gt;&#8217;.magpie_error().&#8217;&lt;/p&gt;&#8217;;<br />
}</strong><br />
<strong>// Restaura el Valor Original del error<br />
@ini_restore(&#8216;error_reporting&#8217;);<br />
?&gt;</strong></p></blockquote>
<p>Se Pueden hacer un monton de cosas con el el magpierss, toda la documentacion está en su web, y <a href="http://magpierss.sourceforge.net/links.php#howto">hay una serie de HowTo</a>, pero estan en ingles.</p>
<hr /><small>Copyright &copy; 2008<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:<br /> )</small>]]></content:encoded>
			<wfw:commentRss>http://supra-net.org/160/rss-con-php-usando-magpierss/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
