Programacion

[Manual - Codeigniter] Programando php en MVC con CodeIgniter [Parte 1]

Antes de empezar con este post, quiero ofrecer disculpas ya que no he sido constante en el blog, sin embargo cuando estén casados y esperando un bebe sabrán que hay cosas que son mas importantes jaja.
También déjenme comentarles que estoy planeando un cambio de diseño en el blog, algo que no modifique mucho la estructura pero que se vea elegante, esos son los planes a futuro, bueno ahora si pasemos al post.

A mi siempre me ha gusto programar directamente sin usar algún tipo de Framework
o algo similar (a excepción del Blog que uso WordPress), sin embargo ahora que estoy viendo como programar el proyecto empecé a buscar opciones que aligerarán mi carga de trabajo, pero a la vez que fuera muy flexible para meter código donde fuera necesario (claro de una manera ordenada).

Entonces empecé a buscar algún Framework que me satisficiera, pensé en Zend, en Smarty, Phpbb, Xtemplate, etc, sin embargo esta dudoso, como que una parte me decía que si y otra que no, entonces conocí a CodeIgniter, un Framework que si bien no es tan conocido como Zend o Symphony, si es muy potente y muy simple de usar y puede llegar a ser tan potente como los dos anteriores.

Ahora bien, me puse a investigar como instalar y como hacer mi !Hello Word!, así que aquí les pongo como le hice y como quedo.

[PASO:1]

Requisitos:

  • Tener php 4 o superior instalado
  • Base de datos MySQL(soporta otras)

[PASO:2]

  • Obtenemos CodeIgniter de la siguiente URL  http://codeigniter.com/download.php
  • Lo copiamos dentro de nuestra carpeta raíz de htdocs (en Apache)
  • Hay dos carpetas una se llama system y otra user_guide, además de otros archivos

[PASO:3]

  • Ahora procederemos a configurar nuestro CodeIgniter
  • Primero abrimos el siguiente archivo system/application/config/config.php y buscamos la línea $config['base_url'] = “http://localhost/CodeIgniter/”; en donde pondremos la ruta de nuestra carpeta que acabamos de descomprimir
  • Para conectar la base de datos hay que editar el archivo system/application/config/database.php en donde dice
  • $db['default']['hostname'] = “localhost”;

    $db['default']['username'] = “”;

    $db['default']['password'] = “”;

    $db['default']['database'] = “”;

    y Ahi colocamos los valores que usamos para conectarnos a nuestra base de datos.

[PASO:4] Ahora debes de entrar a la url que pusiste y te debe de aparecer el siguiente mensaje.

[PASO:5]
Ahora si entras a system/application veras muchas carpetas, las que nos interesan son las siguientes config, controlles, views y models.
Abrimos el archivo system/application/config/routes.php en donde buscaremos lo siguiente $route['default_controller'] = “welcome”; (esta en la línea 43 aproximadamente) esta la vamos a cambiar por el nombre de nuestro controlador que vamos a usar, su sintaxis es muy simple, debe de ser el nombre del archivo donde haremos el controlador, por ejemplo si nuestro archivo controlador se llamara test.php quedara así $route['default_controller'] = “test”; si el controlador se llamara delfines.php quedaría $route['default_controller'] = “delfines”;
Nota: Es muy importante lo anterior ya que toda la sintaxis que usa CodeIgniter sigue esta estructura
Ya que lo editamos cerramos ya abrimos el controlador, por default esta el controlador welcome, el cual recordemos que estaba por default dentro de routes.php, ahora creamos nuestro controlador con el nombre que deseemos, por ejemplo biblioteca.php, (recuerden cambiar en routes.php $route['default_controller'] = “welcome”; a $route['default_controller'] = “biblioteca”; )
Abrimos nuestro controlador y escribimos lo siguiente.


class Welcome extends Controller {

function Welcome()
{

parent::Controller();

}
function index()
{
echo "Hola Mundo";
}
}

Lo que tenemos en muy simple, creamos una clase la cual extiende de Controller con lo cual obtiene todos los métodos y propiedades de un controlador genérico de CodeIgniter, vemos el método Welcome, el cual es necesario ya que tu constructor local anularia al constructor de la clase padre Controller, por lo tanto necesitamos llamarlo manualmente. en el caso de php5 podemos optar por usar.


function __construct()
{
parent::Controller();
}

Es lo mismo.

Luego tenemos el método index, el cual se ejecuta cuando entremos al index.php(después del método constructor) y le decimos que escriba “Hola mundo”, si bien esto no tiene nada de MVC, es para ver que esta funcionando deberemos entrar a

