Programacion

[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

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

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.

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í. (más…)

[PHP] Métodos estáticos en PHP

Este es un post de PHP, ya que si bien es lo que mejor manejo y ademas de que casi no hay posts de PHP en mi blog.

Bien empecemos por el principio.

Cuando estamos programando a veces no deseamos estar instanciando una clase, ya que puede que el método sea algo que simplemente devuelva algún valor, por ejemplo un parser o similar, entonces se vuelve tedioso estar haciendo, $obj =new Clase();, la solución para esto es usar un método estático.

Los métodos estáticos no necesitan ser instanciandos ademas de que son ligeramente mas rápido que los métodos normales, si bien esto no significa que debamos de dejar de usar los métodos normales, estos pueden ser muy útiles para hacer por ejemplo una especie de catalogo de funciones, aunque claro su uso depende de cada quien.

Veamos una clase con un método normal y posteriormente como seria si fuera estático.

Ahora veamos como se haría usando un método estático

Como podemos ver es mas simple llamarlo, claro que como menciono hay algunas cosas a tener en cuenta, las mas importantes son:

  • No existen los métodos “mágicos” __construct ni __destruct, puesto que jamas se instancia la clase, en su lugar se puede invocar otro método estático que asigne, las variables
  • No existe $this, se debe usar en su lugar self, aunque las variables tienen que ser igualmente estáticas, esto se aplica tanto en variables como métodos

Haremos un ejemplo un poco mas complejo para ver como usar self en vez de this

(más…)

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

Hagamos un ejemplo muy bien explicado sobre cómo usar el Framework Kohana PHP con MVC usando ORM entre otras cosas, para que vean para que sirve y todo lo que pueden hacer con el

Ya sabemos cómo instalarlo ahora procedamos a trabajar.

Como ejemplo haremos una aplicación que liste productos, maneje altas y bajas de una tienda con un Front-End y un Back-End.

Para empezar necesitamos lo siguiente

*Requisitos

  • Apache (ModRewrite instalado)
  • PHP 5.2
  • MySQL
  • Kohana 3 Framework

*Opcionales

  • SQlFront
  • Phpmyadmin
  • Editor de código como Webuilder (Luego veremos cómo hacer casi lo mismo con Netbeans un IDE completo)

Haremos una nueva instalación de Kohana, en nuestra PC que será nuestro servidor (localhost) copiamos el contenido del framework a una carpeta que se llame tienda (en mi caso E:/www/tienda/)

Y acceso a mi website escribiendo http://localhost/tienda/  y ahí veremos nuestro install ahora navegamos hasta  E:/www/tienda/ y ahí estará ese archivo, lo borramos (si todo salió ok, si no corregir y verificar hasta que todo este en verde)

Esta vez vamos empezar por los datos para que al final hagamos el website.
Necesitamos una tabla de productos usaremos el siguiente SQL con los datos básicos de cada producto.

Como regla general hay que tener en cuenta que la base de datos debe de tener las siguientes características:

  • Nombre de la tabla en Plural (“productos”)
  • Nombre de los campos en Singular (“descripción”)
  • La clave principal se llamara id, en minúsculas (Se puede poner otra cosa pero habría que editar nuestra clase que manejara esa tabla por ello lo dejaremos como id)

Agregamos el siguiente contenido

Ahora editaremos nuestro bootstrap   (E:/www/tienda/application/bootstrap.php)
Buscaremos el configuración del init y escribiremos los siguiente

Lo guardamos (:wq XD ) y vamos a ver que en la raíz del proyecto hay una archivo llamado example.htaccess lo renombramos a .htaccess que será el que manejara las urls amigables para no tener el tienda/index.php/controlador ser tienda/controlador.

Les recomiendo comentar la siguiente línea para no tener problemas en las direcciones

Lo guardamos (:wq XD )  Y ahora vayamos a crear nuestro controlador.

Entramos a E:/www/tienda/application/classes/controller y creamos tienda.php
Y creamos nuestro controlador

Lo guardamos (:wq XD ) y naveguemos a http://localhost/tienda/ veremos que dirá “Programando ….”, si no vemos eso es que algo hicimos mal y hay que volver a ver en donde nos fallo

Ahora bien, procederemos a conectar la base de datos, para ello vamos a editar el archivo de configuración de la base de datos E:/www/tienda/modules/database/config/database.php

Y agregaremos la conexión mysql, pueden usar PDO(pero prefiero hacerlo como ejemplo de forma tradicional)

Ahora que ya lo tenemos vamos a decirle a kohana que agregue los módulos de base de datos y orm, necesarios para que funcione nuestro ejemplo, para ello hay que editar otra vez nuestro archivo bootstrap ya descomentar los módulos de manera que quede así.

(más…)

[Evento] Konference (Kohana Conference) en Londres el 15 de Mayo 2010

Ahora si a lo windows Woow.

Hasta hoy apenas me vengo enterando de esto, les platico rápidamente.

El 15 de Mayo de este año (2010), se llevara a cabo en Londres, una conferencia de desarrolladores del Framework Kohana:
KOnference – The London Kohana Conference 2010.

La verdad estoy con unas tremendas ganas de ir sin embargo dudo mucho que pueda, por que no creo que en la chamba me paguen la ida y pues ahorita no hay mucho presupuesto.

Kohana Konference

Me puse ha investigar y aquí les dejo la agenda, la cual se ve va a estar bien interesante.

  • Inicio || Duración || Sesión
  • 10:30 || 25″ || Registration
  • 10:55 || 5″ || Welcome
  • 11:00 || 55″ || Building Swiftly with Kohana 3 – KO3
  • 11:55 || 40″ || Designing for Scalability with HMVC – KO3
  • 12:35 || 15″ || Break
  • 12:50 || 35″ || Migrating existing codebases to Kohana – KO2
  • 13:25 || 30″ || Advanced ORM – theory and practice – KO3
  • 13:55 || 30″ || Lunch
  • 14:25 || 30″ || Discovery Session
  • 14:55 || 20″ || Rapid site prototyping – KO2
  • 15:15 || 30″ || Templating with Twig – KO3
  • 15:45 || 30″ || Break
  • 16:15 || 25″ || An introduction to using Gearman with Kohana – KO2
  • 16:40 || 20″ || Deploying Kohana on a large scale application – KO2
  • 17:00 || 10″ || Mukuru.com – Kohana meets E-Commerce
  • 17:10 || N/A- || Beers & dinner

Como ven habra platicas tanto de Ko3 como de Ko2, el unico pero que veo es que sera hasta Londres y pues es algo complicado ir.

Ojala y leyeran este post y pronto hagan una aunque sea en EUA.

Al parecer el costo sera de 15 GBP (Libras) (unos $300 MXN), el pago se realiza mediante Paypal y el registro sera a las 10:30 (Hora Local), recomiendan llegar a tiempo ya que como ellos dicen hay mucho que ver y el tiempo esta contado.

Pues ojala y eventos como este le den mas presencia a este increible framework y lo ayuden a crecer, por que se lo merece.

Mas info en los siguientes Links:
KOnference – The London Kohana Conference 2010

KOnference – The London Kohana Conference 2010 Calendar

[Php] ¿Que es un ORM?

Pues como has visto en los últimos artículos de este blog he hablado mucho del famosísimo ORM que si bien aun me falta mucho, para poder usar todas sus características, lo poco que he aprendido a usarlo me ha resultado maravilloso.

El mapeo objeto-relacional u ORM (Object-Relational Mapping), una técnica de programación para convertir datos entre el sistema de tipos utilizado en un lenguaje de programación orientado a objetos y el utilizado en una base de datos relacional. En la práctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos relacional. Wikipedia

Ose nos permite “pasar” una base de datos a programación orientada objetos, es decir tu solo te encargas de configurar tu conexión y mediante métodos puedes hacer los querys que quieras, y todo son objetos.

Existen muchos ORMS, para diferentes lenguajes de programación, pero obviamente nos enfocaremos a Php, y según se (no estoy 100% seguro) pero los ORMS están basados en Hibérnate de Java se supone que fue como el primer ORM.

En Php tenemos los siguientes ORMS:

Yo no he visto como trabajan cada una y se dé muy buenas fuentes que las mejores estan entre Doctrine y Propel.

Claro que depende de que desees hacer, de hecho aun no he probado bender-modeler pero por lo que veo es muy completa :-) (Y no es comercial he) ya que como dije va mas allá ya que te genera los modelos que usaras en tu bd automáticamente (incluidos getters y setter).

