Juste est au cœur de Project Bravo, mon cadre personnel PHP MVC, il garantit essentiellement la compréhension des modèles, du contrôleur, du moteur de modèle de base. Il gère également le routage, les Middlewares, la base de données et surtout mon super gentil mini Orm fait maison sans oublier l'envoi facile des e-mails.
La documentation de Bravo est actuellement en cours de préparation et sera bientôt disponible. Restez à l'écoute pour les mises à jour!
Pour voir un exemple d'utilisation de Bravo, vous pouvez vous référer au projet Bravo. Il sert de projet de démonstration et aura bientôt une documentation officielle.
Pour installer Juste, vous pouvez suivre ces étapes:
Nécessitent le package à l'aide du compositeur en exécutant la commande suivante:
composer require blakvghost/justeUne fois le package installé, vous pouvez commencer à intégrer Juste dans votre projet PHP.
Veuillez noter que Juste nécessite les packages suivants en tant que dépendances: symfony/dotenv (version 6.2 or higher) et symfony/mailer (version 6.2 or higher) . Ces dépendances seront automatiquement installées lorsque vous installez Juste à l'aide du compositeur.
Juste fournit des fonctions utilitaires que vous pouvez utiliser dans votre application:
La façade Common comprend diverses fonctions d'utilité:
posts() : Renvoie un tableau avec tout le contenu de la variable globale $ _post s'est échappé avec htmlentities ().server(string $key) : renvoie la valeur de la clé donnée du tableau global $ _Server.input(string $key, string $default = '') : renvoie la valeur de la touche donnée à partir des variables globales $ _post ou $ _get, avec l'option pour spécifier une valeur par défaut si la touche n'est pas définie.file(string $key) : renvoie le fichier téléchargé avec la touche donnée à partir de la variable globale $ _files ou redirige vers la page précédente avec un message d'erreur si aucun fichier n'a été téléchargé.redirectTo(string $path = '') : redirige l'utilisateur vers le chemin donné à l'aide de la fonction d'en-tête ().redirecTo(string $path = '') : redirige l'utilisateur vers le chemin donné à l'aide de la fonction en-tête () (typo dans le code, corrigé comme redirectto).sanitize_post(string $key, bool $strict = true) : renvoie la valeur désinfectée de la clé donnée de la variable globale $ _post, avec la possibilité de valider que la clé existe et n'est pas vide.back() : redirige l'utilisateur vers la page précédente.with(string $message, $key = 'error') : définit un message sur la session avec la touche donnée (défaut à «erreur»).json(array $data) : renvoie une chaîne codée JSON du tableau donné.user($attr = false) : renvoie les informations utilisateur authentifiées actuelles ou un tableau vide s'il n'est pas authentifié.store_media($file, string $newFileName) : stocke un fichier multimédia avec le nom donné et renvoie le fichier - chemin ou redirige avec un message d'erreur si le téléchargement du fichier échoue.setDataOnSession($key, $message) : définit les données sur la session avec la clé et le message donné.getDataOnSession($key) : récupère les données de la session à l'aide de la clé donnée.setErrorMessageOnSession($message) : Définit un message d'erreur sur la session.dd($value, ...$args) : affiche la valeur et les arguments supplémentaires à l'aide de var_dump () dans une balise < pre> et des sorties.route(string $alias) : Renvoie l'URL de route pour un alias donné.redirect(string $alias) : redirige l'utilisateur vers l'URL de route pour un alias donné.La façade du contrôleur comprend quelques fonctions utiles pour les classes de contrôleur:
render($view, $title = '', $context = null) : renvoie le chemin complet de vue ou un chemin de vue 404 avec les données de contexte. Il vérifie si le fichier existe et renvoie une réponse appropriée.html(string $html) : renvoie un tableau avec du code HTML complet, utile pour renvoyer les réponses HTML.can(array $user_type = null, string $column = 'roles') : vérifie si l'utilisateur est authentifié et a les types / rôles d'utilisateur spécifié. Redirige avec un message d'erreur si l'utilisateur n'a pas le rôle requis.mustAuthenticate(bool $statut = true) : Vérifie si l'utilisateur est authentifié en fonction de l'état fourni. Redirige avec un message d'erreur si l'état d'authentification n'est pas respecté. <?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 ();
}
}Pour un soutien, vous pouvez me contacter par e-mail à [email protected]. N'hésitez pas à me contacter si vous avez des questions ou si vous avez besoin d'aide avec Bravo.
Ce projet est autorisé sous la licence du MIT.