http://localhost/codeigniter/biblioteca/

Y nos deberá arrojar “Hola Mundo”

Queda pendiente el ejemplo MVC completo, cualquier duda pueden preguntar, recuerden pueden empezar a probar para que vean como funciona.

Leer más

[Php] Descarga y manual de Cake PHP 1.2

Haber si continuamos con el blog y para empezar a romper el hielo les platico esta entrada publicada en el blog de carlos leopoldo.

Se trata de el aviso que CakePHP 1.2 ha sido liberado y tal como comenta, este sistema se trata de un framework, con el cual podemos hacer maravillas sin tener que rompernos la cabeza con php.

CakePHP

CakePHP

Esta claro que para poder usarlo es necesario tener conocimientos en Php, html, Javascript, Css entre otros, pero solo nos centraremos en usar los componentes que estáne ya programados y listos para ello, por ejemplo con este framework podemos crear todo un sistema de publicación para un blog, claro que sin la potencia de Wordpres :-) pero es solo un ejemplo.

Lo interesante también es que hay un manual completamente en español, y esta muy fácil de seguir, yo personalmente no le he dado oportunidad a este framework(ni a smarty), por que siento el que código manual es mejor y muy potente, pero por si alguno de ustedes le interesa, aquí les dejo los datos de dicho framework.

Descarga de CakePHP 1.2 Aqui
Manual en español Aqui.
Pagina oficial CakePHP.

Via | Manual de CakePHP 1.2 y descarga versión final

Leer más

[Test]¿En que esta escrito el código?

Este test, se me hizo muy curioso y aunque, es muy simple, puedes poner a prueba tus conocimientos,sobre lenguajes de programación, y recalco nuevamente, aunque no es muy grande puede resultar curioso he interesante.

Aqui esta mi resultado.

Name That Code
Created by OnePlusYou – Free Dating

Yo solo falle en el ultimo, y lo hice una sola vez, prueben y díganme que tal les fue.
Enlace a la pagina | Name that code

Leer más

[WordPress] Alineando y mejorando las imagenes en el blog

Esta creo que es una “noticia”, un poco pasada pero sirve de mucho.

El bug en cuestión,que no estoy tan seguro si es un bug real o solo es problema de mi “tema”, consistía en que cuando insertaba una imagen, esta aparecía con un formato definido(CSS), con bordes grises, y con un texto en la parte inferior de dicha imagen, pero esto solo se veía cuando yo editaba o escribía el post, mas cuando lo publicaba solo aparecia la imagen y el texto pero sin formato, ni alineación, busque un par de veces la solución hasta que di con ella.

Dicha solución esta posteado en los foros de WordPress, en ingles, así que pongo aquí los pasos que seguí para solucionar dicho problema.

Solo agregamos el siguiente código a nuestro css

.aligncenter,
div.aligncenter {
display: block;
margin-left: auto;
margin-right: auto;
}

.alignleft {
float: left;
}

.alignright {
float: right;
}

.wp-caption {
border: 1px solid #ddd;
text-align: center;
background-color: #f3f3f3;
padding-top: 4px;
margin: 10px;
/* optional rounded corners for browsers that support it */
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}

.wp-caption img {
margin: 0;
padding: 0;
border: 0 none;
}

.wp-caption p.wp-caption-text {
font-size: 11px;
line-height: 17px;
padding: 0 4px 5px;
margin: 0;
}

Y listo, no hay nada mas que hacer, cabe recordar que aunque en el foro de wordpress, se vean diferentes opciones, esta fue la que mas me convenció y me gusto.

Con esto ya podemos ver nuestra imágenes con un formato mas fácil de usar y mas presentables

Nota: este mes y hasta mi boda, este blog va a estar un poco desatendido, por cuestiones obvias pero prometo escribir, lo mas seguido que pueda.

Fuente | WordPress 2.6 Image Aligntment Problems: What Doesn’t Work (7 posts)

Leer más

[Entrevista]Entrevista a Rasmus Lerford, creador del lenguaje PHP

Esto sin duda tenia que publicarlo en este blog ya que, es de suma importancia.

En este post les quiero platicar sobre una entrevista que vi en consumer.es en donde platican con  Rasmus Lerdorf, el cual por si alguno no lo sabe es el creador del lenguaje PHP, con el cual trabajan empresas tan importantes como, Google, Yahoo, Facebook, Ajaxman, y tambien donde estan escritos muchos cms’s como WordPress y PhpBB.