Voy a mostrar a que me refiero con todo esto del ORM desde la vista de Kohana ORM ya que es donde he trabajado y es muy fácil.

Antes que nada quiero aclarar que son solo ejemplos, prometo que después de esto seguirá nuestra primer MVC con base datos, ORMS y todo, esto solo es para que se den una idea de que hablo cuando digo que esta buenos los ORM´s.

Para empezar solo necesitamos crear nuestra tabla (p.ejem. ‘usuarios’), y crear un modelo con la siguiente sintaxis.

usuarios.php

(más…)

[Php: Kohana 3]El framework Kohana 3 y el MVC

Bien después del error que se presento en el penultimo post, y ya resuelto seguimos posteando “ahora si que voy tendido”.

Yo supongo que ya leyeron el post anterior sobre instalación de Kohana 3, si no este es el link [Framework Kohana 3] Instalando y configurando Kohana 3 #Ko3

Bien teniendo eso, hoy haremos un pequeño ejemplo de MVC, recordemos que el paradigma MVC (Modelo, Vista, Controlador) nos permite desarrollar mejor, mas rápido, organizar nuestro proyecto y hacerlo abstracto.

Lo anterior es porque nos permite programar de la siguiente manera:

  • Modelo: Capa de datos, la cual se encarga de la petición de datos
  • Vista: capa de presentación, es la que se encarga de mostrar el resultado al cliente
  • Controlador: capa de negociación, esta se encarga de organizar al información, en otras palabras identifica que es lo que necesitas, pide los datos al modelo y los presenta en la vista.

