¡Bienvenido a Cohete! Tu plataforma de lanzamiento hacia la programación asíncrona en PHP. Los motores de Cohete están alimentados por ReactPHP y RxPHP. Estas potentes librerías proporcionan una sólida base y amplían las capacidades del lenguaje PHP, permitiendo una programación eficiente y no bloqueante.
Cohete es más que un framework. Es un marco de trabajo inspirado en el Domain-Driven Design (DDD) que te ayuda a estructurar tu código de una manera razonable. Es un lugar de descubrimiento y aprendizaje, un espacio para los autodidactas, para aquellos softwareCrafters que disfrutan explorando hasta donde puede llegar un lenguaje, a exprimir al máximo el rendimiento de PHP. En realidad es DDDD - Domain Driven Design for Developers, está diseñado para ser entendible y manejable desde la primera línea.
Los siguientes pasos te guiarán para instalar y ejecutar el proyecto:
\#+BEGIN_SRC bash make nix-install nix develop make run \#+END_SRC
Si ya tienes experiencia con DDD y Symfony o frameworks similares, podrás poner en marcha tu proyecto de manera rápida y efectiva utilizando el ejemplo `createPostCommandHandler` y `findAllPost`. Estos se localizan en [ubicación del código]. Son un buen punto de partida que te permitirá entender la estructura básica y funcionamiento de Cohete.
Además, te resultarán especialmente interesantes las implementaciones asíncronas de los repositorios, que permitirán que tu código se ejecute de manera no bloqueante y proporcionar un rendimiento superior. Te animamos a explorar estas características y a utilizarlas al máximo en tu proyecto.
Pero no te preocupes! El proyecto ya está en producción, funcionando perfectamente con consultas de más de 40k registros y viene equipado de fábrica con Xdebug usando nix. Si esto no te quita el miedo a PHP, nada lo hará. :)
Invitamos a todos los interesados a contribuir a la mejora de Cohete. Este es un proyecto abierto para el intercambio de ideas y el aprendizaje mutuo. Tus ideas y sugerencias para mejorar la funcionalidad y la eficiencia de Cohete son muy bienvenidas y necesarias!
Cohete utiliza Domain-Driven Design (DDD), un patrón de programación centrado en el problema a resolver y en la lógica que le rodea. Ofrece auto-wiring de tus clases, un genial router y las herramientas básicas para desarrollar un endpoint API REST rápidamente, al igual que otros frameworks más grandes pero sin privarte de nada necesario y útil. Recuerda que muchas veces menos es más.
No necesitas mucho más si necesitas saber cómo funciona todo. Si sólo quieres usarlo, puedes saltar esta sección. :)
\#+BEGIN_SRC text . ├── src │ ├── ddd │ │ ├── Application │ │ ├── Domain │ │ ├── Infrastructure │ │ │ ├── HttpServer │ │ │ │ ├── Kernel │ │ │ │ │ └── Kernel.php │ │ │ │ └── ReactHttpServer.php ├── bootstrap.php \#+END_SRC
Donde:
- ddd: es donde reside el código del Domain-Driven Design (DDD). Se divide en Application, Domain e Infrastructure.
- ddd/Infrastructure/HttpServer/Kernel/Kernel.php: este archivo es el núcleo de la aplicación. Aquí es donde se manejan las peticiones HTTP de forma asíncrona.
- ddd/Infrastructure/HttpServer/ReactHttpServer.php: este archivo es un ejemplo completo de cómo luce un servidor http reactivo.
- bootstrap.php: es el punto de entrada del proyecto, aquí se inicializan todas las configuraciones y se arranca el servidor.