2011-05-12 14 views
7

He pasado tiempo asimilando las metodologías detrás de escribir código comprobable, y I stumbled on a great post de Misko Hevery donde explica claramente cómo abordar las dependencias en la creación de aplicaciones, utilizando fábricas, por ejemplo, para cargar todo objetos y así reducir las líneas de dependencias que complican las pruebas.Código comprobable - ejemplo de aplicación pequeña

En su puesto que da una mínima aunque sea ejemplo y detallada de cómo se configura la aplicación en Java, sin vergüenza se cita a continuación con gran respeto al tio:

// Your main should look like this: 
class Main { 
    public static void main(String…args) { 
    AppFactory factory = new AppFactory(args); 
    MyApp app = factory.create(); 
    app.run(); 
    } 
} 

A continuación, afirma:

Observe cómo el código se divide en tres fases. Crear fábrica, crear aplicaciones, ejecutar aplicaciones. Esto lo hace comprobable. No importa cuál sea tu aplicación, debes dejar este patrón en barbecho. Para obtener singletons en lugares correctos, Factory solo crea una única instancia y luego pasa esa instancia a los constructores de todas las clases, ya que llama a new. Veo: http://misko.hevery.com/2009/03/30/collaborator-vs-the-factory/

yo no soy experto en Java, pero supongo que esto puede ser imitado en php, menos el método main(), por supuesto, pero donde sería $ args vienen en el contexto de una aplicación Web? Y la inicialización?

Estaría muy interesado en ver un ejemplo de aplicación comprobable mínima en PHP, o incluso enlaces a aplicaciones que se considerarían eficientes en la prueba. La inicialización es lo que más me interesa, principalmente. Mi propósito no es copiar y pegar, sino aprender de lo que los codificadores de OOP experimentados han emitido.

Rebusqué en el código de algunas bibliotecas de códigos populares: Zend, Symphony, pero estos marcos no son aplicaciones ejecutables y parecen "demasiado grandes demasiado rápido" para poder captar una imagen clara. Además, se han señalado algunas deficiencias en ese marco con respecto a las prácticas de prueba. Solo un pequeño ejemplo, si es posible (incluso si no se puede ejecutar), me daría un mejor control sobre las prácticas correctas de diseño de código OOP al iniciar una pequeña aplicación desde cero.

Respuesta

2

Sebastián Bergmann, autor de PHPUnit, tiene una aplicación de ejemplo para ilustrar lo que está pidiendo en GitHub:

+0

Ejemplo agradable. El bootstrap/"método principal" está en 'htdocs/index.php'. – edorian

+0

Ahora que lo mencionas, recuerdo que mencionó esa aplicación en sus publicaciones. ¡Gracias amigo! – stefgosselin

+0

@Gordon https://github.com/thePHPcc/bankaccount no funciona, ¿me puede proporcionar el enlace de trabajo para este proyecto? – MKJ

Cuestiones relacionadas