Está en la página 1de 13

EJEMPLOS DE CODIGO PHP

En este articulo mostraremos una serie de buenas practicas que todo programador principiante debe de saber al momento de empezar a desarrollar sus primeras aplicaciones con PHP 1.- Familiarizarse con el manual oficial de PHP: Si eres nuevo programando en PHP es bueno empezar a familiarizarte con el manual oficial de PHP (www.php.net), el manual de la pagina esta minuciosamente detallado, tiene la documentacin de todas las funciones que posee PHP, es muy probable que los errores que se le presenten a Ud. Ya hayan sido solucionados en el foro oficial de PHP.

2.- Habilite el Error Reporting: Error Reporting en PHP es de mucha ayuda en entornos de desarrollo. Activando esta opcin podr ver todos los errores que esta cometiendo al momento de ejecutar la pgina Web. Ojo se recomienda solo habilitar esta opcin para entornos de desarrollo no para produccin. 3.- Pruebe un IDE (Integrated Development Environments): Los IDES son herramientas de mucha ayuda para cualquier desarrollador. Los IDES proporcionan herramientas como:

Resaltado de la sintaxis Completado de cdigo Errores y Warnings Refactoring

Y muchas caractersticas ms. Hay varios IDES para PHP en este enlace puedes ver el detalle de muchos de ellos. 4.- Prueba un Framework: Puedes aprender mucho sobre PHP solamente experimentando con Frameworks para PHP. Los Frameworks como CakePHP , CodeIgniter o ZendFramework te permiten crear rpidamente aplicaciones Web, sin tener que ser un experto en PHP. 5.- Aprender el enfoque DRY: DRY significa que no debes de repetir, es un valioso concepto de programacin sin importar el lenguaje de programacin, Como su nombre lo indica es garantizar que usted no escriba cdigo redundante. 6.- Tabula tu cdigo con espacios en blanco para que se ms entendible. 7.- Siempre usa <?php ?>: Muchas veces los programadores tratan de tomar atajos al declarar cdigo PHP como los siguientes: Si bien es cierto que estos ahorran unos caracteres, estos mtodos son no oficiales. Y en muchos casos se puede hacer conflicto con el formato de otros tipos de documento como el de los documentos XML 8.- Usa nombres coherentes para tus variables. 9.- Comenta, comenta y mas comenta: Adems de tabular tu cdigo y tenerlo bien ordenado es necesario comentar las lneas de cdigo que creas que sern difciles de entender para otros programadores que puedan revisar tu cdigo mas adelante. 10.- Ponle lmite a tus scripts: Poniendo lmite de tiempo a la ejecucin de tus scripts PHP es algo necesario. Habr momentos en que tus scripts pueden fallar, entonces necesitaras usar la funcin set_time_limit para evitar los bucles infinitos as como tambin los tiempos de conexin a la base de datos (el tiempo predeterminado es de 30 segundos), si el script no termina de ejecutarse en ese tiempo limite la pagina botara un error fatal.

