En esta ocasin comentar un poco de la Programacin Orientada a Objetos en
PHP, ir mostrando ejemplos, para que esto sea cien por ciento prctico, la verdad es que estoy realizando un proyecto y con el n de facilitarme las cosas decid desarrollarlo Orientado a Objetos, de esta forma me facilitaba el trabajo y aprenda este estilo de programacin, que si bien es cierto ya tiene algo de tiempo que sali en PHP no me haba adentrado mucho en el. Bueno fuera de tanto rollo, empecemos con un poco de teora de lo que es la Programacin Orientada a Objetos (POO).Si bien es cierto esta tcnica de programacin vino a revolucionar al mundo, ya que te lleva a un nivel de abstraccin distinto, y puedes manejar la programacin de una manera ms sencilla y a su vez reutilizando el cdigo para nuevos proyectos, con unas mnimas modicaciones. La idea de esta tcnica radica en manejar todo en base a la vida real, tomemos como ejemplo el objeto "Automvil", este objeto tiene las propiedades color, velocidad, transmisin, etc., como tambin las funciones (Lase Mtodos) acelerar, frenar, parar, etc. Veamos el ejemplo en cdigo: class auto { var $llantas = 4; var $color = ; var $velocidad = ; public function acelerar($velocidad) { $this->velocidad += $velocidad; return $velocidad; } public function frenar($velocidad) { $this->velocidad -= $velocidad; return $velocidad; } public function parar( ) { $this->velocidad = 0; } } Partiendo de este ejemplo se pueden crear diferentes automviles con algunas propiedades distintas o algunas otras nuevas, por ejemplo: <? $bmw = new auto; $mini = new auto; $bmw->color = "rojo"; $mini->color = "azul"; $bmw->acelerar(60); $mini->acelerar(40); // a esta altura de la carrera el bmw va ganando por que lleva mas velocidad :P ?> Como podremos ver, hemos creado dos objetos del tipo "auto", que son un bmw y un mini, a cada uno les establecimos un color distinto, y les indicamos que aceleren, como se aprecia en el ejemplo el bmw esta acelerando a una velocidad de 60 k/h, por que lo que va adelantado en la carrera contra 40 k/h que lleva el mini. Espero que con este ejemplo quede ms claro el concepto de orientacin a objetos, por el momento no entrar en ms detalle sobre este tipo de programacin ya que existen muchos libros sobre ella y el tema de este tutorial es precisamente de su aplicacin en PHP. Pasando a otro punto, veamos ahora una aplicacin real en php, supongamos que queremos manejar informacin en bases de datos, veamos como ejemplo una clase: class DB { // en esta clase declararemos los metodos de algunas de las funciones de php y mysql var $link; var $ssql; public function connect($server='', $username='', $password='') { $this->link = mysql_connect($server, $username, $password); } public function error() { return mysql_error($this->link); } public function query($query) { return mysql_query($query, $this->link); } public function insert($table,$rows,$values) { $this->ssql = "INSERT INTO $table ($rows) values ($values)"; return mysql_query($this->ssql, $this->link); } public function fetch_array($result, $array_type = MYSQL_BOTH) { return mysql_fetch_array($result, $array_type); } public function fetch_object($result) { return mysql_fetch_object($result); } public function close() { return mysql_close($this->link); } } Por cuestiones de agilizar la lectura, solo eh declarado algunas de las funciones bsicas para el manejo de base de datos, ahora veamos su implementacin.
<? connect('localhost',"usuario','password'); // conectamos con la base de datos... $sql->query('use users'); // correspondiente a la funcion mysql_select_db( ); $rid = $sql->query("SELECT * FROM users"); while ( $row = $sql->fetch_object($rid) ) { echo $row->nombre; echo "<br>"; echo $row->direccin; } ?> Con este ejemplo pienso que les quedar claro la implementacin de POO en PHP, igual si desean usar la clase de ejemplo y agregarle las funciones restantes lo pueden hacer, esto es todo por hoy, espero que les haya servido de algo mi explicacin, pronto escribir algo mas complejo, es fue a manera de introduccin, por lo pronto terminamos, cualquier duda o comentario, o si tengo algn error en alguno de los ejemplos, envenme un mail. Por pyr0 alfrekjv@gmail.com