instanciar example ejemplos clases clase php class oop zend-framework2

example - Cómo incluir la clase php que extiende una interfaz



php class constructor (2)

Si no está utilizando ningún sistema de carga automático (es decir, el autocargador del compositor), entonces es su responsabilidad cargar todas las dependencias.

Entonces, en este caso, simplemente cargar el CommandService no es suficiente y también debe cargar (incluir) Zend / ServiceManager / ServiceLocatorAwareInterface , así como todas las demás dependencias :)

Por lo tanto, le sugiero que considere usar un autocargador ;)

Estoy desarrollando un receptor de socket que tiene que procesar datos con la clase CommandService.

CommandService.php

<?php namespace Application/Service; use Zend/ServiceManager/ServiceLocatorAwareInterface; use Zend/ServiceManager/ServiceLocatorAwareTrait; class CommandService implements ServiceLocatorAwareInterface { use ServiceLocatorAwareTrait; }

custom.php

<?php include(''../module/Application/src/Application/Service/CommandService.php''); ?>

Y cuando me ejecuto en la consola

php custom.php

Me sale un error: Error fatal: la interfaz ''Zend / ServiceManager / ServiceLocatorAwareInterface'' no se encuentra en C: / wamp / www / nutirent / module / Application / src / Application / Service / CommandService.php en la línea 7

Así que sería genial si alguien me puede dar un consejo, ¿cómo puedo ejecutar esto sin hacer custom.php como clase?


La respuesta de Ali es completamente correcta, solo quiero decir algo sobre ServiceLocatorAwareInterface:

Hace algún tiempo, era un gran admirador de ServiceLocatorAwareInterface en mis servicios. Ahora no estoy tan seguro de eso. Tienes que considerar esto:

Haga que ServiceLocator en sus Servicios los haga de mala calidad.

Debido a que el Localizador de servicios es lo que es, ya no puedes decir de qué depende tu clase, porque potencialmente todo. En su lugar, debe usar Inyección de Dependencia y cargar todo lo que su Servicio necesite con Fábricas, las Fábricas son el único lugar donde puede usar ServiceLocator, este es el lugar al que pertenece.

Ocramius dijo que es mejor de lo que estoy tratando de decir en este momento, así que enlace aquí su trabajo al respecto:

Mejores prácticas de Ocramius Zf2

Esto me inspiró. Espero que tú también.