Rasmus Lerford, actualmente trabaja como arquitecto de infraestructuras en Yahoo!, y sigue colaborando con el desarrollo de Php, ademas de que forma parte de Linuxcare Inc. como investigador

A continuación les copio la entrevista.

¿Cómo definiría PHP para alguien que no es programador?

Es la pieza de tecnología que responde a una petición web y provee los datos. Cuando apuntas tu navegador hacia una página web, el servidor responde a la petición y luego trata de encontrar la información para construir la página que luego ves en el navegador. PHP sería la parte que envía una petición a la base de datos o a otro servidor para encontrar la información que luego enviará de vuelta al navegador.

rasmus lerdford

rasmus lerdford

¿Cuando desarrolló PHP pensaba que llegaría al nivel que tiene actualmente de popularidad y de uso?

No, no tenía ni idea de que iba a ser tan popular. Simplemente escribí algo que necesitaba. Estaba haciendo sitios web, necesitaba una herramienta y no estaba ahí. La gente empezó a utilizarla y su uso comenzó a extenderse a medida que se fue necesitando crear servicios en Internet. Así PHP se hizo cada vez más popular. Muchas de esas personas no eran técnicos en programación, provenían del departamento artístico: creativos o redactores que tenían que hacer una web con un editor HTML y les pedían que metieran los productos de la empresa, los precios y las características.

Ellos decían: “¡Un momento, que yo no soy programador; no puedo encargarme de la página y conectarla con una base de datos”. Pero sus jefes les respondían: “Sí, te tienes que encargar de eso”. Por eso un montón de gente que no eran programadores cuando la Web se popularizó y debían confeccionar sitios web tenían pánico y necesitaban una herramienta como PHP, que tiene una curva de aprendizaje muy plana. Es muy fácil arrancar, y puedes coger una página en HTML y hacerla dinámica con PHP. No tienes que leer muchos libros para conseguirlo con éxito y desarrollar una web.

Para mucha gente PHP es “eso” que va junto con MySQL. Aunque puede funcionar con otras bases de datos, se suelen usar juntos, tal vez por el tipo de licencia bajo la que se distribuyen. ¿Son buenos amigos PHP y MySQL?

MySQL hizo por las bases de datos lo que PHP por los lenguajes de programación: los hizo accesibles para mucha gente, para la gente normal. Con Oracle te sientas delante del ordenador, tratas de hacerte a la idea y tienes que leer, leer y leer muchas cosas complicadas, configuraciones, y debes entender muchos conceptos sobre cómo funcionan las bases de datos antes de hacer algo. MySQL es, o al menos era, una base de datos muy sencilla con la que podías hacer una cosa y hacerla bien.

No hacía todas las cosas que podía hacer Oracle, pero sólo necesitábamos hacer algo sencillo para la web, porque en los 90 no era necesario hacer cosas muy complicadas. Sólo necesitabas, por ejemplo, hacer una lista de productos y características o precios. En este contexto, un lenguaje de programación sencillo y fácil de entender, junto una base de datos simple que podías hacer funcionar sin grandes conocimientos, fueron la “killer application” (aplicación determinante) de la época. Podías hacer un sencillo formulario que consultara a una base de datos, buscara los resultados y los devolviera como resultado al navegador. Eso era todo lo que se necesitaba en ese momento.

¿Cuáles son los puntos fuertes de PHP frente a otros lenguajes de programación?

PHP como lenguaje de programación no es mejor, probablemente es peor que otros lenguajes, pero lo que tiene PHP es que está orientado a un objetivo: la programación web en Internet. Cada caso de la documentación del sitio PHP.net está explicado con un ejemplo y eso es lo que busca a gente. Se puede copiar y pegar directamente en el código y realmente resuelve el problema.

Leer más

[PHP] Convertir un XML a un Array de datos con Php

Antes de empezar este post dejenme les comento, como nota muy importante, que yo no hice este script, si no que lo encontre en la web y se me hizo interesante postearlo aqui lo hizo MA Razzaque Rupom , ya que funciona bastante bien y si algun dia tienen que hacer un parseador y no disponen de tiempo, y desean algo que funcione bien, pues para eso esta este script.

Resulta pues que yo estaba revisando algo que hice pero como que no me habia gustado mucho, y asi que me dedique a buscar alternativas que ya estuvieran hechas, para no reinventar la rueda.

Lo que buscaba era un parser de XML a PHP, pero que jalaran muy bien, entonces di con el siguiente codigo.

class.xmltoarray.php

