Slimphp 4 Aplicación MVC Skeleton
La documentación para la versión de este marco basada en SLIMPHP 3 se puede encontrar aquí.
Esta es una aplicación web de plantilla (alimentada por SlimphP 4), que puede extenderse para crear aplicaciones web más complejas.
Si bien no es necesario tener una comprensión experta del marco SlimphP 4 (https://www.slimframework.com/docs/v4/) Para construir aplicaciones web con este marco de aplicaciones de plantilla, tal comprensión ayudaría a maximizar las capacidades de este marco de aplicaciones de plantilla.
Características / beneficios del uso del marco MVC delgado
Agrega la estructura del controlador de visión modelo a su aplicación web. En realidad, realmente más de la funcionalidad del controlador-visión con una carpeta de modelo proporcionada para alojamiento de sus clases de modelos (dejándolo con la responsabilidad de elegir cualquier biblioteca de acceso a la base de datos / base de datos con el que se adapte a sus necesidades o se sienta más cómodo)
Proporciona una carpeta de esqueleto / estructura de directorio para su aplicación:
./path/to/newly/created/app
|-- config/
|-- languages/
| |-- en_US.php
| `-- fr_CA.php
| |-- app-settings.php
| |-- app-settings-dist.php
| |-- dependencies.php
| |-- env.php
| |-- env-dist.php
| |-- ini-settings.php
| `-- routes-and-middlewares.php
|
|-- logs/
|
|-- public/
| |-- css/
| |-- images/
| |-- js/
| `-- index.php
|
|-- src/
| |-- controllers/
| |-- layout-templates/
| |-- models/
| |-- views/
| `-- AppErrorHandler.php
|
|-- tests/
|
|-- tmp/
|
|-- vendor/
|
|-- .gitignore
|-- composer.json
|-- composer.lock
`-- README.md
Proporciona algunas funciones a ayuda de ayuda como SMVC_URITOSTRING ( psr http message uriinterface $ uri) , SMVC_ADDQUERYTRPARAMTOURI ( psr http Message uriinterface $ uri, $ param_net, $ param_value) , etc. en el espacio de nombres global predeterminado y algunas string helper functions in the SlimMvcToolsFunctionsStr espacio de nombres
Proporciona un esquema de enrutamiento automático para mapeo de URL de solicitud a los métodos en clases de controladores que son subclases de SlimMvcToolsControllersBaseController . No necesita definir ninguna ruta para su aplicación si se adhiere a usar controladores que sean compatibles con el esquema de enrutamiento
- También es compatible con la operación de usar solo la funcionalidad PHP delgada pura (es decir, puede definir de manera manual / explícita todas o algunas de las rutas (cada una de las cuales puede o no utilizar las clases de controlador como manipuladores de ruta) y las deseos medios para su aplicación. También puede deshabilitar el esquema de enrutamiento automático descrito anteriormente si está definitivamente de la misma definición de definición manual).
Ships whith a BaseController class (ie SlimMvcToolsControllersBaseController ) that provides methods for authentication (login, logout & checking authentication status), listing all methods in all controller classes in an application that can be automatically routed to if the automatic MVC routing is enabled, forcing HTTP 400, 401, 403, 404, 405, 410, 500 & 501 Respuestas y métodos para representar archivos de vista y diseño PHP utilizando el peso ligero y la clase RotexSoft Filerenderer Renderer fácilmente extensible. Eche un vistazo a la clase para obtener una lista completa de métodos que se pueden usar en sus aplicaciones.
Proporciona un script de línea de comandos para crear clases de controlador (que extienden SlimMvcToolsControllersBaseController o cualquiera de sus descendientes).
-
./vendor/bin/smvc-create-controller on *nix-like OSES y .vendorbinsmvc-create-controller.bat en Windows- Nota:
./vendor/bin/smvc-create-controller-wizard es la versión interactiva de ./vendor/bin/smvc-create-controller
Viajes con una cantidad muy mínima de dependencias compositor / packagist (todas las cuales son utilizadas por SlimMvcToolsControllersBaseController ) para permitirle incluir solo dependencias adicionales que se adapten a las necesidades específicas de su aplicación. Reduciendo así la posibilidad de tener dependencias no utilizadas en su aplicación. Los siguientes paquetes se utilizan en este marco:
- Slim Framework versión 4: para enrutar solicitudes HTTP a los métodos de acción en clases de controlador (u otros llamados aceptables por Slim para responder a las solicitudes que coinciden con las rutas definidas) y enviando respuestas HTTP a los clientes
- Renderizador de archivos: para representar archivos de diseño y vista de PHP (que básicamente contienen una combinación de PHP, HTML, CSS y JavaScript) que se enviarán como HTML en los cuerpos de respuesta HTTP a los clientes. El texto sin formato, JSON, XML y otras respuestas no HTML se pueden emitir directamente a partir de métodos de acción del controlador (no necesitan este renderizador)
- Vespula Auth: un paquete de autenticación liviano que utiliza las acciones de inicio de sesión e inicio de sesión predeterminadas en BaseController para autenticar a los usuarios. Se utiliza un DB de SQLite en memoria para la autenticación de forma predeterminada, debe cambiar a una base de datos relacional adecuada como MySQL (que este paquete también puede auteticarse)
- Vespula Locale: otro paquete de peso ligero para administrar cadenas localizadas en este marco. Cosas como los mensajes de error durante el inicio de sesión se administran utilizando una instancia de este paquete para mostrar los mensajes en el idioma deseado seleccionado por el usuario. El inglés y el francés canadienses estadounidenses son los dos idiomas que este marco admite fuera de la caja. Se pueden agregar otros archivos locales a la carpeta ./config/languages y sus códigos locales se deben agregar al contenedor ( $ Container [ContainerKeys :: Valid_locales] ) y un enlace para ese idioma debe agregarse a la plantilla de diseño con la cadena de consulta apropiada para que los usuarios que hacen clic en él pueden configurar ese idioma como su idioma deseado cuando interactúe con una aplicación creada con esta marco de la cadena de la cadena de consulta para que los usuarios que hacen clic en él pueden configurar ese idioma como su idioma deseado cuando interactúe con una aplicación creada con esta marco de la cadena de consulta.
- Registro de Vespula: un registrador PSR-3 que se usa a lo largo de este marco para registrar varios eventos (como eventos exitosos de inicio de sesión y sesión, etc.). Es más ligero que otros paquetes como Monolog y bastante decente.
- Pimple: un contenedor de inyección de dependencia simple que se utiliza para alimentar SlimmvCtools Container (el contenedor compatible con PSR-11 que se envía con este marco)
- Nyholm PSR7: Una implementación rápida de PHP7 de PSR-7 inyectada en SlimphP por este marco
- Nyholm PSR7 Server: clases de ayuda para manejar las solicitudes del servidor PSR-7, también utilizadas por SlimphP dentro de este marco
You should also look at the public methods available in SlimMvcToolsControllersBaseController which all your applications' controller classes will be extending & which will come in handy in your applications like the forceHttp### , getResponseObjForLoginRedirectionIfNotLoggedIn , isLoggedIn , makeLink , renderLayout & renderView methods
Se esfuerza por adherirse estrictamente a los mensajes HTTP PSR-7 e interfaces PSR/contenedor , para facilitar el uso de diferentes implementaciones de los objetos de solicitud y respuesta de PSR-7 y contenedores compatibles con PSR/contenedor
Requisitos
- PHP 7.2+ (para la versión 3.x) o PHP 7.4+ (para la versión 4.x) o PHP 8.1+ (para la versión 5.x)
- PDO SQLITE (3) Extensión para la autenticación en entornos de no producción
- Compositor (https://getcomposer.org)
Documentación
- Guía de inicio rápido
- Funcionalidad MVC
- Uso del mundo real: creación de una aplicación de catálogo de películas
- Todos los ejemplos de línea de comandos suponen que ha cambiado el directorio a la carpeta raíz de su aplicación recién creada.
- Envíe un problema o una solicitud de extracción si encuentra algún problema con la documentación.
Derivación
Estas son las ramas en este repositorio:
- Maestro: contiene código para la última versión principal de este marco
Siempre debe haber una rama delgada-#-edición-versions-xx que se sincronizará con el maestro y de la cual se etiquetarán las últimas versiones principales. El composer.json en esta rama requerirá la versión estable más reciente de las herramientas Rotexsoft/Slim-Skeleton-MVC en comparación con la versión Dev-Master que siempre se requerirá en el compositor.json en la rama maestra.
- Slim-4-edition-versions-5.x: contiene código para la versión 5.x de este paquete (actualmente se sincroniza con el maestro hasta que una versión más nueva 6.x comienza a desarrollarse en el maestro)
- Slim-4-edition-versions-4.x: contiene código para la versión 4.x de este paquete. No hay nuevas características, solo se aceptan correcciones de errores.
- Slim-3-edición: contiene código para la versión 3.x de este paquete. No hay nuevas características, solo se aceptan correcciones de errores.
- 1.x: contiene código para la versión 1.x de este paquete. Abandonado.
- Project-Website: contiene código para el sitio web de documetación para este proyecto (https://rotexsoft.github.io/slim-skeleton-mvc-app/).
- La sucursal de Website Project se creó en mayo de 2024 y actualmente se está desarrollando. Eliminará este aviso cuando el sitio web de documentación esté listo para funcionar. Por ahora, siga leyendo la documentación en la rama para la versión de este marco que está utilizando actualmente.
Asuntos
- Envíe un problema o una solicitud de extracción si encuentra algún problema con esta aplicación Skeleton.
- Si sugiere una mejora, cree un problema primero para que pueda deliberarse, antes de presentar una solicitud de extracción.