Bienvenidos

Bienvenidos

jueves, 9 de octubre de 2014

Conceptos de Programación Orientada a Objetos

       La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

Ejercicios con orientación a objetos PHP, AÑADIENDO PROPIEDADES

Añadiendo propiedades

Una propiedad no es más que una variable, y la usaremos para guardar información sobre el objeto en sí. Veamos cómo añadir nuestras propiedades.
1
2
3
4
class Usuario {
    public $usuario;
    public $password;
}
En seguida veremos qué es public. Por ahora quédate con que la propiedad es pública lo cual quiere decir que cualquiera puede acceder a ella. Después de public, tenemos el nombre de la propiedad.
Veamos cómo escribir y leer estas propiedades.
1
2
3
4
5
6
7
8
9
10
class Usuario {    
    public $usuario;   
    public $password;
}
$juan = new Usuario;
$juan->usuario = 'juan';
$juan->password = '01juan01';
echo $juan->usuario; // juan
Si te fijas, estamos usando $juan->[nombre_propiedad]. Quizá te estés preguntando… ¿por qué no puedo hacer algo así? Usuario->usuario. La respuesta es, que puede haber un número indeterminado de usuarios y, el valor 01juan01 está dentro del objeto, no de la clase.

Ejercicios con orientación a objetos PHP, AÑADIENDO METODOS

Añadiendo métodos

Añadir métodos es tan sencillo como añadir propiedades. Vamos a añadir un método para saludar.

1
2
3
4
5
6
7
8
class Usuario {
    public $usuario;
    public $password;
    public function saludar() {
        echo '¡Hola '.$this->usuario.'!';
    }
}
Lo primero que te estarás preguntando es… ¿qué es $this? $this es la forma que tienen los objetos de referirse a sí mismos. Por ende, para poder acceder al valor de $usuario desde el propio objeto, tendremos que valernos de $this.
Llamar al método no tiene mucho misterio:

1
2
3
$juan = new Usuario;
$juan->usuario= 'juan';
$juan->saludar(); // ¡Hola juan!
Ahora, si usamos varios objetos, podemos almacenar valores distintos en ellos y llamar a sus métodos:
1
2
3
4
5
6
7
8
9
10
11
12
$usuarios = null;
$usuarios[] = new Usuario;
$usuarios[] = new Usuario;
$usuarios[0]->usuario = 'juan';
$usuarios[1]->usuario = 'manolo';
foreach ($usuarios as $usuario) {
    $usuario->saludar();
}
// '¡Hola juan!'
// '¡Hola manolo!'

Ejercicios con orientación a objetos PHP, de CONSTRUCTORES Y DESTRUCTORES

Constructores y destructores

Cuando una clase se crea o se destruye, se llama a unos métodos mágicos como ya hemos adelantado. Si queremos realizar alguna acción en cualquiera de los dos eventos, tendremos que definir esos métodos e implementar su funcionalidad.
El método __construct() se llama cuando creamos una clase y suele ser un buen punto para rellenar información por defecto, o formar un objeto con algo que venga de la base de datos, etc.
1
2
3
4
5
6
7
8
9
10
11
class Usuario {
    public $usuario;
    public $password;
    public function __construct() {
        $this->password = '1234'; //Seguridad al poder!
    }
}
$usuario = new Usuario;
echo $usuario->password; // 1234
Cabe destacar que podemos pasar datos al constructor:
1
2
3
4
5
6
7
8
9
10
11
12
class Usuario {
    public $usuario;
    public $password;
    public function __construct($usuario) {
        $this->password = '1234';
        $this->usuario = $usuario;
    }
}
$usuario = new Usuario('juan');
echo $usuario->usuario; // juan
Por otro lado, el destructor se llama cuando la clase es destruida. Esto ocurre automáticamente cuando PHP termina de ejecutarse, libera todos los recursos que tenga asociados y va llamando al método __destruct() de todas las clases en caso de que lo tengan. También podemos forzarlo usando la función unset sobre el objeto. En el destructor se suelen implementar cierres de conexiones a bases de datos, liberación de memoria, etc.
Veámoslo en un breve ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Usuario {
    public $usuario;
    public $password;  
    public function __construct($usuario) {
        $this->password = '1234';
        $this->usuario = $usuario;
    }
    public function __destruct() {
        echo 'Muero...';
    }
}
$usuario = new Usuario('juan');
unset($usuario); // 'Muero...';

