10 Mejores Practicas para PHP

Mejores practicas llamamos generalmente a las rutinas o tips que tienen mejor desempeño en el entorno de trabajo, optimizar los recursos de programación, estandarizarnos al programar y de esta manera poder ampliar nuestra experiencia como desarrolladores.
Esta es una lista con 10 mejores practicas a mi parecer para mejorar nuestra calidad de desarrollo al programar con PHP.

1. Habilite el informe de errores

error_reporting(E_ALL);
ini_set('display_errors',1);

Al activar el informe de errores en PHP encontraras muchas alertas que no podrías haber intuido sin esta función, ya que no podemos saber a ciegas que esta pasando con cada variable o proceso, para activar el informe de errores lo puedes realizar con este pequeño código, claro que solo es para la etapa de prueba.

2. Utilizar algún IDE para programar

IDE (Integrated Development Environments) es un programa para mejorar la calidad de nuestro desarrollo, permitiéndonos tener facilidades para alguna función común o procesos que se repiten debes en cuando. Si utilizas uno y quieres saber que tan efectivo es, puede ver el post de comparativa de IDES para PHP.

3. Utilice un buen Framework

En los Frameworks esta la estandarización para PHP, el que cumple con lo dicho es ZendFramework de la corporación Zend, porque es el oficial para PHP y quien dicta las normas y estándares de trabajo, al igual que Sun es para Java, lo mismo es Zend para PHP, pero no por eso debe de ser el mas cómodo para desarrollar, hay otros muy buenos como CakePHP, CodeIgniter, Symfony, y larga lista más, el objetivo es desarrollar con el Framework que te sea mas útil y cómodo.

4. Identar código y utilizar espacios en blanco para sangría

Al escribir y escribir código a veces no tomamos en cuenta quien lo modificara o reutilizara en un futuro, ya sea para mantenimiento o alguna mejora, es por eso que debemos tener nuestro código legible, utilizar los espacios en blanco como sangría o no el tabulado, ya que no todos los editores de texto tienen el mismo espaciado para el tab.

5. Siempre utilizar el <?php ?>

<? echo ("Utilizando short tags "); ?>
<?= 'Hola' ?> Abreviatura de "<? echo 'Hola' ?>"

Algunos desarrolladores todavía tienen la costumbre de utilizar los short tags de PHP, esto no es recomendable por un estándar y porque no todos los servidores soportan este tipo de tags.

6. Instalar XAMMP / MAMP

Si quieres configurar un entorno local con PHP, MySQL, Apache, y unas herramientas mas para monitorear el servidor esta es una buena elección fácil y rápida de instalar. Les recomiendo utilizar XAMMP.

7. Protege tus scripts de inyecciones SQL

Si no tiene el debido filtro para todos los datos que entran por Internet es muy probable que tu aplicación sea vulnerable a inyecciones SQL, para esto se debe utilizar una función de escape de caracteres en MySQL.

$username = mysql_real_escape_string( $GET['username'] );

8. Utilizar cache de páginas

El cache de paginas PHP es muy buena idea para mejorar el rendimiento y la carga del script hacia el usuario. Esta es una tarea muy sencilla y muy útil.

9. Utilice un modelador de base de datos

Al momento de modelar nuestra base de datos es bueno tener un visualizador de como va la estructura de tal, para los usuarios que trabajan con MySQL pueden trabajar con MySQL WorkBench, es una potente herramienta que nos brinda múltiples tareas de Base de datos.

10. Reducir el numero de consultas hacia la base de datos.

Mediante algunas herramientas como Stace (Linux) y Process Explorer (windows), podemos reducir y mejorar nuestro script PHP ya que nos ayuda a encontrar procesos redundantes y nos explica como poder combinarlos y reducir el numero de consultas a la BD.
Más info: Nettuts+

JSNES: emulador de Nintendo en Javascript

Ben Firshman ha desarrollado un increíble emulador para NES (Nintendo Entertainment System), pero lo particular de este emulador es que esta desarrollado con Javascript, utilizando el elemento canvas de HTML para la presentación grafica en pantalla (ósea que no es posible verlo en IE).

 

En su Web hay 17 juegos para probar este emulador, he probado estos juegos en Chrome , Firefox y Safari, y Chrome es el que mejor desempeño le da al juego ya que posee una optimización para canvas, lo que no es todavía muy bueno en Safari y Firefox.
Este emulador todavía esta en mejora, ya que el sonido no es compatible aun.
original de: Sitepoint
Ver Demo

Detectar IP con PHP

