Diferencia entre revisiones de «Usuario:ManuelRomero/composer»

De WikiEducator
Saltar a: navegación, buscar
(psr-4)
(La autocarga)
Línea 7: Línea 7:
 
[[Archivo:estructura_clases_ej2.png|center]]
 
[[Archivo:estructura_clases_ej2.png|center]]
 
<br />
 
<br />
Este ejemplo implica la siguiente estructura de directorios
+
*Este ejemplo implica la siguiente estructura de directorios y las clases correspondientes
 
+
[[Archivo:implementacion_ficheros.png|center]]
 +
*En cada fichero vamos a escribir el método mágico __toString() para que nos diga el nombre de la clase y el directorio en el que nos encontramos
 +
<source lang=php>
 +
    public function __toString()
 +
    {
 +
        // TODO: Implement __toString() method.
 +
        return "<h2>Estoy en la clase " . get_class ($this) . " ubicado en " . __DIR__;
 +
    }
 +
</source>
 +
*La función get_class($obj) retorna el nombre de la la clase de un objeto
 +
https://www.php.net/manual/es/function.get-class.php
 +
*La constante __DIR__  da el nombre del directorio dónde se ubica el fichero que invocamos
 +
https://www.php.net/manual/es/language.constants.predefined.php
 +
*El objetivo es instanciar un  objeto  de cada clase y probarlo
 +
*Lo hacemos con objetos ubicados en libreria
 +
<source lang=php>
 +
<?php
 +
require "./librerias/A.php";
 +
require "./librerias/B.php";
 +
require "./librerias/C.php";
 +
$a = new A();
 +
$b = new B();
 +
$c = new C();
 +
echo $a;
 +
echo $b;
 +
echo $c;>
 +
</source>
 +
*Y vemos la siguiente salida
 +
[[Archivo:salida_ej1.png]]
  
  

Revisión de 04:36 30 abr 2020

https://medium.com/swlh/composer-everything-i-should-have-known-794225cde691

La autocarga

  • La programación actual es claramente estructurada-modular programando con el paradigma orientado a objetos (existen otros paradigmas)
  • PHP es un lenguaje para programar orientado a objetos
  • Las buenas prácticas de programación nos llevan a crear diferentes objetos estructurados en distintas carpetas implementadas en ficheros independientes.
  • Para este tema, supongamos la siguiente estructura de clases en nuestro proyecto
Estructura clases ej2.png


  • Este ejemplo implica la siguiente estructura de directorios y las clases correspondientes
  • En cada fichero vamos a escribir el método mágico __toString() para que nos diga el nombre de la clase y el directorio en el que nos encontramos
    public function __toString()
    {
        // TODO: Implement __toString() method.
        return "<h2>Estoy en la clase " . get_class ($this) . " ubicado en " . __DIR__;
    }
  • La función get_class($obj) retorna el nombre de la la clase de un objeto
https://www.php.net/manual/es/function.get-class.php
  • La constante __DIR__ da el nombre del directorio dónde se ubica el fichero que invocamos
https://www.php.net/manual/es/language.constants.predefined.php
  • El objetivo es instanciar un objeto de cada clase y probarlo
  • Lo hacemos con objetos ubicados en libreria
<?php
require "./librerias/A.php";
require "./librerias/B.php";
require "./librerias/C.php";
$a = new A();
$b = new B();
$c = new C();
echo $a;
echo $b;
echo $c;>
  • Y vemos la siguiente salida

Archivo:Salida ej1.png



===Concepto de namespace

Autocarga con composer

clasmap


psr-4






psr-4, composer y php

Icon objectives.jpg
autoload con composer

En este apartado vamos a exponer como realizar la carga de forma automática de clases en nuestro proyecto php¡¡

Plantilla:MRM Previos

composer.json

Ubicar las clases en nuestro proyecto

El namespace

  • Los espacios de nombres realmente ayudan a organizar su código y a evitar conflictos de nombres dentro de la base de código de su proyecto.

Actualizar/Instalar composer en nuestro proyecto

Usando las clases en nuestro proyecto