Php

[Ajaxman] Como me fue en el Flisol 2011

Bueno hoy que tengo que dormirme temprano me dio por postear lo de el sábado pasado osea el Flisol 2011.

Aquí va un pequeño resumen de como me fue, la verdad pensaba postearlo antes pero con mi exceso de tiempo y demás pues ya no se pudo bueno aquí vamos.

Se realizo el día 9 de Abril, en toda latinoamerica, en muchas sedes como Universidades,o similares.

Yo me organice y me fui a dar una platica de PHP en la UACM (Universidad Autónoma de la Ciudad de México) campus “Cuautepec” que se ubica en La Gustavo A. Madero de México D.F.

La platica se denomino “Desarrollo de Aplicaciones Web con PHP”, en la cual trate de abordar las ventajas de PHP, y cual es el presente y futuro del desarrollo Web profesional con PHP.

Básicamente aborde los siguientes temas.

  • Importancia de tener presencia en la Web
  • Tener un blog o un sitio Web
  • Por que apostar por las tecnologías Libres
  • Ventajas de tener un Servidor Linux
  • Ventajas de usar Apache Web Server
  • Por que usar PHP
  • Como es la sintaxis de PHP
  • Desventajas de PHP (Codigo Spaghetti)
    • Soluciones
    • Programación Orientada a Objetos
    • Arquitectura MVC
  • Los CMS
  • Los Frameworks y sus ventajas y desventajas
  • Quien usa PHP y por que lo usan (Ventajas, Estabilidad, Potencia)
  • El grupo Programadores PHP

Realmente me hizo falta tiempo para mostrar todas las ventajas de PHP, pero al parecer gusto mucho la platica tuve un par de Feedbacks interesantes.

Me regalaron una playera, un Tux y el gafete decía Firefox (y yo bien feliz) además de que me ofrecieron un reconocimiento los cuales pongo a continuación

Ahora dejo los slides que use para dicha platica, por si alguno quiere ver las ventajas de PHP.

Saludos y seamos más phpheros

Leer más

[Flisol 2011] Platica “Desarrollo de Aplicaciones Web con PHP”

Hola, pues de algunos ajustes ya estamos en un nuevo servidor, el anterior nos funciono muy bien, pero tuvimos que migrar por otras causas (gracias Tirso =) ).

He estado trabajando duro en el proyecto MSK(codename), pero aun faltan algunas cosas, ya compre el server y todo, en breve (léase 1 mes jaja) estaremos lanzado invitaciones para que lo testeen y me digan que les parece.

Ahora bien, pensé en apoyar con algo en alguna sede, y bueno pues ya esta. Se trata de una platica desde básica a avanzada, la cual durara aproximadamente 2 horas.

Tema: Desarrollo de Aplicaciones Web con PHP
Objetivo: Mostrar al capacidad del lenguaje, mostrar la sintaxis básica, y por que es la mejor opción como software para desarrollo de paginas web dinámicas
Duración: 2 Horas (aproximadamente)
Lugar: Universidad Autónoma de la Ciudad de México (UACM) Campus “Cuautepec”
Dirección: Avenida La Corona 320, Colonia Loma la Palma, Delegación Gustavo A. Madero.
Costo: Gratuito

Temas:

  • Internet y la Web
  • La importancia del internet en la vida diaria.
  • Servidores Web
  • LAMP, El Open Source en la red
  • Programando en PHP
  • La programación Orientada a Objetos en PHP
  • Los CMS y Frameworks, como desarrollar mejor y mas rápido
  • El pasado, presente y futuro de PHP

Sera un platica con intención de ser taller, ya que se pretende mostrar todo estos y es opcional que los usuarios programen algo como ejemplo, aunque claro tomemos lo con platica.

Como llegar:

  • En auto te puedes ir por avenida de los Cien Metros, a la altura del Reclusorio Norte. A 20 minutos de Poli Zacatenco.
  • Metro La Raza, sale el RTP que dice “Reclusorio-Charco”, y pasa por las estaciones de metro Autobuses del Norte, Instituto del Petróleo y Politécnico(pasa afuera de la UACM).
  • Metro Indios Verdes, salen RTP y microbuses con la misma leyenda que el anterior(pasa afuera de la UACM).

Mapa:

Esperamos que les guste y ya saben cualquier queja, felicitación, donativos( =) ), me avisan por mi twitter @ajaxman.

