vagrant

Cambiando version de PHP en Ubuntu / Nginx

Si tenemos la nueva version de Homestead que es la imagen de vagrant creada para los desarrolladores de Laravel (https://atlas.hashicorp.com/laravel/boxes/homestead) que desde la version 0.4.0 ya viene con PHP7 por defecto y por el contrario requerimos usar la version 5.6 o una inferior lo que debemos realizar es lo siguiente: 1- Opcionalmente podríamos eliminar la version de PHP 7, pero lo mejor es dejarla instalada  para un proyecto puntual en el futuro. 2. Actualizar nuestro repositorio de ubuntu 3. Procedemos a instalar PHP (en este caso 5.6) con todos los módulos que necesitamos

Iniciando con Composer

Composer es un manejador de dependencias de PHP, similar a NPM en node.js y a los bundles de Ruby. a https://getcomposer.org/ Composer es una de las mejores herramientas disponibles para el desarrollo en PHP hoy en día. Para instalarlo ingresamos en la consola (Terminal) en Mac y si tenemos la libreria curl instalada colocamos: Si no se tiene la librería curl se puede instalar de la siguiente forma Si ejecutamos el comando composer obtendremos los siguiente: Composer  
laravel

Instalando Laravel en Mac OS x Mavericks via Composer

Laravel es un framework de PHP que esta cimentando usando una gran cantidad de componentes del  framework Symfony aunque en estructura es algo más parecido a Silex (Microframework basado en Symfony y creado por esa misma empresa), Este framework ha tenido una gran acogida en los últimos meses en el mundo y ya va por su version 4. Este pequeño post lo dedicara a la instalacion de laravel para iniciar un nuevo proyecto localmente en Mac OSx usando composer. Los requisitos minimos para usar laravel son:
  • PHP >= 5.4
  • MCrypt PHP Extension (En Mac OS x por defecto no esta instalada)
Lo primero y más recomendable de hacer es usar no solo para proyectos con laravel sino para cualquier tipo de proyecto en PHP. Composer getcomposer.org  es un manejador de dependencias para PHP, con lo cual se pueden desplegar los proyectos con los requisitos de los mismo de una manera sencilla y rapida. Para instalar composer podemos hacerlo por proyecto o para lo registramos para que pueda ser invocando en cualquier parte. Lo primero es abrir la terminal y colocar O en un directorio determinado usando

MsSQL Server con PHP 5.3 +

PHP para versiones anteriores a la 5.3 tenia una libreria llamada php_mssql.dll la cual permitia realizar la conexion con bases de datos MsSQL Server, alguna vez lo habia hecho usando esta libreria sin ningun problema. Ahora teniendo instalado la version de WAMP 2.1.17 me tope con que la libreria no funciona y de hecho por defecto no esta incluida. Encontre entonces que microsoft tenia una nueva libreria llamada php_sqlsrv la cual para esta version de PHP realiza todo el proceso de comunicación con SQL Server. La libreria se puede descargar de http://bit.ly/oKUJ86 y la documentacion se encuentra en este link . Para instalarla simplemente ubicamos la carpeta de extensiones de php(ext) y copiamos las dll’s. Abrimos tambien el archivo php.ini y agregamos los siguiente: extension=php_sqlsrv_53_ts_vc6.dll
[sqlsrv]
sqlsrv.LogSubsystems=-1
sqlsrv.LogSeverity=-1
sqlsrv.WarningsReturnAsErrors=0
Para trabajar de forma segura tenemos que habilitar a su vez safe_mode = on dentro de este mi archivo. Si quiere ver que todo esta muy bien, se dirigen al log de errores de apache y revisan que no marque ningun error a la hora de cargar las librerias de php. Por ultimo ejectutamos en un documento <?php infophp() ; ?> y verificamos que las librerias se haya cargando exitosamente como muestro en la siguiente figura Recomiendo instalar la base de datos de Adventure Works de Microsoft que pueden descargar http://bit.ly/oKUJ86 y el codigo de ejemplo http://bit.ly/oKUJ86. Espero que esto les ayude :-)

PHP: listar archivos de un directorio

Listar los archivos de un directorio es necesario cuando se desea eliminar una carpeta pues no se puede eliminar carpetas con elementos dentro, de igual forma podriamos crear una siemple galeria en base a todas las imagenes que tenga una carpeta especifica. Es frecuente que podamos encontrar otras carpetas dentro de la misma y en esos casos si estas carpeta contiene informacion se tendria que elimnar primero la informacion dentro de ella antes de poderse borrar la carpeta respectiva. Para poder evaluar este tipo de situaciones podemos utilizar el funcion is_dir . Entonces si queremos mostrar todos los contenido incluidos los de las subcarpetas podemos utilizar algo asi como: Ya para eliminar agregamos la funcion unlink a la estructura deseada.

PHP: Clases abstractas

PHP desde su version 5 a configurado unlenguaje más robusto y tratando de ser un lenguaje Orientado a Objetos como java, c++, c# entre muchos otros. La posibilidad de crear objetos (funcionalidad propia de todo le nguaje OO) ha generado un gran entusiasmo en todo los programadores de PHP. La abstracion de clases es un elemento sumamente importante por que son clases que definen patrones para otras clases que extiendes de estas (guias). Un ejemplo muy interesante e ilustrativo que vemos permanentemente en los libros de programacion es el de los medios de transporte donde la clase abstracta es la de vehiculo y de la cual extienden objetos como carro, moto, bus, bicicleta etc. La clase abstracta se declara de la siguiente forma: Debemos saber que esta clase no se puede instanciar, si lo intentas de arrojara un error. La clase abstracta definira las propiedades y metodos que se necesitaran para implementar las clases derivadas. Para ilustrarlo mejor refiriendonos a la clase vehiculo tenemos lo siguiente: La clase carro que extiende de vehiculo seria: Caracteristicas:
  • Las clases abstractas no se pueden instanciar.
  • Las clases que heredan de esta deben implementar todos los metodos abstractos.
  • Las clases abstractas pueden heredar de otras clases.
  • Los parametros de los metodos deben ser iguales, ya que sino sera tratado como otro metodo.
  • Si una clase tiene un metodo abstracto esta debe declararse también como clase abstracta.

Detectar visitantes mobiles en PHP

En estos dias tenia que realizar un proyecto en el que necesitaba presentar una versión movil de un sitio si esta era accedida desde un dispositivio con estas caracteristicas y por otro lado mostrar el sitio en todo su explendor si se entraba desde un computador. Pense en hacer yo mismo la funcion que hiciera la detección utilizando $_SERVER[‘HTTP_USER_AGENT’] como base, la cual me arrojara información del dispositivo de donde se realiza la conexión. Meditando un poco y buscando encontre si necesidad de pensar mucho (ya otro lo ha hecho por mi), una función realmente util y completa que hace esta tarea. La probe con mi celular que tiene Windows Mobile 6.1 con Opera Mobile e Internet Explorer y funciona de maravilla. Aqui les dejo el codigo y espero que les sirva.  :-)

Twitter php API – crear nuevo mensaje

twitter logo

twitter logo

En el post anterior explique como leer los mensajes que hemos escrito en Twitter, ahora les mostrare como crear un nuevo mensaje, la verdad la documentacion de la libreria es mala, pero si uno se pone a analizar las funciones, son muy intuitivas y faciles de usar, creo que este sera el ultimo post sobre este tema (caso cerrado). Primero que todo inicializamos nuestra cuenta como se vio en el Post anterior, luego simplemente invocamos la funcion update de la libreria y escribimos nuestro mensaje. Tenemos que tener en cuenta que este no puede ser mayor a 140 caracteres.

Si tiene alguna duda con cualquiera de la funciones me pueden escribir y con gusto les ayudare.