Está en la página 1de 156

Curso

PHP Bsico

Este curso forma parte de una serie de cursos cuyo obje4vo principal es el de ensear
el lenguaje de programacin PHP a personas con conocimientos bsicos de
programacin, y prepararlos para llevar a cabo proyectos de gran envergadura. Para
ello se ensear PHP bsico (este curso), PHP orientado a Objetos, las mejores y ms
novedosas prac4cas en PHP, Patrones de Diseo y el Zend Framework.

Curso creado por Enrique Areyn.

Curso PHP Bsico

Pueden contactarme a travs del correo electrnico enrique3@gmail.com

Curso creado por Enrique Areyn.

Curso PHP Bsico

Curso creado por Enrique Areyn.

Curso PHP Bsico

Este curso de PHP Orientado a Objetos pretender ensear las herramientas bsicas
para desarrollar sistemas web bajo el paradigma de programacin orientada a objetos
en lenguaje PHP. Aqu se cubrirn los aspectos bsicos ms importantes de la
programacin orientada a objetos tanto desde el punto de vista terico como
prc4co.
Se asume que el par4cipante 4ene conocimientos bsicos de programacin en PHP o
que ha par4cipado en el curso anterior a ste de PHP Bsico.

Curso creado por Enrique Areyn.

Curso PHP Bsico

Una revisin general.

Curso creado por Enrique Areyn.

Curso PHP Bsico

La documentacin en lnea sobre PHP es vasta y de calidad. Si algo no se consigue en


el si4o de php, www.php.net, u4lizando google se 4enen altas probabilidades de
solventar esta deciencia.

Curso creado por Enrique Areyn.

Curso PHP Bsico

Una funcin na4va es aqulla que ya viene includa como parte de las libreras
internas del lenguaje y por lo tanto no debe ser implementada por el programador.
Esto nos ahorra 4empo.

Curso creado por Enrique Areyn.

Curso PHP Bsico

PHP se caracteriza por ser un lenguaje exible. Esta caracters4ca 4ene sus ventajas y
desventajas, como veremos ms adelante.

Curso creado por Enrique Areyn.

Curso PHP Bsico

Curso creado por Enrique Areyn.

Curso PHP Bsico

En este apartado se argumentarn algunas de las razones por las cuales la


programacin con PHP simple (no orientado a objetos) es insuciente al momento de
desarrollar sistemas complejos. Para tal n, exploraremos las estrategias de
programacin de un ejemplo sencillo tanto en programacin impera4va como en
POO.

Curso creado por Enrique Areyn.

10

Curso PHP Bsico

El cdigo anterior busca encapsular, a travs de una funcin, lgica propia a un slo
bloque de cdigo. Sin embargo, esta estrategia falla por varias razones. Visto de otra
forma, al ver ste cdigo pregntese lo siguiente:
Qu pasa cuando se empiezan a tener muchas propiedades?
O si se comienzan a tener muchas funciones?
Qu pasa si queremos otro conjunto de ru4nas y parte de los nombres de las
funciones se repiten?
Ver archivo CodigoImpera4vo.php en la carpeta /Ejemplos

Curso creado por Enrique Areyn.

11

Curso PHP Bsico

El mismo cdigo del ejemplo anterior, pero en este caso orientado a objetos. En el
cdigo vemos una clase llamada Automvil que posee dos propiedades y un mtodo.
Ms adelante explicaremos con mayor detalle qu signican cada una de estas cosas.
Por el momento es interesante observar como en un slo bloque de cdigo (agrupado
entre las palabras claves class Atuomovil { }) Tenemos agrupada la informacin que
trabaja sobre un Automvil.
Ms an, al momento de instanciar, es decir, realizar copias de un automvil, vemos
como la POO nos hace la vida fcil. En el cdigo anterior $a y $b son copias dis4ntas,
permi4endo as que $a tenga una propiedad modelo que es suya propia y dis4nta de
la propiedad modelo de la variable $b.
CodigoOrientadoAObjetos.php

Curso creado por Enrique Areyn.

12

Curso PHP Bsico

Algunas de las caracters4cas tcnicas bsicas a resaltar de la POO en general.

