Diferencia entre revisiones de «Usuario:ManuelRomero/composer»
De WikiEducator
Línea 112: | Línea 112: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | |||
− | |||
===Concepto de namespace=== | ===Concepto de namespace=== | ||
− | |||
;Espacio de nombres | ;Espacio de nombres | ||
* https://diego.com.es/namespaces-en-php | * https://diego.com.es/namespaces-en-php | ||
Línea 122: | Línea 119: | ||
*El espacio de nombres o <span style=color:#A04000>namespace </span> es una forma de organizar las clases mejorando la estructura del proyecto y evitando conflictos (permitir dos clases diferentes con el mismo nombre). | *El espacio de nombres o <span style=color:#A04000>namespace </span> es una forma de organizar las clases mejorando la estructura del proyecto y evitando conflictos (permitir dos clases diferentes con el mismo nombre). | ||
*Es una forma de agrupar clases lo mismo que un directorio agrupa todo su contenido y los permite localizarlo | *Es una forma de agrupar clases lo mismo que un directorio agrupa todo su contenido y los permite localizarlo | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;namespace | ||
*En java podríamos asemejarlo al concepto de package | *En java podríamos asemejarlo al concepto de package | ||
*En un sistema operativo tenemos un concepto muy parecido con los directorios, de esta forma no tendremos ningún problema en tener dos ficheros con el mismo nombre (en diferente directorio) | *En un sistema operativo tenemos un concepto muy parecido con los directorios, de esta forma no tendremos ningún problema en tener dos ficheros con el mismo nombre (en diferente directorio) | ||
Línea 128: | Línea 128: | ||
/home/profesor/bd/notas.ods | /home/profesor/bd/notas.ods | ||
</source> | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;namespace | ||
+ | |||
{{MRM_Resumen| | {{MRM_Resumen| | ||
;Los espacios de nombres de PHP permiten agrupar | ;Los espacios de nombres de PHP permiten agrupar | ||
clases, funciones, interfaces y constantes relacionadas. | clases, funciones, interfaces y constantes relacionadas. | ||
}} | }} | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;Declarar un namespace | ;Declarar un namespace | ||
*Debe de ser la primera instrucción del fichero (Cuidado incluso con espacios en blanco) | *Debe de ser la primera instrucción del fichero (Cuidado incluso con espacios en blanco) | ||
Línea 139: | Línea 145: | ||
.. | .. | ||
</source> | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;namespace | ||
*El namespace puede tener varios niveles de jerarquía que se establecen (cuidado con la barra de separación '''''\''''') | *El namespace puede tener varios niveles de jerarquía que se establecen (cuidado con la barra de separación '''''\''''') | ||
<source lang=php> | <source lang=php> | ||
Línea 145: | Línea 154: | ||
... | ... | ||
</source> | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;Volviendo a nuestro ejemplo | ||
+ | *Ahora vamos a establecer un namespace en cada clase | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;librerias/comunes/a.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Librerias\Comunes; | ||
+ | class A{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;librerias/comunes/e.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Librerias\Comunes; | ||
+ | class E{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;librerias/privadas/a.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Librerias\Privadas; | ||
+ | class A{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;librerias/privadas/e.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Librerias\Privadas; | ||
+ | class E{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;librerias/a.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Librerias; | ||
+ | class A{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;librerias/b.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Librerias; | ||
+ | class B{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;librerias/c.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Librerias; | ||
+ | class C{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;controlador/comunes/ca.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Controlador\Comunes; | ||
+ | class CA{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;controlador/comunes/cd.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Controlador\Comunes; | ||
+ | class CD{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | ;controlador/c.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Controlador; | ||
+ | class C{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | <div class=slide> | ||
+ | ;controlador/ca.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Controlador; | ||
+ | class CA{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | <div class=slide> | ||
+ | ;controlador/cb.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | namespace Controlador; | ||
+ | class CB{ | ||
+ | public function __toString() | ||
+ | { | ||
+ | return "<h2>Estoy en la clase ".get_class($this)." ubicado en ".__DIR__; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | </div><div class="slide"> | ||
+ | |||
{MRM_Resumen|Title=Algunos comentarios| | {MRM_Resumen|Title=Algunos comentarios| | ||
*Cada namespace referencia a una ubicación en un directorio | *Cada namespace referencia a una ubicación en un directorio | ||
Línea 150: | Línea 324: | ||
} | } | ||
*Una vez establecido un namespace en una clase, para acceder a él debemos de referenciarlo en su ubicación | *Una vez establecido un namespace en una clase, para acceder a él debemos de referenciarlo en su ubicación | ||
− | |||
*Podemos crear un alias con la palabra reservada Use | *Podemos crear un alias con la palabra reservada Use | ||
− | + | </div> | |
+ | <div class="slide"> | ||
+ | ;namespace | ||
Revisión de 05:30 30 abr 2020
https://medium.com/swlh/composer-everything-i-should-have-known-794225cde691