4,27/5
(119 opiniones)
|11497 alumnos|Fecha publicación: 10/09/2004
Lo primero que vamos a hacer es crear una página PHP que nos informe de las características del interprete de PHP que tenemos instalado en nuestro servidor de web. Para ello debemos de crear una página PHP con el contenido siguiente:
<? phpInfo(); ?>
Este debe de ser el contenido de un fichero de nombre "info.php" y que debe de estar en algún lugar accesible por el servidor de web. Quizás lo mejor sea que lo guardes dentro de tú directorio personal web: "/home/tu_login/public_html". Por ejemplo yo lo tengo dentro del directorio "/home/acs/public_html/info.php". Una vez que lo tengas guardado vamos a intentar abrir esta página. Para ello apunta tú navegador a la página: "http://localhost/~tu_login/info.php". En mi caso dicha página es: "http://localhost/~acs/info.php". El resultado que debes de obtener debe de ser algo similar al de la siguiente figura número 1.
Al pedirle esta página al servidor de web, este al ver su extensión
llama al interprete de PHP y le dice que "ejecute" la página y le
entregue los resultados. El interprete abre la página y ejecuta la
llamada a la función "phpInfo()" que, como resultado, nos entrega
toda la información sobre el interprete de PHP en formato HTML.
¿Verdad que es sencillo?.
Vamos con una página algo más complicada. Y vamos con la orientación a objetos. PHP tiene soporte para la programación orientada a objetos, es decir, puedes crear clases para la construcción de objetos, con sus constructores etc. El soporte de objetos que tenemos en PHP no es tan potente como el de C++, pero cada vez es más completo y en esta versión nueva de PHP4 este soporte ha sido mejorado.
Si no sabes programar utilizando objetos en este curso algo vas a aprender pero te recomiendo que sin más dilación consigas algún buen libro o tutorial por Internet. Los objetos cada vez tienen más fuerza a la hora de desarrollar software. De cualquier forma en este curso vamos a utilizar la programación con objetos en un nivel muy básico.
En nuestro siguiente ejemplo vamos a crear un objeto que nos va a permitir acceder a diversas bases de datos. Claro está que lo vamos a dejar sin implementar aún en gran parte, pero todo llegará. Aquí va el código de la página:
<?php
class connection {
var $dbug=1, $con, $type;
function getType() {global $type;return $this->type;}
// Constructor del objeto de conexión
a la base de datos
function
connection($typedb="MySQL",$database_name="template1") {
$this->connection_open ($typedb,$database_name);
}
// Apertura de la conexión con la
base de datos
function connection_open
($typedb,$database_name) {
$this->$type=$typedb;
if ($type=="PostgreSQL")
$this->$con=new postgresql_connection;
elseif ($type=="MySQL")
$this->$con=new mysql_connection;
else
{error_message("Open:Unkown database type");exit;}
$this->$con->connection_open($database_name);
}
}
class mysql_connection {
function mysql_connection() {
echo "<h1>La clase
mysql_connection aún no está implementada.<h1>";
}
function connection_open($database_name) {
echo "<h1>Método
connection_open sin implementar.<h1>";
}
}
$bd = new connection("MySQL","template1");
?>
Si el lector está acostumbrado a la programación con objetos este
código le resultará muy familiar. Tenemos una clase principal
"connection" que se encarga de gestionar las conexiones con la base
de datos. Cuando desde nuestro programa queramos acceder a una base
de datos, nos creamos un objeto connection pasándole como
parámetros al constructor de connection, método que se llama de
forma automática al crear el objeto, el tipo de base de datos al
que queremos acceder y el nombre de la base de datos concreta con
la que queremos trabajar.
Este objeto delega en los objetos específicos de cada base de datos, el del gestor de base de datos MySQL es "mysql_connection", la apertura de una conexión, las peticiones SQL etc. Esta técnica de utilizar objetos que delegan el trabajo final en otros es muy utilizada en lenguajes que carecen de herencia, mecanismo por el que una clase hereda toda la información de estado y métodos de la clase de a que hereda. PHP3 en sus primeras versiones no tenía soporte para herencia por lo que me vi obligado a utilizar esta técnica. En la actualidad PHP ya soporta herencia, aunque no múltiple. Y no, todas las reglas de encapsulación pública y privada no están implementadas. Y hay que tener cuidado con algo que nos puede dar muchos quebraderos de cabeza: al crear un objeto de una clase B que hereda de una clase A, se llama de forma automática al constructor de la clase B pero no al de su padre, la clase A.
Sobre la sintaxis de PHP, es muy similar a la de C o C++. Quizás lo más destacado ocurre a nivel semántico: el tipado es muy poco estricto, algo típico en los lenguajes "script", y cuando creamos una variable en ella podemos meter el tipo de datos que queramos. Esto es muy flexible y cómodo para el desarrollador, aunque los errores que se cometen pueden ser mucho más graves y difíciles de corregir. Las posibilidades del interprete para detectar incompatibilidades entre variables se reducen mucho y puede ocurrir cosas extrañas en determinadas circunstancias si no tenemos cuidado.
Sobre el código de este ejemplo en concreto, tenemos dos clases. La definición de una clase es hace con la palabra clave "class" seguida del nombre de la clase. Entre llaves desarrollamos toda la descripción de la clase, sus variables y métodos. Dentro de un método de la clase (function) se pueden acceder otras partes de la clase por medio del puntero "$this". Por ejemplo, para acceder desde el método "connection_open" a la variable de la clase "$type" lo hacemos con "$this->$type".
Si guardamos esta clase en un fichero, por ejemplo "ejemploDB.php", cuando accedamos a este fichero a través del servidor de web, este llamará de nuevo al interprete de PHP al ver que la extensión del fichero es "php". El interprete de PHP analizará el código y ejecutará la instrucción ":
$bd = new
connection("MySQL","template1");
Con ello se crearía un nuevo objeto de la clase
"connection". Al crearse se llama de forma
automática al constructor "function connection"
que a su vez llama al método "connection_open".
Este método crea un nuevo objeto de la clase
"mysql_connection" ($con) el cual llama de forma
automática a su constructor "function
mysql_connection" el cual envía la cadena HTML
"<h1>La clase mysql_connection aún no está
implementada.<h1>". Desde el método
"connection_open" de "connection" se llama a "connection_open" del
objeto "$con", que es de la clase
mysql_connection, lo que provoca que se imprima otra cadena HTML:
"<h1>Método connection_open sin
implementar.<h1>.". Tras esta última
invocación el programa finaliza y se envía el resultado al servidor
de web, el cual reenvía estos datos al cliente. En la figura 2
podemos ver el resultado de dicha ejecución.
Hay 119 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Mozilla Una de las funciones más utilizadas en internet es la navegación por las miles de páginas con información y recursos. Para poder acceder a toda esta información se buscan... [26/03/04] |
|
4.116 | ||
|
Introducción a las comunicaciones por satélite A partir del lanzamiento del primer satélite ruso SPUTNIK en 1957, los mercados corporativos han visto a la comunicación vía satelital como una gran oportunidad de mejora... [27/09/06] |
|
1.884 | ||
|
Google AdWords. Atraer clientes con marketing online Atraer al cliente tiene, en el marketing online y a google como su más poderosa herramienta, las mejores posibilidades para una empresa. Las empresas, ca... [31/07/09] |
|
535 |
|
|
Publicar en
del.icio.us
digg
meneame