Cuando creamos aplicaciones Web, sea el frontend o backend, tenemos un tiempo para las pruebas, en ese periodo solo algunos usuarios deberían acceder a la Web para poner aprueba el funcionamiento.
Una manera de poder realizar este filtro es dando acceso solo a un conjunto de IP, las cuales serán de los desarrolladores, diseñadores, entre otros.

Para saber cual es la verdadera IP del usuario que esta accediendo a la Web esta función nos la dará:
[php]
function getRealIpAddr()
{
if (!empty($_SERVER[‘HTTP_CLIENT_IP’]))
{
$ip=$_SERVER[‘HTTP_CLIENT_IP’];
}
elseif (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’]))
{
$ip=$_SERVER[‘HTTP_X_FORWARDED_FOR’];
}
else
{
$ip=$_SERVER[‘REMOTE_ADDR’];
}
return $ip;
}
[/php]
Luego debemos crear una función para que filtre la IP que no tienen permiso de ver la Web:
[php]
function restringirIp($ips)
{
$ips = array( "200.11.22.33", "201.12.13.14");
$ipReal = getRealIpAddr();
if (in_array($ipreal,$ips))
{
return true;
}else{
header(‘location: http://google.com’); exit;
}
}
restringirIp(array( "200.11.22.33", "201.12.13.14"));
[/php]

Descargar

Efecto liquido de imagen con Javascript

Andrea Giammarchi ha desarrollado un Javascript que realiza el efecto liquido igual que en ActionScript, este script tan solo pesa 1.2kb y el efecto lo soportan todos los navegadores incluyendo IE6 (aunque el efecto en este navegador sale un poco pixeleado).
El funcionamiento de este script es muy simple, un div se expande con la imagen como fondo mientras una imagen igual en movimiento se extiende en dirección opuesta.

Para realizar este efecto solo basta con descargarnos el script.
Descargar
Ahora podremos configurar los parámetros después de incluir el js descargado mediante este script:

var fx = Liquid({
// ruta de la imagen para el efecto
src:"firefox.png",
// contenedor para el efecto
target: document.getElementById("fx")
// direccion: left, right, bottom, top
direction: "left",
// porcentaje de expancion de la imagen
scale: 2000,
// velocidad
speed: 10,
// optional callback, will be executed at the end
callback:function(){alert("it's Liquid!")},
// optional onload to perform some operation
// after the image has been loaded
onload:function(){/*FX not started yet*/},
// optional reverse property
// performed only over a precedent liquid FX
reverse:true
});
// fx variable will have two methods
// fx.pause()
// to stop the animation
// fx.play()
// to re-enable it after a pause
// these two effects are available only
// during animation time, removed
// before optional callback call
 

Eso es todo, podemos probarlo en todos los navegadores(incluyendo IE6), que les pareció?
Ver demo Descargar

FBShare: Contador Facebook share en tu Web

FBShare es un botón con la misma funcionalidad que el botón de Tweetmeme, nos muestra el número de veces que la página ha sido compartida en Facebook y permite a los visitantes compartir fácilmente nuestra página.

 

Características:

  • Nos muestra el numero de veces que ha sido compartido nuestra página (si es 0 se muestra el logo de Facebook).
  • Opción de poner un botón pequeño o grande.
  • Mediante el API de awe.sm o fbshare.me nos permite dar seguimiento a los enlaces compartidos.
  • Añadir Google Analitycs mediante parámetros.

 


Solamente este código es necesario para poner el botón de Facebook Share en nuestra Web.

<script src="http://widgets.fbshare.me/files/fbshare.js"></script>

Si quieres personalizar el botón puedes poner los siguientes parámetros:

<script>
var fbShare = {
    title: 'Craftyman Blog',
    url: 'http://tednologia.com',
    size: 'small', google_analytics: 'true'
}
</script>
<script src="http://widgets.fbshare.me/files/fbshare.js"></script>

Donde:

  • size : Tamaño del botón (‘large’ , ‘small’).
  • url : Si la URL es diferente de la pagina actual.
  • title : Titulo a compartir en Facebook.
  • google_analytics : true o false, puedes etiquetar tus enlaces con más info).
  • awesm_api_key : puedes utilizarla si tiene una cuenta en awe.sm sino se usaran links de fbshare.me.

 

Ver Demo

25 mejores Footers para nuestra Web

Los footer de las paginas web han evolucionado ya desde hace algun tiempo dejando de ser algo insignificante de diseño a uno de los factores clave para llamar la atención del usuario en su Web. Esto no solo mejorara la apariencia de su Web sino tambien mejorara su usabilidad y funcionalidad pudiendo incorporar actualizaciones de Twitter, enlaces de contacto, paginas recomendadas, estadisticas de lectura, entre otras cosas.
En DesignReviver publicaron una galeria con Footers verdaderamente buenos, aquí muestro los 9 mejores según mi criterio:

