Archivo

Archive for 6 enero 2015

Apuntes de PHP

La serie “Apuntes de…” sirve para documentar información que se utiliza, ya sea por recomendación o por imitación pero sin saber  demasiado bien porque, así como plasmar algunos trucos  muy interesantes, dado que la memoria es finita. (Aunque éste es el objetivo del blog..)

Algo de POO…

(extraído de Cristalab)

Cuando empecé en el mundo del PHP no entendí demasiado bien el uso de las interfaces en la POO, pero encontré una página (Cristalab) donde hacen una comparativa con un juego de rol bastante buena. En resumen podría decir que:

  • Es una clase vacía y genérica, dado que sólo se definen los nombres y parámetros de los métodos, que luego tendrán que desarrollarse obligatoriamente en las clases que la implementen (conocidos como métodos abstractos). Al desarrollar el contenido de estos métodos en la clase pueden cambiar su funcionalidad según ésta. Estos métodos han de ser públicos.
  • Las interfaces admiten la herencia múltiple entre ellas y además una clase puede implementar más de una interfaz. Esto puede ser útil cuando necesitemos que una clase extienda varios métodos (metiendo esos métodos en interfaces y extendiendo de las interfaces
interface a
{
    public function one();
    public function two();
}

interface b
{
    public function one()
    public function three();
}

interface c extends a, b
{
    public function four();
}

interface d
{
    publif function five();
}

class newClass extends c, d
{
    public function one(){
       //
    }
    public function two(){
       //
    }
    public function three(){
       //
    }
    public function four(){
       //
    }
    public function five(){
       //
    }
}
  • También pueden contener constantes, pero no propiedades. Se puede acceder a éstas, pero obviamente no sobreescribirlas.
interface a
{
    const b = 'Constante';
}
echo a::b;

Todo esto está bien, pero entonces ¿qué son las clases abstractas?

  • Lo primero, recordar que una clase con un método abstracto es abstracta!
  • Pues son clases padre que para usarlas hay que heredarlas, no se pueden instanciar.
  • Pueden contener métodos abstractos y no abstractos (desarrollados)
  • Solo se puede heredar de una clase abstracta (Herencia simple).

En general podemos decir que si una clase abstracta tiene todos sus métodos abstractos la estaremos tratando como una interfaz.

Capturar el flujo de salida en una variable

ob_start();
-Operaciones para el flujo de salida (include, echo...)
$var = ob_get_clean();

Funciones Utiles

  • extract($array_asoc): extrae del array asociativo tantas variables como keys tenga el array  y con el mismo nombre y con el valor contenido en el elemento etiquetado con esa key.
  • array_splice($array, $offset, [$length],[$replace = array()]): devuelve un array con los elementos seleccionados por la posición inicial $offset (posición real 1,2…) y la cantidad de elementos a escoger $length (admite número negativos) estos elementos se pueden sustituir por otro array de valores $replace.
    • Ej: array_splice ($array, 0 , -1) elimina el ultimo elemento de un array
  • array_shift ($array): Elimina el primer elemento del $array
  • array_push ($array, $value): añade $value al final de $array
  • array_unshift ($array, $value): añade $value al principio de $array
Anuncios
Categorías:Desarrollo, PHP