Tips para principiantes en PHP 2da pte
Continúo (leer la primera parte) enlistando algunos tips para quienes comienzan en PHP.
Deshabilita register_globals
Ese setting es demasiado tentador inicialmente, pues hace a PHP más fácil de usar pero esa “fácilidad” abre una puerta a la inseguridad terrible. No es de sorprenderse que de un tiempo para aca PHP venga por default con ese setting deshabilitado por default. Cambia este valor en el php.ini.
Aprende sobre otra base de datos
MySQL es muy buena y sencilla de usar. Pero no te encierras a una opción. MySQL funciona de una forma particular en ciertas aspectos. Cuando quieres hacer que tu programa funcione con otra base de datos toparás con pared. Si no quieres aprender otra BD al menos nombra todas tus tablas y tus columnas en minúsculas.
Aprende a convivir
El programa que diseñes tiene que poder funcionar en una base de datos compartida, caso que sucede con MUCHOS hosts. Agrega un prefijo a todas tus tablas o mejor aun, has que el nombre de las tablas sea configurable.
En la misma tesitura, no llames a tus clases y funciones nombres genéricos. Esto evitará que exista un conflicto en el caso de que uses otra librería o clase que use los mismos nombres.
No reinventes la rueda
No se necesitan héroes. Resuelve el problema particular al que te enfrentas. No escuches el canto de las sirenas y quieras resolver por enésima vez los mismos problemas que el mundo ya ha resuelto. He visto decenas de veces quienes quieren clear su clase para templates, para acceso a bases de datos y luego otra mas para paginación! Utilza alguna librería o framework. Lleva tiempo aprenderlos, pero lo que debes hacer es minimizar el riesgo de error y no arriesgarte a mantener más código y potencialmente mas errores. Usar PEAR es un buen inicio.
Otro Tip:
“Aprede a distinguir”
Aprender a distinguir lo que es cosa de PHP y lo que es cosa de otros lenguajes y otros.
PHP tiene la virtud de interactuar con diretentes lenguajes como es el caso de que cuando PHP trabaja para entorno web estamos interactuando con HTML/javscript/etc (lenguajes del lado del cliente). En otras ocasiones lo hacemos con “SQL” en el acceso a nuestras Base de datos, si usamos expresiones regulares más de lo mismo, si interactuamos con sockets .. idem.
En fin, saber definir hasta donde es “PHP” y donde es otra cosa nos ayudará a enfocar nuestro problema de mejor manera y si corresponde a saber por donde buscar información. (ejemplo; no buscar en un manual de PHP como obtener X registros de una Base de datos por cierta condición .. esto sería taréa del lenguaje SQL que use el manejador de Base de datos que se use).
Un saludo,
Sobre .. “No reinventar la rueda”.
Estoy deacuerdo que no es necesario reinventar la rueda. Pero la diferencia está a que “nivel”.
Personalmente uso várias classes para diferentes tareas, por ejemplo capas de abstracción de BD, de manejo de templates y de gestión de envio de e-mails como “base” y de ahí puede ser que use alguna más.
El caso es que .. si bien yo no he reinventado la rueda para esos casos, sé que más de una classe que uso y a la hora que empecé a usarla ya alguien había reinventado esa rueda, por ende podría haber usado la “rueda” que primero se inventó y descartar esta última reinvención.
En resumen, pretendo llegar a que si bien se suele reinventar la rueda constantente .. en la variedad está el gusto. Pequeños detalles entre una “rueda” y otra hacen la diferncia. Unas por aportar más funcionalidades que tus proyectos no necesitan .. otras por lo contrario .. otras por la facilidad de uso o implementación de sus métodos (incluso el idioma de la documentación y/o hasta el nombre de variables/métodos codigo en general).
En fin, muchos de nosotros nos ponemos a reinventar la rueda cuando realmente de los que hemos visto a la fecha no nos convence (tal vez aburridos de buscar o incluso por no saber donde buscar) como lo hacen y .. tal vez en algún caso nos salga algo mejor (siempre desde nuestro própio punto de vista y criterio… criterio que puede ser compartido o no por otros usuarios).
Lo mismo es aplicable a tutoriales. Hoy por hoy sobre PHP se ven multitud de tutoriales que tratan más de lo mismo. Algunos hasta “herrados” o demasiado antigüos (y PHP ya vemos que avanza día a día y cambia constantemente). Si todos leyesemos el manual oficial de PHP y aportaramos en el .. seguro que no habria multitudo de “web’s” que no hacen más que repetir lo que indican los manuales oficiales. Eso sí .. vuelvo a mi “reflexión” .. en los pequeños detalles está la diferencia, y .. puede ser que X fuente explique de tal forma lo mismo que Y fuente, pero si Y es más claro que X ya estamos “reinventando la rueda” una vez más en su transfondo por explicar lo mismo que ya está explicado en mil sistios y en la fuente oficial “php.net”.
Un saludo,
Cluster, gracias por tu aportación. Tienes razon en lo que comentas. Yo también reinvento constantemente
Mi argumento va enfocado principalmente a los nuevos en programación y/o php. Tu habrás visto en los foros a decenas de principiantes que se atascan en problemas sencillos y ya resueltos. Los ves sufriendo dias por problemas que no deberían estar viviendo y ya muy tarde para corregir. Si se hubieran avocado a su problema original apoyados por librerías/clases/etc probablemente ya hubieran terminado su proyecto.
buenos consejos… gracias!
Los consejos están muy bien, aunque algunos de ellos no son únicamente aplicables a PHP, también a cualquier lenguaje de programación.