6 cosas que probablemente no conozcas sobre PHP

Via tufuncion.com

Hace no mucho publicamos este post 5 cosas que desconocía de php, esta podríamos decir es la segunda entrega con nuevas cosas que no conocía de PHP.

ip2long() y long2ip()

Estas dos funciones ip2long() y long2ip() sirven para almacenar las direcciones IP cómo enteros en vez de cómo cadenas en la base de datos, esto reducirá los recursos de almacenamiento conseumidos de los 15 bytes de un chasr(15) a los 4 bytes de un entero.

Validadción de direcciones de email

La validación parcial de direcciones IP es fácil gracias a la función checkdnsrr().
Esta función nos asegura que el dominio devuelto existe, por ejemplo muy útil en caso cómo este:

‘usuario@gmail.com’ Válida
‘usuario@wwwgmail.com’ No Válida

Cómo no hacer trabajo innecesario

Si no te gustaría estar trabajando en una determinada función durante un tiempo para luego darte cuenta que has reinventado la rueda… chequea PEAR antes de escribir las siguientes líneas de código.

PEAR – Un framework y sistema de distribución de utilidades Php. PEAR nos ofrece complementos php agrupándolos en “Packages”.

Formatea tu código

Una función que formatea una cadena pasada, especialmente pensada para código fuente, highlight_file().

Muy útil en caso de que queramos compartir dudas sobre nuestro código con algún amigo ya sea por el messenger, IRC o cualquier servicio parecido.

No muestres los errores

Evita mostrar los errores de mensajes con la función error_reporting(0). Útil en caso de tener hospedaje compratido deberás incluirlo en la primera línea de cada uno de tus scripts, esto evitará que información de conexiones PHP y usuarios MySQL sea mostrada.

Opcodes

PHP usa una mezcla entre interpretación y compilacion para intentar ofrecer a los programadores lo mejor entre rendimiento y flexibilidad.

PHP compila para tu codigo una serie de instrucciones (llamadas opcodes) siempre que estas son accedidas. Estas instrucciones son entonces ejecutadas una por una hasta que el script termina. Esto es diferente a la manera convencional de compilacion de lenguajes como C++ donde el código es compilado a código ejecutable que es despues ejecutado. Php es recompilado cada vez que se solicita un script.

Vía: 10 things you (probably) didn’t know about PHP

5 cosas que desconocía de php

Via tufuncion.com

Estos son algunos de mis curiosidades favoritas sobre php:

El tag ?> es opcional

Cada uno de los archivos php que has programado probablemente tengan este formato:


?>

¿Pero sabías que la etiqueta ?> es opcional? Elimínala y todo seguirá funcionando, no estoy seguro de que funcione con todas las versiones pero si funciona en PHP 5.1.
No hay ningún buen argumento que justifique su eliminación de nuestro código, pero es bastante curioso.

Enmascara otros lenguajes dentro de PHP

Java, Perl, Python y .NET son algunos ejemplos de lenguajes que puedes utilizar dentro de código PHP. El soporte para otros lenguajes puedes encontrar en PECL.

Hacer a los objetos parecerse a arrays

Puedes usar la libreria estándar de php SPL para convertir objetos en array de la siguiente manera:

$object = new MyObject();
$object[‘name’] = ‘Hello World’;

object = new MyObject();

foreach ($object as $k=>$v) {
echo “$k = $v\n”;
}

Require es más rápido que require_once

En versiones anteriores a PHO 5.2 usando require en vez de require_once puedes conseguir un incremento de velocidad especialmente en aplicaciones pesadas. La razón es que require_once hace un llamada extra al sistema para validar que tu no has incluido este archivo previamente. Require incluye un archivo sin comprobación alguna.

Manejar tus errores es fácil

El resumen de errores programado por PHP ciertament no es de lo mejor. EL famoso “headers already sent” o “call to undefined function” que te aparece en negrita y con un número de línea que puede o no puede ser correctos.

Pero puedes programar tu propio manejador de errores.s:

function mis_errores ($numero, $mensaje, $archivo, $linea) {
// Añade el CSS para tu codigo
echo ‘

El siguiente error ocurrio en linea ‘ . $linea . ‘ del archivo ‘ . $archivo . ‘: ‘ . $mensaje . ‘
‘;
echo ‘

Las actuales variables son:

‘ . print_r($GLOBALS, 1) . ‘

‘;
}

Entonces usaras tu propio manejador por defecto y no el de PHP diciendoselo a PHP en la funcion set_error_handler().

set_error_handler(‘mis_errores’);

Entonces ya la mayoría de los errores seran manejados por tu función (pero hay algunas excepciones). Con el anterior ejemplo los errores son imprimidos con formato html.

Deberia incluso plantearte la posibilidad de enviar estos errores via mail con la funcion mailto y de esta manera tendras un control en tiempo real de tu sitio, o incluso manejar errores en la conexión a una base de datos.

try {
if (!@mysql_connect(‘localhost’, ‘username’, ‘password’))
throw new Exception (mysql_error());
} catch (Exception $e) {
echo ‘Imposible conectar a la base de datos: ‘ . $e->getMessage();
}

Por supuesto estos son ejemplos muy básicos; hay muchas más funcionalidades que le puedes añadir.

Mejores prácticas en PHP

Via BuayaCorp

 

PHP best practices, the dos and don’ts, es una presentación muy interesante acerca de las cosas que se deben tener en cuenta al desarrollar aplicaciones Web con PHP.

La presentación está dividida en tres partes:

Nota: para ver la presentación necesitan un navegador que no sea IE, caso contrario verán el siguiente mensaje:

