Estructura de mi proyecto:
├── apps │ ├── backend <= Micro │ └── frontend <= Application ├── public │ ├── css │ ├── index.php <= Single entry point │ └── js └── vendor ├── ...Nota: no quiero usar dos puntos de entrada, algo como esto:
├── apps │ ├── ... ├── www │ ├── css │ ├── index.php <= Entry point for Frontend │ └── js ├── api │ ├── index.php <= <= Entry point for BackendSigue siendo una opción de repuesto.
Pregunta:
En ambos casos, me gustaría obtener un código de ejemplo para los siguientes archivos:
public/index.php // or www/index.php & api/public.php apps/forntend/Module.php // or something similar apps/backend/Module.php // or something similary como debo organizar el trabajo con rutas, despachador, etc.
¿Por qué combinarlos? Simplemente use Phalcon\Mvc\Application solo. Micro ni siquiera tiene despachador, módulos, etc. Phalcon\Mvc\Micro es algo separado y no debe usarse en la misma aplicación donde Phalcon\Mvc\Application .
¿Qué es exactamente lo que quieres lograr?
Puede emplear diferentes soluciones para esto. Sí, puede hacerlo @Juri escribió con seguridad, pero si desea que su API/Backend sea lo más delgado posible, entonces puede usar la aplicación Micro.
El truco es tener una clase de arranque abstracta que realice todas sus inicializaciones (incluido el objeto de la aplicación) y anule esto con las clases de arranque relevantes para frontend, backend, cli, etc.
Eche un vistazo a la implementación del sitio web de Phalcon, en particular la clase Bootstrap sobre cómo puede lograr esto.
La implementación se explica detalladamente en estas publicaciones:
https://blog.phalconphp.com/post/building-the-new-phalcon-website-implementation-part-1 https://blog.phalconphp.com/post/building-the-new-phalcon-website-bootstrap -part-2 https://blog.phalconphp.com/post/building-the-new-phalcon-website-middleware-part-3