Por cierto habra talleres de instalacion de Linux, platicas, asistan y disfrutemos este evento.

Leer más

[Kohana - PHP] Lanzamiento de Kohana 3.1 “Merle” y como hacer el upgrade

Pues apenas me vengo enterando de que los desarrolladores de Kohana han liberado el día 7 de Febrero la versión 3.1 del Framework Kohana llamada “merle“.

Pues obviamente hay muchos que queremos tener nuestro Framework actualizado, entonces pues me dispuse a migrar un website de la versión 3.0.9 a la 3.0.x.

Las instrucciones de migrar son fáciles, regularmente se basa en reemplazar el directorio system de nuestra aplicación, pero esta nueva versión incorpora muchos cambios los cuales, hacen la migración un poco mas complicada.

El mismo sitio de kohana nos avisa de los siguientes cambios:


//Versión 3.0.x

$this->request->response = 'foo';

//Versión 3.1
$this->response->body('foo');

//Cambios en la clase Request de propiedades a métodos

//Versión 3.0.x  ===>    Versión 3.1
Request::$controller ==> Request::controller()
Request::$action ==> Request::action()
Request::$directory ==> Request::directory()
Request::$uri ==> Request::uri()

Todos lo puntos son marcados aquí
http://kohanaframework.org/3.1/guide/kohana/upgrading.

Ahora bien, a mi los que mas me interesaron, son importantes y no vienen aqui son los siguientes.

Request


//Versión 3.0.x

Request::instance();

El método estático anterior nos devolvía el singleton de nuestra solicitud con dicho método estático podiamos obtener parámetros y una de las cosas para lo que yo la utilizaba era para la creación de mi Breadcrumb.


//Version 3.1

Request::current();

//o

Request::initial();

Aquí como vemos tenemos dos opciones, y se elimino instance, las dos son iguales salvo por un detalle, si usamos HMVC, initial contendrá la información de la petición inicial, es decir si desde un controlador estamos invocando a un Request::factory(), ese sera inital y el factory invocado sera current cuando estemos programando dentro del factory.

Leer más

[LAMP] Instalando un servidor Apache2, MySQL, PHP y PhpMyadmin en GNU/Linux Debian

Bueno les estaba preparando un post sobre Python-Django con apache pero creo que antes voy a postear esto.

Bueno la idea es instalar un servidor LAMP completo con Apache MySQL y PHP(de momento luego python también),en un entorno GNU/Linux, esto lo haremos mediante nuestro gestor de paquetes apt o aptitude, que vienen siendo casi lo mismo, luego quizá lo hagamos compilando nuestros propios binarios pero para la practica esta bien aprender con esto.

Primero abrimos nuestra Terminal(Konsole en KDE4) o vamos directamente a nuestra consola si no tenemos interfaz grafica y con el comando su nos logueamos como root.


ajaxman@debian:~$ su
Contraseña:

root@debian:/home/ajaxman#

Una vez como root procederemos a instalar nuestros paquetes los cuales serán los siguientes.

  • Apache
    • apache2
  • PHP
    • php5
    • php5-mysql
    • libapache2-mod-php5
    • php5-curl
    • php5-mcrypt
    • php5-gd
  • MySQL
    • mysql-server
    • mysql-client
    • phpmyadmin

Con la lista anterior estaremos instalando Apache, PHP y MySQL, además de algunos módulos necesarios para que estos tres softwares estén instalados y algunos módulos extras, los cuales a veces pueden ser necesario como en mi caso que le puse el modulo GD, el CURL y el MCRYPT.

GNU/Linux es muy practico y por ello nos permite instalar todo desde un solo comando, ojo puedes ser necesario tener instalado ncurses para que el MySQL no pida los datos de acceso, inserta la siguiente linea en tu consola y ahí te mostrara si las dependencias están completas o si necesitas algún software extra(para ncurses instala libncurses5-dev).


root@debian:/home/ajaxman#apt-get install apache2 php5 php5-mysql libapache2-mod-php5 php5-curl php5-mcrypt php5-gd mysql-server mysql-client phpmyadmin

Leer más

[Manual-PHP] Creando un proyecto MVC con Framework Kohana PHP parte III

Usando Vistas y variables en Kohana PHP Framework