Curso creado por Enrique Areyn.

13

Curso PHP Bsico

Independientemente del lenguaje de programacin que emplees, si ste soporta


programacin orientada a objetos entonces las tres caracters4cas de arriba son
fundamentales al momento de programar. Estas tres caracters4cas no slo cambian
la forma de codicar algoritmos, sino que proveen al programador de toda una nueva
estrategia al momento de enfrentar las etapas de anlisis y desarrollo de sistemas.
Dominar estas tcnicas implcitas en la POO es fundamental para el xito del
proyecto.

Curso creado por Enrique Areyn.

14

Curso PHP Bsico

En este apartado exploraremos las herramientas y conceptos bsicos de la POO en


general pero siempre con ejemplos concretos en el lenguaje PHP.

Curso creado por Enrique Areyn.

15

Curso PHP Bsico

Como ya se ha reejado antes, toda clase consta de la palabra clave class seguido del
nombre de la clase y un bloque de cdigo entre llaves.
Dentro del bloque de cdigo se pueden crear slo tres 4pos de bloques bsicos:
constantes, variables y mtodos. Una vez creadas dentro de las llaves, tanto la
constante, como la variable, como la funcin pertenecen a la clase, y para ser
u4lizadas hay que acceder a travs de la clase.
ClaseSimple.php

Curso creado por Enrique Areyn.

16

Curso PHP Bsico

Aqu se muestran las carctersitcas bsicas de una clase. Una analoga apropiada
(pero muy bsica) al momento de pensar en una clase es pensar en un molde del cul
se van a extraer ml4ples copias u objetos similares. A diferencia de un objeto
osico, en este caso las copias sern dinmicas y pueden cambiar su comportamiento y
estructura al momento de ejecutar un programa.

Curso creado por Enrique Areyn.

17

Curso PHP Bsico

Aqu Automovil es la clase y la variable $a es un objeto (instancia o copia


personalizada) sobre la clase Automovil. La palabra clave new hace que Automovil
junto a todas sus propiedades y funciones se copien a $a.
Objeto.php

Curso creado por Enrique Areyn.

18

Curso PHP Bsico

Curso creado por Enrique Areyn.

19

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

20

Curso PHP Bsico

Curso creado por Enrique Areyn.

21

Curso PHP Bsico

Curso creado por Enrique Areyn.

22

Curso PHP Bsico

PropiedadesDeClases.php

Curso creado por Enrique Areyn.

23

Curso PHP Bsico

Una de las diferencias entre las propiedades de una clase y las variables comunes es
que las propiedades al ser declaradas dentro de la clase no pueden hacer referencia a
otras variables. Fuera de la clase si se pueden asignar otros valores:
$miModelo = Toyota;
Class Automovil{
//Correcto:
public sta4c $modelo;
//Incorrecto:
public sta4c $modelo = $miModelo;
}
Automovil::$modelo = $miModelo;
Esta limitacin se asignacin se debe a que el intrprete 4ene que conocer cul es el
valor de todas las propiedades de una clase al momento de leer el cdigo.

Curso creado por Enrique Areyn.

24

Curso PHP Bsico

Una de las diferencias entre las propiedades de una clase y las variables comunes es
que las propiedades al ser declaradas dentro de la clase no pueden hacer referencia a
otras variables. Fuera de la clase si se pueden asignar otros valores:
$miModelo = Toyota;
Class Automovil{
//Correcto:
public sta4c $modelo;
//Incorrecto:
public sta4c $modelo = $miModelo;
}
Automovil::$modelo = $miModelo;
Esta limitacin se asignacin se debe a que el intrprete 4ene que conocer cul es el
valor de todas las propiedades de una clase al momento de leer el cdigo.

Curso creado por Enrique Areyn.

25

Curso PHP Bsico

Una de las diferencias entre las propiedades de una clase y las variables comunes es
que las propiedades al ser declaradas dentro de la clase no pueden hacer referencia a
otras variables. Fuera de la clase si se pueden asignar otros valores:
$miModelo = Toyota;
Class Automovil{
//Correcto:
public sta4c $modelo;
//Incorrecto:
public sta4c $modelo = $miModelo;
}
Automovil::$modelo = $miModelo;
Esta limitacin se asignacin se debe a que el intrprete 4ene que conocer cul es el
valor de todas las propiedades de una clase al momento de leer el cdigo.