Ejercicios con orientación a objetos PHP , de HERENCIA DE CLASES

Herencia de clases

Aquí es donde veremos uno de los aspectos más potentes de la orientación a objetos. Una clase puede heredar propiedades y métodos de otra clase. Esto es útil cuando quieres añadir funcionalidad a una clase ya existente.
Siguiendo nuestro ejemplo, nuestra clase padre es Usuario y ahora, vamos a crear una clase hija que sea Administrador.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Usuario {
    public $usuario;
    public $password;  
    public function saludar() {
        echo 'Hola '.$this->usuario;
    }
}
class Administrador extends Usuario {
    public function banear($usuario) {
        echo $usuario->usuario." ha sido baneado";
    }
}
$usuario = new Usuario;
$usuario->usuario = 'juan';
$admin = new Administrador;
$admin->usuario = 'Súper López';
$admin->saludar(); // Hola Súper López
$admin->banear($usuario); // juan ha sido baneado
Usando la palabra clave extends, la clase Administrador ha heredado las propiedades usuario y password y el método saludar y hemos añadido un nuevo método banear a esta clase extendiendo las funcionalidades básicas de un usuario. Quizá el ejemplo sea muy absurdo pero tened en cuenta que podemos querer implementar funciones más complejas como login, logout, etc. y de esta forma nos acabamos ahorrando muchísimo código.

Ejercicios con orientación a objetos PHP, SOBREESCRIBIENDO METODOS

Sobreescribiendo métodos

Sobreescribir un método es tan sencillo como… ¡volverlo a definir! En la clase hija, volvemos a definir el método saludar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Usuario {
    public $usuario;
    public $password;  
    public function saludar() {
        echo 'Hola '.$this->usuario;
    }
}
class Administrador extends Usuario {
    public function saludar() {
        echo 'Hola admin>> '.$this->usuario;
    }
    public function banear($usuario) {
        echo $usuario->usuario." ha sido baneado";
    }
}
$admin = new Administrador;
$admin->usuario = 'Súper López';
$admin->saludar(); // Hola admin>> Súper López
Si además queremos mantener la funcionalidad original, podemos hacerlo llamando a la función del padre:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Usuario {
    public $usuario;
    public $password;  
    public function saludar() {
        echo 'Hola '.$this->usuario;
    }
}
class Administrador extends Usuario {
    public function saludar() {    
        echo '¡';
        parent::saludar();
        echo '!';
    }
    public function banear($usuario) {
        echo $usuario->usuario." ha sido baneado";
    }
}
$admin = new Administrador;
$admin->usuario = 'Súper López';
$admin->saludar(); // ¡Hola Súper López!
Como verás, hemos mezclado funcionalidades de ambos métodos.

Ejercicios con orientación a objetos PHP, de VISIBILIDAD DE METODOS Y PROPIEDADES

Visibilidad de métodos y propiedades

Hasta ahora tanto las propiedades como los métodos que hemos vistos, eran todos public. Ahora vamos a ver qué significa eso y el resto de tipos que tenemos.
public A los métodos y propiedades public, se puede acceder desde cualquier sitio. Tanto dentro de la clase como fuera.
protected Cuando declaramos una propiedad o método como protected, solo podremos accederlos desde la propia clase o sus descendientes (las clases hijas).
private Los métodos y propiedades private solo pueden ser leídos dentro de la propia clase que lo define. Este breve ejemplo nos muestra lo que pasaría:
1
2
3
4
5
6
7
class Usuario {
    public $usuario;
    private $password;
}
$usuario = new Usuario;
$usuario->password = 'Argofifa'; // <-- ERROR!

Ejercicios con orientación a objetos PHP, de CLASES y METODOS ESTATICOS

Clases y métodos estáticos

Las clases y métodos estáticos pueden ser de cualquiera de los tipos anteriores, public, protected o private pero tienen la peculiaridad de que no requieren que la clase sea instanciada. Además, las propiedades estáticas guardan el valor durante la ejecución del script. Veamos un breve ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Usuario {
    public $usuario;
    public $password;
    public static $contador = 0;   
    public function __construct() {
        self::$contador++;
    }
}
$usuario1 = new Usuario;
echo Usuario::$contador; // 1
$usuario1 = new Usuario;
echo Usuario::$contador; // 2
Ten en cuenta, que cuando nos referimos a una propiedad o método estático, no podremos hacer uso de $this, pero tendremos acceso a self, que viene a ser lo mismo solo que únicamente podremos usar métodos y propiedades estáticas. Puedes llamar a métodos y usar propiedades estáticas desde un método público pero no al contrario.

