Un marco de PHP liviano
¿Un simple "marco" de PHP? O se puede decir que es una plantilla de aplicación.
ORM usa elocuente ORM, las rutas usan fastroute
La mayoría de los diseños de interfaz se refieren a Laravel, que adopta el modo de fachada, el modo singleton, la inversión de control (COI) y la inyección de dependencia (DI), y algunos también usan otros modos de diseño.
Contenedor de COI integrado, PSR-11 compatible
Admite la integración con ReactJS, y otros marcos frontales también están bien, pero solo escribí la configuración de ReactJS.
Middleware que admite el estándar PSR-15.
Solicitudes y respuestas encapsuladas, diseñadas de acuerdo con el estándar PSR-7, pero agregaron interfaces similares a Laravel.
Admite establecer inyección de dependencia, enrutamiento y middleware a través de la anotación
Admite AOP, pero dado que no hay un método de agente de herencia, el alcance de soporte para la entrada es limitado. Actualmente, admite la entrada de la tienda y la entrada del controlador. Al mismo tiempo, se han agregado métodos correspondientes al contenedor para proporcionar funciones de entrada.
La razón por la cual no se usa el proxy de herencia es que PHP no tiene una interfaz de reflexión proxy similar a la de Java. La proxy de herencia de PHP debe usar EVAL o requerir para declarar dinámicamente la clase, que tiene un riesgo de seguridad.
Proporcione una implementación simple del observador, aunque generalmente inútil.
Utilice las anotaciones de APCU para caché
Proporciona una implementación de una cola de tareas, similar a una coroutina, que puede renunciarse de manera proactiva, pero dado que PHP no tiene un mecanismo de múltiples subprocesos, no puede lograr el no bloqueo.
Dado que está escribiendo este tipo de proyecto por primera vez, habrá muchos defectos y vulnerabilidades de diseño. No se recomienda utilizar el proyecto en ningún entorno de producción, solo para aprender. Si tiene mejores sugerencias o encuentra deficiencias, no dude en los comentarios.
El propósito de escribir este proyecto es prepararse para el próximo proyecto de blog, porque no hay un marco para usar, por lo que se ha creado este proyecto 2333.
git clone https://github.com/syfxlin/xkphp.gitcomposer install En algunos casos, laminas/laminas-httphandlerrunner no se puede instalar normalmente. En este momento, primero debe instalar laminas/laminas-diactoros .
yarnphp -r " echo base64_encode(openssl_random_pseudo_bytes(32)); "composer migration:upphp -S 0.0.0.0:8000 -t publicNinguno todavía
XK-PHP está escrito y mantenido con la ayuda de Otstar Lin y los siguientes contribuyentes.
Otstar Lin -Sitio web personal · Blog · Github
Open Source bajo la licencia Apache License 2.0.