Curso creado por Enrique Areyn.

26

Curso PHP Bsico

Curso creado por Enrique Areyn.

27

Curso PHP Bsico

Una de las diferencias entre las propiedades de una clase y las variables comunes es
que las propiedades al ser declaradas dentro de la clase no pueden hacer referencia a
otras variables. Fuera de la clase si se pueden asignar otros valores:
$miModelo = Toyota;
Class Automovil{
//Correcto:
public sta4c $modelo;
//Incorrecto:
public sta4c $modelo = $miModelo;
}
Automovil::$modelo = $miModelo;
Esta limitacin se asignacin se debe a que el intrprete 4ene que conocer cul es el
valor de todas las propiedades de una clase al momento de leer el cdigo.
EjemploSelf.php

Curso creado por Enrique Areyn.

28

Curso PHP Bsico

$a y $b son copias dis4ntas, permi4endo as que $a tenga una propiedad modelo


que es suya propia y dis4nta de la propiedad modelo de la variable $b.
EjemploThisCorrecto.php

Curso creado por Enrique Areyn.

29

Curso PHP Bsico

Curso creado por Enrique Areyn.

30

Curso PHP Bsico

EjemploThisIncorrecto.php

Curso creado por Enrique Areyn.

31

Curso PHP Bsico

El constructor permite generar un estado inicial del objeto que se adapte a los
requerimientos. Aqu nos interesa guardar los dos parmetros que se le pasan al
constructor, posiblemente para u4lizarlos despus.
Constructor.php

Curso creado por Enrique Areyn.

32

Curso PHP Bsico

Curso creado por Enrique Areyn.

33

Curso PHP Bsico

Curso creado por Enrique Areyn.

34

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

35

Curso PHP Bsico

Curso creado por Enrique Areyn.

36

Curso PHP Bsico

Curso creado por Enrique Areyn.

37

Curso PHP Bsico

Ahora la clase Camion 4ene las tres propiedades: $modelo, $marca y $ejes.
HerenciaBasico.php

Curso creado por Enrique Areyn.

38

Curso PHP Bsico

Curso creado por Enrique Areyn.

39

Curso PHP Bsico

Esta es una declaracin completamente equivalente a la anterior, slo que no se


ex4ende, sino que se crean directamente en la clase.
HerenciaBasicoExplicacion.php

Curso creado por Enrique Areyn.

40

Curso PHP Bsico

HerenciaSobrescritura.php

Curso creado por Enrique Areyn.

41

Curso PHP Bsico

Cabe destacar que si se sobrescribe un mtodo ya existente, el nuevo mtodo debe


tener la misma rma que la del padre (debe recibir los mismos parmetros). Si esto
no ocurre, se genera un error de nivel E_STRICT. El nico mtodo para el cual esto no
aplica es el constructor. El constructor puede redenir los parmetros que requiere.

Curso creado por Enrique Areyn.

42

Curso PHP Bsico

Curso creado por Enrique Areyn.

43

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

44

Curso PHP Bsico

Curso creado por Enrique Areyn.

45

Curso PHP Bsico

HerenciaConstructores.php

Curso creado por Enrique Areyn.

46

Curso PHP Bsico

Curso creado por Enrique Areyn.

47

Curso PHP Bsico

HerenciaInvocarAnulados.php

Curso creado por Enrique Areyn.

48

Curso PHP Bsico

Curso creado por Enrique Areyn.

49

Curso PHP Bsico

Curso creado por Enrique Areyn.

50

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

51

Curso PHP Bsico

Curso creado por Enrique Areyn.

52

Curso PHP Bsico

RestringirAcceso.php

Curso creado por Enrique Areyn.

53

Curso PHP Bsico

Curso creado por Enrique Areyn.

54

Curso PHP Bsico

RestringirAccesoUso.php

Curso creado por Enrique Areyn.

55

Curso PHP Bsico

Curso creado por Enrique Areyn.

56

Curso PHP Bsico

RestringirAccesoMetodos.php