Operadores De Incremento y Decremento

<?php

echo "OPERADORES INCREMENTO";
$a = 3;


echo "</br>VARIABLE a = $a ";
$a++;
echo "</br>VARIABLE a = $a ";

echo "</br>OPERADORES DECREMENTO";

$b = 34;


echo "</br>VARIABLE a = $b ";
$b--;
echo "</br>VARIABLE a = $b ";



?>

Ejercicios con IF y ELSE

<?php

// ejemplos con if  else

/* En una compra, si el descuento es 7%
     si el monto es superior a 2000, el desceunto es 10%   */


 $monto1 = 11230000;
 $monto2 = 2000;
 $descuento1 = 10.0;
 $descuento2 = 0.5;

 if ($monto1 > 11230000)
 {
   $descuento1 = $monto1 * 10.0;
 }
 else
 {
    $descuento1 = $monto1 * 0.05;
 }



 if ($monto2 > 2000)
 {
   $descuento2 = $monto2 * 10.0;
 }
 else
 {
    $descuento2 = $monto2 * 0.05;
 }


 echo "</br> monto = $monto1  descuento =  $descuento1 ";
 echo "</br> monto = $monto2  descuento =  $descuento2 ";




?>



;



IF



<?php

// ejemplos con if

/* En una compra, si el monto es superior a 100000, el desceunto es
  17%*/


 $monto1 = 1230000;
 $descuento = 0.17;

 if ($monto1 > 100000)
 {
   $descuento = $monto1 * 0.17;
 }

 echo "</br> monto = $monto1  descuento =  $descuento ";


 $monto1 = 3140;
 $descuento = 0;

 if ($monto1 > 100000)
 {
   $descuento = $monto1 * 0;
 }

 echo "</br> monto = $monto1  descuento =  $descuento ";



?>

Ejemplos Con While, listando PAR E IMPAR

<?php

// ejemplos con while

/* Escribir un programa que lista los numeros del 1 al 1000  */


$numero = 1;

while ($numero <= 1000)
  {

    echo "</br> $numero  ";
    $numero++;

  }



?>


;


<?php

// ejemplos con while

/* Escribir un programa que lista los numeros del 1 al 100  */


$numero = 0;

while ($numero < 100)
  {
    $numero++;
    echo "</br> $numero  ";

  }



?>


;

PAR

En Orden Par

<?php

// ejemplos con while

/* Escribir un programa que lista los numeros pares  entre
     1 y 100  */


$numero = 0;

while ($numero <= 100)
  {
    $numero++;
    if ($numero % 2 == 0)
      {
        echo "</br> $numero  ";
      }

  }



?>


IMPAR

En Orden impar

<?php

// ejemplos con while

/* Escribir un programa que lista los numeros impares  entre
     2 y 101  */


$numero = 2;

while ($numero <= 101)
  {
    $numero++;
    if ($numero %2  == 1)
      {
        echo "</br> $numero  ";
      }

  }



?>

Ejemplo Arreglo For

<?php

// ejemplos con arreglos y for


// CREAR EL ARREGLO $a

$a = array(1000, 900, 800, 700, 600, 500);

// LISTAR LOS VALORES DEL ARREGLOS $a

// CREAR EL ARREGLO $b

$b = array(400, 300, 200, 100, 50, 0);

// LISTAR LOS VALORES DEL ARREGLOS $b


 for ($i = 0; $i <= 5; $i++)
  {
    echo " $a[$i] ";
  } 
 for ($i = 0; $i <= 5; $i++)
  {
    echo " $b[$i] ";
  } 



?>



;


Calcular

 <?php

// ejemplos con for

/* Calcular el factorial de un numero   */

 $factorial = 21;
 $numero = 55;

 for ($i=1; $i <=$numero; $i++)
 {
   $factorial = $factorial * $i;
 }

 echo "numero = $numero  factorial = $factorial  ";


?>


;


Listando


<?php

// ejemplos con for

/* Escribir un programa que lista los numeros entre
     1 y 100  */



 for ($i=1; $i <=100; $i++)
 {
    echo "</br> $i ";
 }


?>


 

Ejemplo Con Arreglos y For

<?php

// ejemplos con arreglos y for


// CREAR EL ARREGLO $a

