Juste es el núcleo del Proyecto Bravo, mi marco personal de PHP MVC, esencialmente garantiza la comprensión de los modelos, el controlador, el motor de plantilla básico. También administra el enrutamiento, el Medio Medio, la base de datos y especialmente mi Mini Orm casero súper agradable sin olvidar el fácil envío de correos electrónicos.
La documentación para Bravo se está preparando actualmente y estará disponible pronto. ¡Estén atentos para las actualizaciones!
Para ver un ejemplo de uso de Bravo, puede consultar el proyecto Bravo. Sirve como un proyecto de demostración y pronto tendrá documentación oficial.
Para instalar Juste, puede seguir estos pasos:
Requiere el paquete usando el compositor ejecutando el siguiente comando:
composer require blakvghost/justeUna vez que se instala el paquete, puede comenzar a integrar a Juste en su proyecto PHP.
Tenga en cuenta que JUSTE requiere los siguientes paquetes como dependencias: symfony/dotenv (version 6.2 or higher) y symfony/mailer (version 6.2 or higher) . Estas dependencias se instalarán automáticamente cuando instale JUSTE con el compositor.
Juste proporciona algunas funciones de utilidad que puede usar en su aplicación:
La fachada Common incluye varias funciones de utilidad:
posts() : Devuelve una matriz con todos los contenidos de la variable Global $ _post escapada con htmlentities ().server(string $key) : Devuelve el valor de la clave dada de la matriz Global $ _Server.input(string $key, string $default = '') : Devuelve el valor de la clave dada de las variables globales $ _post o $ _get, con la opción de especificar un valor predeterminado si la clave no está configurada.file(string $key) : Devuelve el archivo cargado con la clave dada desde la variable $ _files global o redirige a la página anterior con un mensaje de error si no se cargó ningún archivo.redirectTo(string $path = '') : redirige al usuario a la ruta dada usando la función Header ().redirecTo(string $path = '') : redirige al usuario a la ruta dada usando la función encabezada () (error tipográfico en el código, corregido como redirección).sanitize_post(string $key, bool $strict = true) : devuelve el valor desinfectado de la clave dada de la variable $ _post global, con la opción de validar que la clave existe y no está vacía.back() : redirige al usuario a la página anterior.with(string $message, $key = 'error') : establece un mensaje en la sesión con la tecla dada (predeterminando 'Error').json(array $data) : devuelve una cadena codificada por JSON de la matriz dada.user($attr = false) : devuelve información de usuario autenticada actual o una matriz vacía si no se autentica.store_media($file, string $newFileName) : almacena un archivo de medios con el nombre de determinación y devuelve la ruta del archivo o redirige con un mensaje de error si la carga de archivo falla.setDataOnSession($key, $message) : establece datos en la sesión con la clave y el mensaje dados.getDataOnSession($key) : recupera datos de la sesión utilizando la clave dada.setErrorMessageOnSession($message) : establece un mensaje de error en la sesión.dd($value, ...$args) : muestra el valor y los argumentos adicionales usando var_dump () dentro de una etiqueta y sale < pre>.route(string $alias) : devuelve la URL de ruta para un alias determinado.redirect(string $alias) : redirige al usuario a la URL de ruta para un alias determinado.La fachada del controlador incluye algunas funciones útiles para clases de controlador:
render($view, $title = '', $context = null) : Devuelve la ruta de vista completa o una ruta de vista 404 con los datos de contexto. Verifica si el archivo existe y devuelve una respuesta apropiada.html(string $html) : devuelve una matriz con código HTML completo, útil para devolver las respuestas HTML.can(array $user_type = null, string $column = 'roles') : verifica si el usuario está autenticado y tiene los tipos/roles de usuario especificados. Redirige con un mensaje de error si el usuario no tiene el rol requerido.mustAuthenticate(bool $statut = true) : verifica si el usuario está autenticado en función del estado proporcionado. Redirige con un mensaje de error si no se cumple el estado de autenticación. <?php
namespace Routes ;
use App Controllers WelcomeController ;
use Juste Facades Routes Route ;
Route:: get ( " / " , [WelcomeController::class, ' welcome ' ])-> name ( ' welcome ' );
Route:: resource ( ' password ' , WelcomeController::class);
Route:: group ( function () {
})-> middlewares ([ ' auth ' ]);
require_once ' api.php ' ; <?php
namespace Routes ;
use App Controllers MailsController ;
use Juste Facades Routes Route ;
Route:: post ( ' api/mails ' , [MailsController::class, ' index ' ])-> name ( ' api ' )-> middlewares ([ ' cors ' ]); <?php
namespace App Middleware ;
use Juste Http Middleware MiddlewareInterface ;
use Juste Facades Controllers Controller as Helpers ;
class Authenticate extends Helpers implements MiddlewareInterface
{
public function handle (): mixed
{
if (! $ this -> user ()) {
return $ this -> redirect ( ' login ' );
}
return 1 ;
}
} <?php
namespace App Models ;
class User extends Model
{
protected $ table = ' users ' ;
protected $ fillable = [ ' nom ' , ' prenom ' , ' email ' , ' password ' ];
} <?php
namespace App Controllers ;
use App Controllers Controller ;
use Juste Facades Mails JusteMailer ;
class MailsController extends Controller
{
public function __construct ()
{
$ this -> mustAuthenticate ( false );
}
public function index ()
{
$ mail = new JusteMailer ();
$ object = [
' to ' => ' [email protected] ' ,
' subject ' => ' Message d ' un potentiel client ' ,
];
$ data = [
' name ' => $ this -> input ( ' name ' , " Anonymous " ),
' email ' => $ this -> input ( ' email ' , " [email protected] " ),
' subject ' => $ this -> input ( ' subject ' , " Anonyme " ),
' message ' => $ this -> input ( ' message ' , " Anonyme " ),
];
$ mail -> view ( ' mails/contact ' , $ data )-> sendEmail ( $ object );
return $ this -> back ();
}
}Para obtener apoyo, puede comunicarse conmigo por correo electrónico a [email protected]. No dude en contactarme si tiene alguna pregunta o necesita ayuda con Bravo.
Este proyecto tiene licencia bajo la licencia MIT.