11.-Usa Objetos (metodologa de programacin orientada a objetos): La programacin orientada a objetos se utiliza para representar partes de la aplicacin, no sola es una forma de romper el cdigo en distintas secciones lgicas, tambin reduce la repeticin de cdigo y lo hace mas fcil para modificarlo en el futuro. 12.- Saber la diferencia entre la comilla simple y la comilla doble: La comilla simple se usa en los casos en que queremos asignar una cadena sin necesidad de que el intrprete de PHP busque una variable dentro de las comillas, a diferencia de la doble comilla que si realiza la bsqueda de variables dentro de la comilla. 13.- No coloques un archivo de info dentro de tu web root: Esta funcin que muchas veces la colocamos en un archivo dentro del web root puede ser de mucha ayuda, ya que nos da informacin de todo el entorno de nuestro servidor. Pero esto es realmente una practica insegura porque este archivo puede ser accedido por usuarios mal intencionados y estudiar el entorno de tu servidor. 14.- Nunca confiar en los usuarios: Si tu aplicacin recibe informacin del usuario tu siempre debes de asumir que este siempre intentara ingresar informacin con cdigo malicioso. Una buena forma de mantener su sitio libre de los hackers es siempre inicializar las variables para proteger su sitio de los ataques XSS. 15.- Almacenar los paswords encriptadas: Muchos programadores no toman en cuenta la encriptacin de passwords en la base de datos. Considere la posibilidad de usar la funcin md5() para encriptar los datos y almacenarlos encriptados en la base de datos 16.- Protege tu script de un ataque SQL Injection: Si tu no usas el escape de caracteres usados en las cadenas SQL, tu cdigo es vulnerable a un ataque SQL Injection. Puedes usar mysql_real_escape_string mediante el uso de declaracin preparadas. 17.- Usa cache de sistemas: Si usted desea crear una aplicacin mas robusta, debera de usar un sistema de almacenamiento de cache que pueden ser los siguientes: Memcached APC XCache Zend Cache eAccelerator

Optimizando el tiempo de carga de sitios web en PHP


Mircoles 01 de Julio de 2009 22:27 Jos Luis Yapur Vallejos Artculos - PHP y otros lenguajes

Valoracin de los usuarios: PobreEl mejor

/3

Aunque gran parte de nuestras aplicaciones corre muy bien, hay otras que debido a la masa de contenido grfico y usuarios demora un tiempo considerable que escapa de las expectativas de los usuarios y sobre todo que nos limitan a reducir funcionalidades que podran resultar en la disminucin de la usabilidad de nuestros sitios web. Gracias a Dios, en el PHPconference que se realiz en Barcelona hace algunos aos se logr rescatar algo fundamental para optimizar el tiempo de carga y trata de algo tan bsico como complejo: 1 - Las imagenes, flash y css debern ir en: subdominio.midominio.com 2 - La aplicacin ir en: app.midominio.com 3 - Ajax, javascript, otros: js.midominio.com

Con esto logramos paralelizar las cargas y con ello al no tener predecesores las tareas del servidor se puede cargar en menor tiempo reduciendo el tiempo de carga de contenido no HTML a 60%, lo que sera un ahorro del tiempo de carga total en 20%. Segn los estudios se demostr que el 20% del tiempo de carga es el que tarda PHP y 60% es el que tarda todo lo dems. Saque usted sus propias conclusiones.

Funciones Magicas PHP


Mircoles 27 de Mayo de 2009 11:26 administrador Artculos - PHP y otros lenguajes

Valoracin de los usuarios: PobreEl mejor

/7

Entre las nuevas caractersticas introducidas en PHP 5 se encuentran las llamadas funciones mgicas (magic functions) que son una parte importante de todo el proceso de mejora que se realizo para la versin. Tambin han sido un poco dejados de lado por algunos programadores, ya sea por pereza o ignorancia. A pesar de su curioso nombre, las funciones mgicas permiten a los usuarios realizar tareas difciles sin esfuerzo. Ellos pueden ser poderosos ahorradores de tiempo para la carga automtica de recursos, o la sobrecarga de mtodos y propiedades de las clases, por citar slo dos ejemplos ilustrativos. Naturalmente, para los desarrolladores experimentados, las funciones mgicas son una antigua criatura que dominan desde hace mucho tiempo, pero para los principiantes, aprender a utilizarlos puede ser un reto de experiencia - especialmente cuando son utilizados durante el desarrollo aplicaciones orientada a objetos. Por lo tanto, si usted es un programador de PHP que desea aprender a dominar los conceptos bsicos que rodean a la aplicacin y el uso de funciones mgicas, a continuacin, mostraremos un artculo que le mostrar cmo trabajar con ellas. ver artculo Referencias: http://www.devshed.com http://www.phpdeveloper.org
Magic Functions in PHP 5 - Get and set functions: a quick overview (Page 2 of 4 )

