enriquebv
10/22/2018 - 12:10 AM

Aprendiendo PHP

Aprendiendo PHP

Aprendiendo PHP

Convenciones y estilo

  • Semi-colon en cada linea.
  • Identacion: 4 espacios.
  • Las clases y funciones tienen los cierres debajo de la declaracion (ver ejemplo 1).
    • Si es una funcion anonima no.
  • Las estructuras de control tienen los cierres en la misma linea de la declaracion (ver ejemplo 1).
  • La visibilidad va antes de la declaracion.
  • Objetos inexistentes/vacios seran null.

Ejemplo 1

class Clase
{
    function Metodo ($parametros)
    {
        
    }
}

Conceptos

OOP

  • Sintaxis:
    • Una propiedad puede tener el mismo nomnbre de una variable sin causar efectos secundarios.
    • Las clases se definen con la keyword class y con cierres de apertura/cierre.
    • Se crea un objeto de esa clase con new.
      • Se pueden llamar a clases con el nombre en una string:
        $nombreDeClase = 'Clase';
        $objeto = new $nombreDeClase();
        
        // Realmente esta realizando:
        $objeto = new Clase();
        
    • Todas las funciones/variables escritas dentro seran accesibles luego con ->.
    • Para acceder a cualquier variable/funcion en la clase, se utilizara $this->variableo $this->funcion().
      • $this hace referencia al objeto que hemos creado de esa clase.
    • Visibilidad: Hasta donde se pueden compartir las variables de una clase.
      • public: Cualquier sitio.
      • protected Solo desde la clase o clases heredadas.
      • private Solo desde la clase.
      • Se pueden utilizar metodos para compartir de manera publica cualquier protected/private.
      • Cualquier variable/funcion sin visilibilidad sera public.
    • extends: Se pueden crear clases que extienden a otras, heredando de de ellas sus metodos y funciones (public y protected).
      • Se puede sobreescribir un metodo/propiedad creando unos nuevos con el mismo nombre (a no ser que sean final).
      • Se puede seguir accediendo a variables/funciones sobreescritas con parent::.
      • Si se sobreescribe una funcion debe tener los mismos parametros (no se aplica al constructor). @TODO Seguir con oop, por seccion Lo basico
        class Clase
        {
            public $variable = 'Esto es una variable de la clase';
            public $publica = 'Publica';
            protected $protegida = 'Protegida';
            private $privada = 'Privada';
            
            function metodo()
            {
                return 'Esto es un metodo de la clase';
            }
            
            function mostrarTodo()
            {
                echo $this->publica;
                echo $this->protegida;
                echo $this->privada;
            }
        }
        
        $objeto = new Clase();
        echo $objeto->variable; // "Esto es una variable..."
        echo $objeto->metodo(); // "Esto es un metodo..."
        echo $objeto->mostrarTodo(); // Mostrara todas las variables, dando igual su visibilidad.
        
    

Generales

Funciones

  • Las funciones se pueden almacenar en variables, devolver en return y pasar como parametros (callbacks).
  • Se puede llamar a un callback pasandole un array de parametros (call-user-func-array):
    call_user_func_array($callback , $param_arr);

Metodos magicos

Son hooks para clases.

  • __construct: Constructor de la clase.
  • __destruct: Destructor de la clase. @TODO Faltan metodos magicos

Funciones anonimas

Son funciones sin nombre usadas comunmente dentro de otras declaraciones de codigo:

strtoupper(function ($array) {
    return $array[1] + ' funcion anonima'
})