Curso creado por Enrique Areyn.

57

Curso PHP Bsico

Curso creado por Enrique Areyn.

58

Curso PHP Bsico

Curso creado por Enrique Areyn.

59

Curso PHP Bsico

Curso creado por Enrique Areyn.

60

Curso PHP Bsico

Curso creado por Enrique Areyn.

61

Curso PHP Bsico

Instanceof.php

Curso creado por Enrique Areyn.

62

Curso PHP Bsico

Curso creado por Enrique Areyn.

63

Curso PHP Bsico

Curso creado por Enrique Areyn.

64

Curso PHP Bsico

ClasesAbstractas.php

Curso creado por Enrique Areyn.

65

Curso PHP Bsico

Curso creado por Enrique Areyn.

66

Curso PHP Bsico

ClasesAbstractasFiltroLetras.php

Curso creado por Enrique Areyn.

67

Curso PHP Bsico

Curso creado por Enrique Areyn.

68

Curso PHP Bsico

Curso creado por Enrique Areyn.

69

Curso PHP Bsico

ClasesAbstractasFiltroNumeros.php

Curso creado por Enrique Areyn.

70

Curso PHP Bsico

Curso creado por Enrique Areyn.

71

Curso PHP Bsico

Interfaces.php

Curso creado por Enrique Areyn.

72

Curso PHP Bsico

Curso creado por Enrique Areyn.

73

Curso PHP Bsico

Curso creado por Enrique Areyn.

74

Curso PHP Bsico

Curso creado por Enrique Areyn.

75

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

76

Curso PHP Bsico

Curso creado por Enrique Areyn.

77

Curso PHP Bsico

Curso creado por Enrique Areyn.

78

Curso PHP Bsico

ExcepcionesIntroduccion.php

Curso creado por Enrique Areyn.

79

Curso PHP Bsico

Hablar sobre el relanzado de excepciones (tercer parmetro)

Curso creado por Enrique Areyn.

80

Curso PHP Bsico

Las excepciones manejan un mensaje y un cdigo de error que son propiedades del
objeto Excep4on
ExcepcionesCodigo.php

Curso creado por Enrique Areyn.

81

Curso PHP Bsico

Curso creado por Enrique Areyn.

82

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

83

Curso PHP Bsico

Curso creado por Enrique Areyn.

84

Curso PHP Bsico

ExtendiendoExcepciones.php

Curso creado por Enrique Areyn.

85

Curso PHP Bsico

Hablar sobre el relanzado de excepciones (tercer parmetro)

Curso creado por Enrique Areyn.

86

Curso PHP Bsico

Explicar que se cumple instanceof Excep4on


AtrapandoExcepciones.php

Curso creado por Enrique Areyn.

87

Curso PHP Bsico

En este ejemplo ambos bloques catch atrapan la excepcin porque $e es instancia


tanto de Excep4on_Bd como de Excep4on.
ExcepcionesAnidadas.php

Curso creado por Enrique Areyn.

88

Curso PHP Bsico

Curso creado por Enrique Areyn.

89

Curso PHP Bsico

Curso creado por Enrique Areyn.

90

Curso PHP Bsico

MetodosFinales.php

Curso creado por Enrique Areyn.

91

Curso PHP Bsico

ClasesFinales.php

Curso creado por Enrique Areyn.

92

Curso PHP Bsico

Curso creado por Enrique Areyn.

93

Curso PHP Bsico

Curso creado por Enrique Areyn.

94

Curso PHP Bsico

MetodoDestruct.php

Curso creado por Enrique Areyn.

95

Curso PHP Bsico

MetodoCall.php

Curso creado por Enrique Areyn.

96

Curso PHP Bsico

MetodoCallSta4c.php

Curso creado por Enrique Areyn.

97

Curso PHP Bsico

MetodoGet.php

Curso creado por Enrique Areyn.

98

Curso PHP Bsico

Curso creado por Enrique Areyn.

99

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

100

Curso PHP Bsico

Curso creado por Enrique Areyn.

101

Curso PHP Bsico

MetodoSet.php

Curso creado por Enrique Areyn.

102

Curso PHP Bsico