Bien ahora veamos cómo trabaja Kohana 3 con esto

Como podemos ver Kohana consta de 3 carpetas:

  • Application: es donde estará nuestra aplicación donde tendremos nuestras carpetas de MVC, digamos que es lo publico
  • Modules: es donde residen los módulos que le podemos agregar a Kohana por ejemplo la conexion a la base de datos, el ORM(luego hablaremos de este),autenticación etc.
  • System: pues como su nombre lo indica es donde está el core del Kohana 3 o el núcleo, este pues casi no hay que tocarlo en la mayoría de proyectos de hecho casi nunca se toca o no debería tocarse.

Ahora lo que nos interesa en este caso es la carpeta Application, al abrimos y veremos las siguiente carpetas:

(más…)

[Certificación PHP5] Php su sintaxis y las reglas que debemos saber

Para empezar vamos por lo básico ojo solo es un repaso de lo mas importante según la guía de certificación, si necesitas mas información, dime y con gusto cotizamos un curso :-)   no en serio puedes consultar con el manual de PHP (el curso también es en serio).

Php es el acrónimo recursivo que significa PHP Hypertext Pre-processor, fue desarrollado por Rasmus Lerdorf en 1994, y esta escrito en Lenguaje C.

Php nos sirve para escribir paginas web y mas cosas pero la certificación se centra en la parte web, que es donde más se aplica.

Zend PHP 5 Certificación

Zend PHP 5 Certificación

Conociendo su sintaxis.

Para empezar a programar en PHP podemos usar cualquiera de las siguientes teniendo en cuenta en lo que influye cada una.

El primer método, <?php. . .?>, es el más conveniente, ya que permite el uso de PHP en código XML como XHTML.

El segundo método no siempre está disponible. El formato corto de etiquetas está disponible con la función short_tags() (sólo PHP 3), activando el short_open_tag en el php.ini. Aunque esté activa por defecto en php.ini, se desaconseja el uso del formato de etiquetas cortas.

El tercer método es muy largo y lleva a confusiones con código Javascript que tiene casi la misma etiqueta.

El cuarto método sólo está disponible si se han activado las etiquetas ASP en el fichero de configuración: asp_tags.

Zend Technologies recomienda que solo usemos el primer método, ya que es mas limpio y mejor además de que no se confunde con ASP o con Javascript o evita tener que activar las short_tags.

[PHP]La Certificación PHP

Como verán con este post, sigo activo y empezando a ser más constante en el blog, como no lo había sido en varios meses.

Y pues les platico un poquito de que vamos a tratar en los próximos posts y el por que de ellos.

Zend PHP 5 Certificación

Zend PHP 5 Certificación

Bueno como sabrán soy Desarrollador Web(¿si saben no?) y actualmente trabajo en con lo siguiente.

  • XHTML
  • Php
  • MySQL
  • Linux
  • Css
  • Javascript/Ajax
  • Entre otros

