2011-03-10 16 views

Respuesta

3

PHP 5 introduce "Tipo Hinting", que permite las funciones y los métodos para declarar "escrito" parámetros (objetos). En la mayoría de los casos, no debería ser una gran tarea incluir ejemplos en el puerto, p. desde Java, PHP 5.

Un ejemplo muy simple:

interface MyClient 
{ 
    public function doSomething(); 
    public function doSomethingElse(); 
} 

class MyHighLevelObject 
{ 
    private $client; 

    public __construct(MyClient $client) 
    { 
    $this->client = $client; 
    } 

    public function getStuffDone() 
    { 
    if (any_self_state_check_or_whatever) 
     $client->doSomething(); 
    else 
     $client->doSomethingElse(); 
    } 

    // ... 
} 

class MyDIP implements MyClient 
{ 
    public function doSomething() 
    { 
    // ... 
    } 

    public function doSomethingElse() 
    { 
    // ... 
    } 
} 
+1

En realidad esta respuesta no es completa ni completa ni contestar tema principal. DIP no tiene nada que ver con escribir fuertemente en un idioma. –

0

DIP es una pauta que:

A. módulos de alto nivel no deben no deben depender de los módulos de bajo nivel. Ambos deberían depender de las abstracciones.

B. Las abstracciones no deben depender de los detalles. Los detalles deben depender de las abstracciones.

Es relevante independientemente tiempo "módulos" son en realidad las clases, funciones, módulos (los que no existen en php per se), rasgos o cualquier otra cosa.

Así sí se puede utilizar DIP en PHP. ¡De hecho, puedes usarlo en PHP sin escribir clases! Puede gestionar dependencias entre funciones de la misma manera que lo haría para las clases en DIP.

Cuestiones relacionadas