< ?
/**
* XMLToArray Generator Class
* @author  :  MA Razzaque Rupom <rupom_315@yahoo.com>, <rupom .bd@gmail.com>
*             Moderator, phpResource (LINK1http://groups.yahoo.com/group/phpresource/LINK1)
*             URL: LINK2http://www.rupom.infoLINK2
* @version :  1.0
* @date       06/05/2006
* Purpose  : Creating Hierarchical Array from XML Data
* Released : Under GPL
*/

class XmlToArray
{

    var $xml='';

    /**
    * Default Constructor
    * @param $xml = xml data
    * @return none
    */

    function XmlToArray($xml)
    {
       $this->xml = $xml;
    }

    /**
    * _struct_to_array($values, &$i)
    *
    * This is adds the contents of the return xml into the array for easier processing.
    * Recursive, Static
    *
    * @access    private
    * @param    array  $values this is the xml data in an array
    * @param    int    $i  this is the current location in the array
    * @return    Array
    */

    function _struct_to_array($values, &$i)
    {
        $child = array();
        if (isset($values[$i]['value'])) array_push($child, $values[$i]['value']);

        while ($i++ < count($values)) {
            switch ($values[$i]['type']) {
                case 'cdata':
                array_push($child, $values[$i]['value']);
                break;

                case 'complete':
                    $name = $values[$i]['tag'];
                    if(!empty($name)){
                    $child[$name]= ($values[$i]['value'])?($values[$i]['value']):'';
                    if(isset($values[$i]['attributes'])) {
                        $child[$name] = $values[$i]['attributes'];
                    }
                }
              break;

                case 'open':
                    $name = $values[$i]['tag'];
                    $size = isset($child[$name]) ? sizeof($child[$name]) : 0;
                    $child[$name][$size] = $this->_struct_to_array($values, $i);
                break;

                case 'close':
                return $child;
                break;
            }
        }
        return $child;
    }//_struct_to_array

    /**
    * createArray($data)
    *
    * This is adds the contents of the return xml into the array for easier processing.
    *
    * @access    public
    * @param    string    $data this is the string of the xml data
    * @return    Array
    */
    function createArray()
    {
        $xml    = $this->xml;
        $values = array();
        $index  = array();
        $array  = array();
        $parser = xml_parser_create();
        xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
        xml_parse_into_struct($parser, $xml, $values, $index);
        xml_parser_free($parser);
        $i = 0;
        $name = $values[$i]['tag'];
        $array[$name] = isset($values[$i]['attributes']) ? $values[$i]['attributes'] : '';
        $array[$name] = $this->_struct_to_array($values, $i);
        return $array;
    }//createArray

}//XmlToArray
?>

Para usarlo lo haremos de la siguiente forma,

Leer más

[PHP] Como saber cuando te visita GoogleBot

Hay veces en las que deseamos saber cuantas veces hemos sido visitados por algún robot de algún buscador.

Yo en lo personal siempre me ha gustado andar viendo con que frecuencia nos visita Google, para ver cada cuando me indexa, esto es solo digamos que por dos cosas SEO y curiosidad.

Bueno pues me acabo de encontrar un script en PHP que funciona de la siguiente forma: cada vez que te visita GoogleBot, te manda un mail, en realidad la función no es nada difícil ni complicado, solo que pues una ayuda nunca esta demás el código es el siguiente

[Php]

< ?php

if ( strpos( $_SERVER['HTTP_USER_AGENT'], 'Googlebot') !== false )
{
// tu email
$email_address = 'tumail@tudominio.com';

// enviando mail usando la funcion mail nativa de php
mail($email_address,'Googlebot te ha visitado', 'Googlebot ha visitado tu pagina:'.$_SERVER['REQUEST_URI']);
}
?>

[/Php]

Lo puse en español ya que la fuente esta en ingles esto es para que lo entiendan mejor aunque no creo que se les dificulte la implementación.

Vía | PHP: Be Notified When Google Crawls Your Site

Leer más

Historico de entradas

febrero 2012
L M X J V S D
« ene    
 12345
6789101112
13141516171819
20212223242526
272829  

Ajaxman

Mi nombre es Javier, soy desarrollador web con especialización en PHP (avanzado), HTML, CSS y Javascript(Medio).

Me considero evangelizador de Kohana Framework, Mozilla Firefox y GNU/Linux Debian.

Estoy casado, y tengo dos hermosos hijos.

Todos los contenidos a menos que se exprese lo contrario estan bajo licencia Creative Commons.

Enlazanos!!

hit counters online counter