IE is not supported – please use Firefox, Safari, Konqueror or just about anything else.

Optimiza tu blog para los buscadores

Via TuFuncion.com, uno de los sitios que la lleva hoy por hoy !!

 

Estructura de la URL

La estructura de tu URL debería ser rellenada con palabras, sin llegar a ser demasiada extensa.
A menudo se ven páginas en los que las fechas de publicación son incluidas en la URL pero yo prefiero algo como esto:

tusitio.com/titulodepost

Esto mantiene una URL corta descriptiva y sencilla de recordar.

Título de las páginas

Los motores de búsqueda usa los títulos de las páginas en sus resultados de búsqueda. La mayoría de los blogs mantienen una estructura parecida a esta:

nombredelblog.com >> Título del Post

Mi recomendación sería colocar unicamente el título del post. Aquí os dejo el código para los que utilizais Movable Type y WordPress.

Movable Type

<title><$MTEntryTitle$></title>

WordPress

<title><?php if (is_home () ) { bloginfo(‘name’); } elseif ( is_category() ) { single_cat_title(); echo ” – “; bloginfo(‘name’); } elseif (is_single() || is_page() ) { single_post_title(); } elseif (is_search() ) { bloginfo(‘name’); echo ” search results: “; echo wp_specialchars($s); } else { wp_title(”,true); } ?> </title>

Meta Description

Los motores de búsqueda a menudo ven contenido cómo duplicado pero con un Meta Description podenmos solventar este problema.

Movable Type

<meta name=”description” content=”<$MTEntryBody words=”25″$> …” />

WordPress

Si usas WordPress descarga el plugin head meta description. Fija entre 15 y 25 palabras.

Cabeceras

Las cabeceras son realmente importante para la indexación de tu contenido, tienes numerosas opciones para resaltar contenido dentro de tu post, pero lo mas eficaz es utilizar las etiquetas H1, H2, o H3.

Imágenes y enlaces de texto

Las imagenes y enlaces de texto deberían de poseer un comentario que se muestre al pasar el ratón por encima del enlace.
Esto se hace con las etiquetas “alt” (imágenes) y “tittle” (texto) aseguráte de que estos comentarios contengan palabras descriptivas.
Alt

alt=”descripción”

Title

title=”descripción”

Sitemap

La mayoría de blogs no posee sitemap y lo necesitan, puesto que es un elemento muy importante de cara a la optimización para los motores de búsquedas.Puedes utilizar el servicio de Google “webmaster tools” o crear tu propio sitemap.
Te ayudará a indexar el contenido de tu blog de manera eficiente.

Redirección 301

Cuando otras páginas enlazan tu blog lo harán: http://tufuncion.com o http://www.tufuncion.com. Habitualmente los motores de búsqueda verán dos sitios diferentes, sólo habría que echar un vistazo a Google en las que el numero de enlaces de una y otra estrcutura son totalmente distintos.
Si prefieres unificar estos datos solo tendras que configurar el .htaccess con este trozo de código:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_Host} ^TUSITIO.com [NC]
RewriteRule ^(.*)$ http://www.TUSITIO.com/$1 [L,R=301]

Asegurate de modificar los parametros de las líneas 3 y 4 por los del nombre de tu dominio.

Linkar

Error si piensas que no te aporta nada linkar a otros blogs, es una característica común a los blogs importantes… estos linkan y tu debes linkar de cara a los motores de búsqueda optimizarás la indexacion de tu sitio.
La forma de hacerlo más común es incluyendo un blogroll.

Hacer ping

Si deseas incrementar tu tráfico prueba a hacer ping a páginas como technorati, Icerocket o blogalaxia.
Si utilizas FeedBurner puedes hacer ping a traves de ellos.Icerocket.

RIDE-ME un IDE para Ruby on Rails en Windows

Vía Webmasterlibre.com
RIDE-ME logo RIDE-ME es un entorno de desarrollo de Rails para Windows. Enfocado principalmente a los desarrolladores en proceso de migración de una plataforma de programación de Microsoft.

Captura de pantalla de RIDE-ME

RIDE-ME es software libre publicado bajo una licencia MIT

RIDE-ME: http://www.projectrideme.com/

Krunch

Krunch

Bueno, y que es ?

Supongamos que por esas extrañas casualidades de la vida, estas sentado en un PC que no tiene ni winzip, ni winrar (el tipico PC del vecino que te jode xq su tarro no funciona y no sabe nada de PCs) y no tienes espacio para instalar mas programas (Disco Duro del año del mono) y DEBES zipear una carpeta.

Como hago eso Dios Mio !!!!

Facil, con Krunch.

Subes los archivos al servidor (mediante un form tipicamente AJAX) le das un nombre al archivo zip (o rar o gzip) y luego el te avisa que lo guardo.

Algo mas ?

Claro, te permite mandarlo x correo, incluso como archivo adjunto.

Muy buen sitio, buena grafica y sobre todo, super AJAX.

Chekeenlo

Ajaxload – Ajax loading gif generator

Cuando quieras darle un estilo “Web 2.0” a tus sitios Ajaxload – Ajax loading gif generator
te ayudará a generar esos gifs que te muestran el proceso de carga de tu pagina web.

Bastante útil y te da la opción de cambiar el color del gif, el tipo de simbolo y el background, obviamente para ser descargado luego a tu PC.

Espero ocupar pronto este tipo de “imagenes 2.0”, a todo esto publique un interesante articulo en AplicacionesWeb, sobre los puntos a tener en cuenta cuando uses Ajax.

Será hasta mi proximo posteo, no se cuando será xq estoy terminando muchos proyectos 🙂