Branded07

Bio :: Windows & Doors

Blog Amuki

Edgepoint Church

@bcandullo

Voll

ArribalDesign

ProductiveDreams

SohTanaka

Ver Original

Google Chrome Frame: HTML5 en Internet Explorer

Google Chrome Frame es un plugin especificamente para Internet Explorer, ya que este navegador es uno de los peores, mejor dicho el peor navegador que existe!
Google esta de acuerdo conmigo, por eso es que invento este maravilloso plugin que nos hara olvidar de infinidades de hacks, javascripts para bordes redondeados o png’s transparentes y entre otras miles de cosas que no puede hacer nativamente IE.

Funciona de la siguiente forma:
Primer que nada el usuario debe tener instalado este plugin(esto se pone dificil), lo pueden descargar desde Google Chrome Frame Page.
La instalacion sirve en XP y Vista para los navegadores IE 6, 7, 8.
El segundo paso es colocar un HTML META tag

<meta http-equiv="X-UA-Compatible" content="chrome=1">

Esto activara el Google Chrome Frame para navegar en nuestra web.
Hay una forma de forzar la instalacion de es plugin mediante JavaScript, para realizar esta tecnica pueden colocar este codigo en su web.
Este script se debe colocar en el “head” del html

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"> </script>

Y este otro dentro del “body”

<div id="placeholder"></div>
<script type="text/javascript" >
CFInstall.check({
    node: "placeholder",
    destination: "http://tednologia.com"
});
</script>

Esto nos mostrara una página que nos recomienda bajarnos Google Chrome Frame.
Y para ilustrarnos mejor en este video Alex Russell nos explica como funciona detalladamente Chrome Frame, el video esta en ingles, pero algo se entiende.
[SWF]http://www.youtube.com/watch?v=sjW0Bchdj-w&feature=player_embedded,540,350[/SWF]
Más información: Google Chrome Frame.

Pon Música en tu web con Yahoo! Media Player

Yahoo! Media Player tiene un servicio que convierte tu lista de enlaces en un reproductor integrado y muy completo para reproducir audio.
El diseño no esta nada mal, y solo es necesario que incluya un solo Javascript para que automáticamente realice todo el proceso de agregar el reproductor en su sitio Web.

 

Lista de enlaces

<a href="http://mediaplayer.yahoo.com/example1.mp3">First link</a>
<a href="http://mediaplayer.yahoo.com/example2.mp3">Second link</a>
<a href="http://mediaplayer.yahoo.com/example3.mp3">Third link</a>

Codigo Javascript

<script src="http://mediaplayer.yahoo.com/js" type="text/javascript"></script>

Este código debes ponerlo justo antes de cerrar el “</body>”.
Y de esta manera podrás tener un reproductor de música en tu Web muy pero muy fácilmente.
Ver Ejemplo.

PHP entra en el top 3 de los lenguajes de programación más populares.

Según TIOBE, compañía que fue fundada en el año 2000 que se encarga de recolectar información para armar estadísticas sobre la popularidad de los lenguajes de programación, en este reciente análisis han publicado que PHP ha entrado en el top 3 de los lenguajes de programación más populares, esto es algo que no debe de pasar desapercibido, ya que nos enorgullece y demuestra que PHP sigue creciendo y no se quedara atrás.

A mi parecer desde la salida de PHP5, desarrollo de Frameworks OpenSource, Estandarización de código por parte de Zend, mejor desarrollo con Clases y Objetos, entre otras buenas características nuevas se ha incentivado a muchos programadores a desarrollar en este lenguaje.

20 mejores plantillas de Administradores Web

a clave para las aplicaciones Web muy aparte de las funcionalidades y el rendimiento que también son necesarios, es tener un moderno y usable interfaz de administrador para el usuario que se encargara de usarlo, esto por lo general tiene un costo elevado para la aplicación.
Esta recopilación de 20 Plantillas profesionales de administradores Web vía ThemeForest de seguro será de gran utilidad para nosotros.
De los 20 diseños pongo los 10 mejores a mi parecer, si gustan pueden ver la lista completa en el enlace original.

1. Simple Admin Flexible

2. Complex Liquid Admin

3. Flexy Liquid Admin Skin

4. Titanium

5. Clear CSS Admin Multiskin

6. Broom Cupboard Admin skin

7. Smart Admin High End CMS Theme

8. Elegant – Backend Admin Template

9. Splash Manager

10. Proadmin Template

Lista original: WebAppers