Entonces pues como me gusta mucho desarrollar con Php, empecé a buscar técnicas mas eficientes para desarrollar mejor y mas rápido, fue así como conocí el MVC (Mi primer patrón de diseño quien lo iba a decir) y junto al el, un poderoso Framework, llamado CodeIgniter.

Y aunque si bien ya conocía un poco de POO, últimamente estoy aprovechando su verdadero potencial para el desarrollo de Websites, cosas como abstracción, herencia, métodos estáticos, getters y setters, en resumen, Php tiene gran potencial que como dicen algunos, por ello Php no esta bien valorado por que todos pueden escribir un poco de Php, mas eso no significa que sepan como y que están haciendo.

Bien bajo este preámbulo, pues como ven me gusta y ya se bastante de Php, pero la necesidad de demostrar mis conocimientos me llevo a buscar que mas podía hacer(hay varios pendientes, como SPL y SOAP).

Pensé en por que no me certificaba, si, Certificarme en Php, la cual la realiza Zend Technologies.

Y bien de eso es lo que trataremos en los posteriores posts, serán de PHP, pero basados en el temario de la guía de certificación de Php, en donde intentare explicar cada uno de los temas que vienen en el temario, claro no soy un experto por ello lo explicare según yo, y si me equivoco pues para eso están los comentarios y así aprenderemos todos.

El día de hoy empezamos con el post que sigue.

Los detalles de la certificación los pueden revisar en este link:

Zend PHP 5 Certification

[Javascript:Jquery] Plugin GoogleMaps

Me entero en Twitter, sobre un plugin de Jquery el cual nos permite trabajar comoda y apliamente con GoogleMaps de una manera muy facil.

Para usarlo primero nos bajamos el Jquery y despues el plugin

En nuestro HTMl agregamos ambos JS’s (El Jquery primero y despues el plugin Jquery.Googlemaps)

Y ahora a agregamos el siguiente script (Javascript)

Y listo con eso ya podemos ver como funciona

Aunque como hemos de suponer es mucho mas funcional usando algo mas de codigo, aqui algunos ejemplos.

Por ejemplo podemos indicar la latitud y la longitud

O algo tan avanzado como una marca, personalizada en cierto punto del mapa.

Y con el ultimo ejemplo podriamos obtener algo como esto

Google Maps jQuery Plugin

Google Maps jQuery Plugin

Toda la documentacion y mas ejemplos en la pagina web del autor
Google Maps jQuery Plugin – Shawn Mayzes

[Aplicaciones Web] AjaXplorer, el manipulador de archivos con Php

Pues así es resulta que en Webintenta, me encontré con  una interesante aplicación web la cual es un completo gestor de archivos Open source, escrito en PHP.

Es bastante rápido, y bastante practico, a continuación listo las características platicadas en Webintenta.

  • Podemos realizar tanto sobre carpetas como archivos las siguientes acciones: renombrar, copiar, mover, eliminar, descargar.
  • Carga de archivos múltiples con barra de progreso.
  • Posibilidad de editar archivos de texto (con resaltado de sintaxis para JS, PHP, HTML, Java, SQL y PERL).
  • Las imágenes se pueden ver de antemano y en un pase de diapositivas.
  • Los archivos MP3 se pueden escuchar sin descargarlos.
  • Los vídeos de Flash también se pueden ver sin necesidad de descargarlos.
  • Los archivos ZIP pueden ser navegados y extraídos desde el propio gestor de archivos.
  • Sistema de favoritos para llegar a los archivos que uno desea de un modo más fácil.
  • Multilenguaje, con soporte para el español.
  • Búsqueda recursiva.
  • Entorno multi-usuario. El administrador puede crear nuevos usuarios y permite asignar los directorios y derechos a los usuarios.
  • Drag’n Drop, Atajos de teclado, Capacidad para seleccionar múltiples archivos / carpetas.

Lo que me gusto mucho fue sin duda el resaltado de sintaxis, el cual es rapido y bastante bueno ademas de que obviamente se puede descargar y usar libremente.

AjaXplorer Web based file browser

AjaXplorer Web based file browser

Me entere via | AjaXplorer: Gestor de archivos gratuito en PHP

Y la aplicación la puedne encontrar en  | Ajaxplorer