Juste é o núcleo do Projeto Bravo, minha estrutura pessoal de MVC PHP, ele essencialmente garante o entendimento dos modelos, o controlador, o mecanismo de modelo básico. Ele também gerencia o roteamento, os Middlewares, o banco de dados e, especialmente, meu mini ORM caseiro super agradável, sem esquecer o envio fácil de e -mails.
A documentação para o Bravo está sendo preparada e estará disponível em breve. Fique atento para atualizações!
Para ver um exemplo de uso do Bravo, você pode consultar o projeto Bravo. Serve como um projeto de demonstração e terá documentação oficial em breve.
Para instalar o Juste, você pode seguir estas etapas:
Requer o pacote usando o Composer executando o seguinte comando:
composer require blakvghost/justeDepois que o pacote for instalado, você pode começar a integrar o Juste ao seu projeto PHP.
Observe que a Juste requer os seguintes pacotes como dependências: symfony/dotenv (version 6.2 or higher) e symfony/mailer (version 6.2 or higher) . Essas dependências serão instaladas automaticamente ao instalar o Juste usando o Composer.
Juste fornece algumas funções utilitárias que você pode usar em seu aplicativo:
A fachada Common inclui várias funções de utilidade:
posts() : Retorna uma matriz com todo o conteúdo da variável Global $ _Post escapada com htmlentities ().server(string $key) : Retorna o valor da chave fornecida da matriz Global $ _Server.input(string $key, string $default = '') : retorna o valor da chave fornecida das variáveis Global $ _Post ou $ _Get, com a opção de especificar um valor padrão se a chave não estiver definida.file(string $key) : Retorna o arquivo enviado com a tecla fornecida da variável $ _Files globais ou redireciona de volta para a página anterior com uma mensagem de erro se nenhum arquivo foi enviado.redirectTo(string $path = '') : Redireciona o usuário para o caminho fornecido usando a função Header ().redirecTo(string $path = '') : Redireciona o usuário para o caminho fornecido usando a função Header () (erro de digitação no código, corrigido como RedirectTo).sanitize_post(string $key, bool $strict = true) : retorna o valor higienizado da chave fornecida da variável Global $ _post, com a opção de validar que a chave existe e não está vazia.back() : Redireciona o usuário de volta para a página anterior.with(string $message, $key = 'error') : define uma mensagem na sessão com a chave fornecida (inadimplente para 'erro').json(array $data) : Retorna uma sequência codificada por JSON da matriz dada.user($attr = false) : Retorna informações atuais do usuário autenticado ou uma matriz vazia se não for autenticado.store_media($file, string $newFileName) : armazena um arquivo de mídia com o nome fornecido e retorna o arquivo - caminho ou redireciona com uma mensagem de erro se o upload do arquivo falhar.setDataOnSession($key, $message) : define dados na sessão com a chave e a mensagem fornecidas.getDataOnSession($key) : recupera dados da sessão usando a chave fornecida.setErrorMessageOnSession($message) : define uma mensagem de erro na sessão.dd($value, ...$args) : exibe o valor e os argumentos adicionais usando var_dump () dentro de uma tag < pre> e sai.route(string $alias) : Retorna o URL da rota para um determinado alias.redirect(string $alias) : redireciona o usuário para o URL da rota para um determinado alias.A fachada do controlador inclui algumas funções úteis para classes de controlador:
render($view, $title = '', $context = null) : retorna o caminho de exibição completo ou um caminho de exibição 404 com os dados de contexto. Ele verifica se o arquivo existe e retorna uma resposta apropriada.html(string $html) : Retorna uma matriz com código HTML completo, útil para retornar respostas HTML.can(array $user_type = null, string $column = 'roles') : verifica se o usuário é autenticado e possui os tipos/funções de usuário especificadas. Redireciona de volta com uma mensagem de erro se o usuário não tiver a função necessária.mustAuthenticate(bool $statut = true) : verifica se o usuário é autenticado com base no status fornecido. Redireciona com uma mensagem de erro se o status de autenticação não for atendido. <?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 apoio, você pode entrar em contato comigo por e-mail em [email protected]. Sinta -se à vontade para entrar em contato comigo se tiver alguma dúvida ou precisar de assistência com o Bravo.
Este projeto está licenciado sob a licença do MIT.