Curso creado por Enrique Areyn.

103

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

104

Curso PHP Bsico

Curso creado por Enrique Areyn.

105

Curso PHP Bsico

MetodoIsset.php

Curso creado por Enrique Areyn.

106

Curso PHP Bsico

MetodoUnset.php

Curso creado por Enrique Areyn.

107

Curso PHP Bsico

Curso creado por Enrique Areyn.

108

Curso PHP Bsico

Serialize.php

Curso creado por Enrique Areyn.

109

Curso PHP Bsico

Curso creado por Enrique Areyn.

110

Curso PHP Bsico

MetodoSleep.php

Curso creado por Enrique Areyn.

111

Curso PHP Bsico

Curso creado por Enrique Areyn.

112

Curso PHP Bsico

MetodoWakeup.php

Curso creado por Enrique Areyn.

113

Curso PHP Bsico

Curso creado por Enrique Areyn.

114

Curso PHP Bsico

MetodoToString.php

Curso creado por Enrique Areyn.

115

Curso PHP Bsico

Curso creado por Enrique Areyn.

116

Curso PHP Bsico

Curso creado por Enrique Areyn.

117

Curso PHP Bsico

Curso creado por Enrique Areyn.

118

Curso PHP Bsico

Curso creado por Enrique Areyn.

119

Curso PHP Bsico

Curso creado por Enrique Areyn.

120

Curso PHP Bsico

MetodoSetState.php

Curso creado por Enrique Areyn.

121

Curso PHP Bsico

Curso creado por Enrique Areyn.

122

Curso PHP Bsico

Curso creado por Enrique Areyn.

123

Curso PHP Bsico

Curso creado por Enrique Areyn.

124

Curso PHP Bsico

Curso creado por Enrique Areyn.

125

Curso PHP Bsico

TiposReferencias.php

Curso creado por Enrique Areyn.

126

Curso PHP Bsico

Curso creado por Enrique Areyn.

127

Curso PHP Bsico

Curso creado por Enrique Areyn.

128

Curso PHP Bsico

ClonarObjetosReferencias.php

Curso creado por Enrique Areyn.

129

Curso PHP Bsico

Curso creado por Enrique Areyn.

130

Curso PHP Bsico

Curso creado por Enrique Areyn.

131

Curso PHP Bsico

MetodoClone.php

Curso creado por Enrique Areyn.

132

Curso PHP Bsico

Curso creado por Enrique Areyn.

133

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

134

Curso PHP Bsico

Curso creado por Enrique Areyn.

135

Curso PHP Bsico

Curso creado por Enrique Areyn.

136

Curso PHP Bsico

Curso creado por Enrique Areyn.

137

Curso PHP Bsico

MetodoClone.php

Curso creado por Enrique Areyn.

138

Curso PHP Bsico

Curso creado por Enrique Areyn.

139

Curso PHP Bsico

Curso creado por Enrique Areyn.

140

Curso PHP Bsico

Resultado del ejercicio.

Curso creado por Enrique Areyn.

141

Curso PHP Bsico

Curso creado por Enrique Areyn.

142

Curso PHP Bsico

MetodoClone.php

Curso creado por Enrique Areyn.

143

Curso PHP Bsico

Curso creado por Enrique Areyn.

144

Curso PHP Bsico

Curso creado por Enrique Areyn.

145

Curso PHP Bsico

Curso creado por Enrique Areyn.

146

Curso PHP Bsico

Curso creado por Enrique Areyn.

147

Curso PHP Bsico

Curso creado por Enrique Areyn.

148

Curso PHP Bsico

Curso creado por Enrique Areyn.

149

Curso PHP Bsico

Curso creado por Enrique Areyn.

150

Curso PHP Bsico

MetodoClone.php

Curso creado por Enrique Areyn.

151

Curso PHP Bsico

Curso creado por Enrique Areyn.

152

Curso PHP Bsico

Curso creado por Enrique Areyn.

153

Curso PHP Bsico

Curso creado por Enrique Areyn.

154

Curso PHP Bsico

Curso creado por Enrique Areyn.

155

Curso PHP Bsico

Curso creado por Enrique Areyn.

156

También podría gustarte