As I expressed in the introduction, the first two magic functions that I plan to cover are the popular "__set()" and "__get()" methods. They can be really useful for overloading properties of a class. But, at this point, you may be wondering how to use these functions. Well, as with any other magic methods, the "__set()" and "__get()" functions have no concrete implementation and must be given a explicit definition.

In the case of the "__set()" function, it'll be called automatically by the PHP engine each time a script attempts to assign a value to a property of a class that hasn't been explicitly declared. On the other hand, the "__get()" function will be invoked transparently when a script tries to retrieve the value of an undeclared class property as well. This setting and retrieval process of values of properties within a class that have no a explicit declaration comprises what's known as "property overloading." It must be very carefully implemented to prevent its misuse and abuse. Does this sound a bit confusing to you? Fear not; in a moment, I'm going to back up all of these concepts with a couple of examples that will illustrate how to use the team of "__set()" and "__get()" functions. Say that there's a basic class called "User," which represents, through software, a real-world user. The definition of this sample class would be something like this:

class User { private $fname = 'Alejandro'; private $lname = 'Gervasio'; private $email = 'alejandro@mydomain.com';

// constructor (not implemented) public function __construct(){}

// set user's first name public function setFirstName($fname) { $this->fname = $fname; }

// get user's first name public function getFirstName() { return $this->fname; } // set user's last name public function setLastName($lname) { $this->lname = $lname; }

// get user's last name public function getLastName() { return $this->lname; } // set user's email address public function setEmail($email) { $this->email = $email; }

// get user's email address public function getEmail() { return $this->email; } }


As you can see, the structure of the above "User" class is pretty easy to follow. It's only composed of a few setters and getters, used for setting and retrieving the values assigned to its three declared properties, that is $fname, $lname and $email respectively. So far, nothing strange is happening here, right? What follows is a simple demonstration of how to use this class:

$user = new User(); $user->setFirstName('John'); $user->setLastName('Doe'); $user->setEmail('john@domain.com');

// display user data echo 'First Name: ' . $user->getFirstName() . ' Last Name: ' . $user>getLastName() . ' Email: ' . $user->getEmail();

/*

displays the following First Name: John Last Name: Doe Email: john@domain.com */
Well, that was extremely boring, wasn't it? All that the previous script does is create an instance of the "User" class, assign some values to the properties of the class via the pertinent setters, and finally display the values in question using the pertinent getters. However, this tame and well-known scenario is about to become more exciting. It's possible to redefine the "User" class by using the "__set()" and "__get()" magic functions to make the class's signature much shorter. At the same time, they'll allow us to assign undeclared properties dynamically. The full details of this process will be discussed in the section to come. Click on the link below and keep reading to learn more. Magic Functions in PHP 5 - Get and set functions: a quick overview (Page 2 of 4 )

As I expressed in the introduction, the first two magic functions that I plan to cover are the popular "__set()" and "__get()" methods. They can be really useful for overloading properties of a class. But, at this point, you may be wondering how to use these functions. Well, as with any other magic methods, the "__set()" and "__get()" functions have no concrete implementation and must be given a explicit definition. In the case of the "__set()" function, it'll be called automatically by the PHP engine each time a script attempts to assign a value to a property of a class that hasn't been explicitly declared. On the other hand, the "__get()" function will be invoked transparently when a script tries to retrieve the value of an undeclared class property as well. This setting and retrieval process of values of properties within a class that have no a explicit declaration comprises what's known as "property overloading." It must be very carefully implemented to prevent its misuse and abuse. Does this sound a bit confusing to you? Fear not; in a moment, I'm going to back up all of these concepts with a couple of examples that will illustrate how to use the team of "__set()" and "__get()" functions. Say that there's a basic class called "User," which represents, through software, a real-world user. The definition of this sample class would be something like this:

class User { private $fname = 'Alejandro'; private $lname = 'Gervasio'; private $email = 'alejandro@mydomain.com';

// constructor (not implemented) public function __construct(){}

// set user's first name public function setFirstName($fname) { $this->fname = $fname;

// get user's first name public function getFirstName() { return $this->fname; } // set user's last name public function setLastName($lname) { $this->lname = $lname; }

// get user's last name public function getLastName() { return $this->lname; } // set user's email address public function setEmail($email) { $this->email = $email; }

// get user's email address public function getEmail() { return $this->email; } }

As you can see, the structure of the above "User" class is pretty easy to follow. It's only composed of a few setters and getters, used for setting and retrieving the values assigned to its three declared properties, that is $fname, $lname and $email respectively. So far, nothing strange is happening here, right? What follows is a simple demonstration of how to use this class:

$user = new User(); $user->setFirstName('John'); $user->setLastName('Doe'); $user->setEmail('john@domain.com');

// display user data echo 'First Name: ' . $user->getFirstName() . ' Last Name: ' . $user>getLastName() . ' Email: ' . $user->getEmail();

/* displays the following First Name: John Last Name: Doe Email: john@domain.com */
Well, that was extremely boring, wasn't it? All that the previous script does is create an instance of the "User" class, assign some values to the properties of the class via the pertinent setters, and finally display the values in question using the pertinent getters. However, this tame and well-known scenario is about to become more exciting. It's possible to redefine the "User" class by using the "__set()" and "__get()" magic functions to make the class's signature much shorter. At the same time, they'll allow us to assign undeclared properties dynamically. The full details of this process will be discussed in the section to come. Click on the link below and keep reading to learn more.

10 Mejores Practicas para PHP


29/09/2009 | 4 Delicious | share3 | 3 Comentarios

Mejores practicas llamamos generalmente a las rutinas o tips que tienen mejor desempeo en el entorno de trabajo, optimizar los recursos de programacin, 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


view plaincopy to clipboardprint

error_reporting(E_ALL); ini_set('display_errors',1);
Al activar el informe de errores en PHP encontraras muchas alertas que no podras haber intuido sin esta funcin, 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 pequeo cdigo, claro que solo es para la etapa de prueba.

1. 2.

e ( E r _ A i ' ( , 1 d n ) i ; _ s e

2. Utilizar algn IDE para programar

IDE (Integrated Development Environments) es un programa para mejorar la calidad de nuestro desarrollo, permitindonos tener facilidades para alguna funcin comn 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 estandarizacin para PHP, el que cumple con lo dicho es ZendFramework de la corporacin Zend, porque es el oficial para PHP y quien dicta las normas y estndares de trabajo, al igual que Sun es para Java, lo mismo es Zend para PHP, pero no por eso debe de ser el mas cmodo para desarrollar, hay otros muy buenos como CakePHP, CodeIgniter, Symfony, y larga lista ms, el objetivo es desarrollar con el Framework que te sea mas til y cmodo.

4. Identar cdigo y utilizar espacios en blanco para sangra

Al escribir y escribir cdigo 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 cdigo legible, utilizar los espacios en blanco como sangra o no el tabulado, ya que no todos los editores de texto tienen el mismo espaciado para el tab.

5. Siempre utilizar el <?php ?>


view plaincopy to clipboardprint

<? echo ("Utilizando short tags "); ?> <?= 'Hola' ?> Abreviatura de "<? echo 'Hola' ?>"
Algunos desarrolladores todava tienen la costumbre de utilizar los short tags de PHP, esto no es recomendable por un estndar y porque no todos los servidores soportan este tipo de tags.

1. 2.

e <? ( s t ? ); " c a > U h h g o o s r < A ?> " de e ' ? < c > b H ? h " o o l a ' ?

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 eleccin fcil y rpida 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 aplicacin sea vulnerable a inyecciones SQL, para esto se debe utilizar una funcin de escape de caracteres en MySQL.
view plaincopy to clipboardprint

1.

m = $ ); ] ' [ u G y E s T ql p a c s e _ l r

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

8. Utilizar cache de pginas

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 mltiples 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. Ms info: Nettuts+

También podría gustarte