Cuando trabajamos con el framework Kohana PHP, una parte muy importante son las vistas, ya que son unos de los pilares del MVC, el cual es altamente utilizado por el framework.

Las vistas son archivos con extensión .php las cuales están pensadas para mostrar contenido, y también existe un modulo que nos permite utilizar plantillas smarty, pero hoy no tocaremos ese tema, estos archivos estarán alojados en ruta_de_instalacion_/application/views/ y pueden contener código Php, aunque la idea es de que dicho código sea lo más pequeño  y simple posible, y sea solo para mostrar resultados por ejemplo de una consulta.

Como vimos en la segunda entrega de este manual, para mostrar algo es imprescindible usar una vista, he invocarla desde nuestro controlador, mediante el método estatico View::factory.

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Tienda extends Controller {

 public function action_index()
 {

 $vista = View::factory('template');
 $this->request->response = $vista;

 }

} // End Tienda

Ahora bien como es de suponerse, podemos enviar datos a nuestra vista para poder mostrarlos en ella, esto nos sirve para por ejemplo enviar un array a nuestra vista y recórrelo para mostrar algún resultado de una consulta.

Hay varias formas de enviar datos a nuestra vista, veamos cuales son:

Mediante Bind o Set
, de esta forma podemos pasar una variable, sin importar su valor a nuestra vista y puede ser un string, entero, un array o un objeto y se encadena a nuestro método estático de View::factory, cabe señalar que la única diferencia entre bind y set es que bind asigna la variable por referencia, en lo personal casi no la uso, ya que set satisface mis tareas.

La otra opción es mediante variables globales y para ellos se pueden utilizar dos métodos estáticos (uno se usa como set y otro como bind), los cuales son View::set_global y View::bind_global, la diferencia con las dos formas anteriores es que con estos métodos se crean variables globales que pueden ser usadas por cualquier vista, sin tener que especificar alguna vista en especifico.

Ahora veamos cómo usarlas, como nota, solo voy a mostrar set, ya que como indique no he usado ni he necesitado usar bind, si quieren ver el funcionamiento de bien, simplemente reemplazan set por bien y listo XD.

Usando método set.

controlador.php

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Tienda extends Controller {

 public function action_index()
 {

 $user = 'Ajaxman';
 $vista = View::factory('template')->set('username',$user);// Asignamos $user a una nueva variable $username;
 /* tambien podemos enviar muchas de la siguiente forma
 *
 * $vista = View::factory('template')
 ->set('username',$user)
 ->set('edad','18 Años')
 ->set('pais','mexico'); Y asi podemos seguir enviando mas variables a dicha vista
 */

 $this->request->response = $vista;
 }

} // End Tienda

Vista template.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>Vista para Kohana PHP</title>
</head>
<body>
<h1>Bienvenido <?php echo $username; ?><h1>
 <p>Hola esta es una vista para Kohana PHP</p>
</body>
</html>

Lo anterior mostraría Bienvenido Ajaxman, y de esta forma pueden mandar un array o un objeto(resultado de una consulta), recórrelo mediante foreach y mostrar el resultado del mismo.

Ahora bien para las variables globales solo hay que definirlas con el siguiente método estático y podemos usarlas en cualquier vista que carguemos.

Y algo que se me olvidaba pero igual es muy importante el método estático View::factory se puede usar también dentro de la vista, pero debemos usar un método render para que se envié la salida en pantalla, en el código que sigue veremos cómo usarlo.

controlador.php

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Tienda extends Controller {

 public function action_index()
 {

 $user = 'Ajaxman';

 View::set_global('titulo','Bienvenido '.$user);
 View::set_global('keywords','Php,Kohana,Framework, prueba');

 $vista = View::factory('template'); //Notese que no enviamos nada ya que son variables globales

 $this->request->response = $vista;
 }

} // End Tienda

Leer más

[Manual-PHP] Creando un proyecto MVC con Framework Kohana PHP parte II

Bien esta es la continuación al manual de “Creando un proyecto MVC con Framework Kohana PHP parte I“, y ahora veremos un acercamiento más profundo al MVC.