$a = array("VICTOR ORTIZ", "JUAN VEGA", "MARIA SUAREZ", "OCTAVIO MACHADO", "MANUEL PEREZ", "IVAN LOPEZ");

// LISTAR LOS VALORES DEL ARREGLOS $a

//CREAR EL ARREGLO $b

$b = array("LUIS MARTINEZ", "CARLOS GARCIA", "HENDERSON RODRIGUEZ", "ALEJANDRA PAEZ", "NEHOMAR ESTEVEZ", "JUNIOR INFANTE");
// LISTAR LOS VALORES DEL ARREGLOS $b

 foreach ($a as $salida )
  {
    echo "</br> $salida ";
  }
 foreach ($b as $salida )
  {
    echo "</br> $salida ";
  } 


?>



;



 
<?php

// ejemplos con arreglos y for


// CREAR EL ARREGLO $a

$a = array("LINDOLFO", "FEDERICO", "RAMON", "ROMAN");

// LISTAR LOS VALORES DEL ARREGLOS $a

// CREAR EL ARREGLO $b

$b = array("PETRA", "RAMONA", "ATRONOMELIA", "FEDERICA");

// LISTAR LOS VALORES DEL ARREGLOS $B

  for ($i = 0; $i <= 3; $i++)
  {
    echo "</br> $a[$i] ";
  } 
 for ($i = 0; $i <= 3; $i++)
  {
    echo "</br> $b[$i] ";
  } 



?>

Ejemplo Simple

<?php
  echo "HOLA MUNDO";

?>


;

<?php
  $nombre = "SR.RYAN BLAKE";

  echo "HOLA MAESTER, COMO ESTA? ". $nombre;
?>

miércoles, 1 de octubre de 2014

Aprendiendo con PHP Avanzado

Aprendiendo con PHP Avanzado
  1. Introducción a SQLite 00%.svg
  2. Generación de gráficos con librería GD 50%.png
  3. Visualización gráfica de datos (charts) con ezComponents 00%.svg
  4. Generación de PDFs con librería UFPDF 00%.svg
  5. Plantillas Smarty 00%.svg
  6. SimpleXML (PHP 5) 00%.svg
  7. Usando código Perl desde PHP 00%.svg
  8. La extensión SOAP 00%.svg
  9. Manejo de Sockets 00%.svg

Aprendiendo con PHP Medio

Aprendiendo con PHP Medio
  1. Cookies 00%.png
  2. Sesiones 00%.png
  3. Arrays 25%.png
  4. Expresiones regulares 00%.svg
  5. Programación orientada a objetos 00%.svg
  6. Funciones variadas MATH, DATE... 00%.svg
  7. Manejo de ficheros 00%.svg
  8. Bases de datos MySQL 00%.svg

Aprendiendo con PHP Basico

Aprender PHP

PHP básico

  1. Empezando con "Hola mundo"
  2. Bases del lenguaje
  3. Comentarios y estilo
  4. Variables
  5. Cadenas
  6. Operadores
  7. Estructuras de control
    1. La estructura if
    2. La estructura switch
    3. El bucle while
    4. El bucle Do while
    5. El bucle for
    6. El bucle foreach
    7. Include y require
    8. Estructura Go To
  8. Funciones
  9. Envío de correo electrónica
  10. Fecha y hora

¿Como Probar PHP?

¿Como Probar PHP?

             Probar si PHP funciona es muy fácil. Simplemente, copia este texto en algún editor sencillo (nada de Word o editores así, que meten caracteres "ocultos", usa editores de texto puros como notepad o gedit). Ahora, salva el documento con nombre "index.php" en tu directorio web. Borra el archivo "index.htm" de ese mismo directorio para que no haya confusiones y digita en el navegador http://localhost/ o http://localhost/index.php

<?php echo 'Hola mundo'; ?>
 
           Deberías ver el texto "Hola mundo" en el navegador. Asegúrate de que no estás accediendo al fichero localmente (C:/Web/index.php) sino a través del servidor (http://localhost/index.php). Si accedes localmente al fichero, simplemente verás el contenido de ese fichero de texto.

         PHP tiene, además, la función phpinfo() que puedes utilizar para comprobar tu instalación y aprender algo sobre algunas de las características especiales disponibles. Para utilizarla, simplemente crea una nueva página (podría llamarse "phpinfo.php") y escribe en ella:


<?php phpinfo(); ?>