Bien vamos a continuar con el proyecto que teníamos en la parte anterior, y sobre ese mismo trabajaremos, ya teníamos nuestro controlador y nuestro modelo.

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Tienda extends Controller {
/**
 * Controller_Tienda Es el controlador por default recuerden el bootstrap
 * todos los controladores llevan esta sintaxis, Controller_<Nombre_del_controlador>
 *
 *&nbsp; action_index() Es la acción por default (ejemplo http://localhost/tienda/accion)
 *&nbsp; si no se especifica en la url (ejemplo http://localhost/tienda/accion, se usara
 *&nbsp; index por default y la sintaxis es action_<nombre_de_la_accion>
 */
 public function action_index()
 {
 echo "Programando ....";
 }

} // End Tienda

Algo que debemos tener en cuenta en Kohana PHP es que existen dos tipos de controladores padres (parents) de los cuales podemos extender a nuestros controladores con los que trabajemos y eventualmente podemos crear más a nuestro gusto, pero de momento solo veremos los que podemos usar por default en Kohana PHP.

Controlador “Controller”, este es el controlador que usamos en el ejemplo de la parte uno y el cual está arriba, al extender nuestra clase de este controlador hacemos que funcione todo lo necesario para trabajar con Kohana, digamos que es el normal, y lo correcto para mostrar una salida en pantalla es usar la variable publica $this->request->response, y a esta se le asigna lo que necesitemos mostrar, lo cual regularmente debe de ser y será una vista.

Controlador “Controller_Template” este al igual que el anterior, permite que las clases que extiendan de el, tengan toda la funcionalidad de una clase controladora de Kohana, la grand diferencia, con la anterior, es que esta clase necesita una vista por default, la cual será rendereada o interpretada/mostrada automáticamente.

Ahora veamos las vistas para explicar los puntos anteriores.

Una vista es un archivo php(se puede llegar a usar plantillas Smarty mediante un modulo), alojado en ruta_de_instalacion/application/views el cual regularmente es un archivo que contiene un poco de código PHP y código HTML el cual nos permite mostrar nuestra aplicación Web.

Para poder cargar una vista es necesario usar el método View::factory($vista_name);, donde $vista_name es el nombre del archivo sin la extensión.

Hagamos un ejemplo usando los métodos anteriores para ello usaremos este código HTML casi vacío.

Nombre: PATH_INSTALACION/application/views/template.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>Vista para Kohana PHP</title>
</head>
<body>
 <p>Hola esta es una vista para Kohana PHP</p>
</body>
</html>

Leer más

[PHP - Senior] Usando los métodos magicos __construct y __destruct en PHP

En PHP 5 se incluyeron varios métodos mágicos como __construct y __destruct a las clases los cuales no facilitan la forma de programar.

Y bien si no sabes que son estos métodos, aquí los veremos para que te des una idea de como usarlos y para que sirven.

Imaginemos el siguiente código que nos servirá para mostrar los datos de un usuario

<?php
class User {
  private $name;
  private $link;
  private $pais;

  public function setData($name = '', $link = '', $pais = '')
  {
    $this->name = $name;
    $this->link = $link;
    $this->pais = $pais;
  }

  public function getData()
  {
    echo "Nombre::".$this->name."\n";
    echo "Link::".$this->link."\n";
    echo "Pais::".$this->pais."\n";
  }
}

$user = new User();
$user->setData('Ajaxman','http://www.ajaxman.net','Mexico'); // Lease User,Link,Pais
$user->getData();
?>

Hasta ahí todo bien,sin embargo si vemos el código notamos que tenemos el método setData unicamente para asignar datos, esto se podría hacer de esta forma

<?php
$user = new User('Ajaxman','http://www.ajaxman.net','Mexico');// Lease User,Link,Pais
$user->getData();
?>

Y si queremos que funcione simplemente hay que llamar a un método igual que el nombre d e la clase de la siguiente forma.


<?php
class User {
  private $name;
  private $link;
  private $pais;

  public function User($name = '', $link = '', $pais = '')
  {
    $this->name = $name;
    $this->link = $link;
    $this->pais = $pais;
  }

  public function getData()
  {
    echo "Nombre::".$this->name."\n";
    echo "Link::".$this->link."\n";
    echo "Pais::".$this->pais."\n";
  }
}

?>

Ahora bien, desde que surgió PHP5 se puede usar métodos mágicos, uno de ellos es __construct el cual se ejecuta cuando se inicia la carga de la clase, la ventaja es que siempre se debe de llamar así y no tendrás que estar poniendo métodos con el mismo nombre de la clase y quedaría así.

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