Yaravel é uma estrutura PHP MVC pequena, mas robusta, que pode ser usada tanto para renderizar HTML quanto como API. Possui um sistema de solicitação e roteamento, um mecanismo de visualização com suporte para folhas de estilo e javascript e um ORM chamado Helloquent para comunicação com banco de dados. Yaravel foi projetado para ser rápido, eficiente e flexível, tornando-o a escolha ideal para desenvolvedores que desejam construir aplicações web com PHP.
Tweeter é um aplicativo semelhante ao Twitter desenvolvido usando uma versão anterior dessa estrutura que permite aos usuários postar mensagens curtas, conhecidas como "tweets", e interagir com outras pessoas por meio de curtidas e verificação de seus tweets. O aplicativo apresenta um feed em tempo real dos tweets recentes dos usuários.
(confira ao vivo ou no repositório deste aplicativo)
As rotas da sua aplicação podem ser cadastradas na pasta "/routes" . As rotas API devem ser colocadas no arquivo "api.php" e as páginas da web no arquivo "web.php" .
Para registrar uma rota web, use a função addRoute no objeto roteador. A função leva os seguintes parâmetros:
// $router->addRoute(path, controller path, action);
$ router -> addRoute ( " / " , DefaultController::class, " viewDefault " );
Consulte os exemplos em "/routes/web.php" para obter mais informações.
Para registrar uma rota API, use a função api no objeto roteador. A função leva os seguintes parâmetros:
// $router->addRoute(path, controller path, method);
$ router -> api ( " / " , DefaultController::class);
$ router -> api ( " / " , DefaultController::class, " post " );
Consulte os exemplos em "/routes/api.php" para obter mais informações.
O objeto $this->request está incluído nos controladores e é uma instância da classe HttpRequest . Ele contém todos os dados da solicitação. O objeto possui diversas propriedades, incluindo:
A classe HttpResponse é usada para responder a chamadas de API. Possui uma função estática chamada responder que possui dois parâmetros:
MVC (Model-View-Controller) é um padrão de design de software que separa um aplicativo em três componentes principais
O componente Model na estrutura é responsável por lidar com dados e lógica de negócios e por se comunicar com o banco de dados. Isso é feito através do uso do Helloquent, uma ferramenta ORM construída especificamente para o framework. Para mais detalhes, consulte a documentação do Helloquent neste link https://github.com/you97ssef/Helloquent.
Os modelos devem ser armazenados no diretório /app/Models
e devem estender a classe Model
(conforme demonstrado pela classe Person
no código).
O componente View contém funções que retornam HTML misturado com dados para serem exibidos ao usuário. Os dados usados podem ser passados do Controlador e acessados através do atributo $this->data
(array). As visualizações devem ser armazenadas no diretório /app/views
e devem estender a classe View
(conforme demonstrado pelas classes DefaultView
ou ErrorView
no código).
Texto revisado: O componente Controlador lida com a entrada do usuário e atualiza o Modelo e a Visualização de acordo. Os controladores devem ser armazenados no diretório /app/Controllers
e devem estender a classe Controller
. Possui uma propriedade $this->request
que contém dados da solicitação recebida. Para responder como uma página web, uma View deve ser definida e a função render
dessa View deve ser chamada, como $view->render("renderBody")
. Para responder a uma chamada de API, a função respond
da classe HttpResponse
deve ser usada, por exemplo HttpResponse::respond($data)
. Veja o DefaultController
para ver um exemplo.
A aplicação começa com o arquivo index.php. Primeiramente é construída a requisição, seguida do cadastro do CSS e JS. Em seguida, a configuração do aplicativo e a configuração do banco de dados são inicializadas e, em seguida, o roteador é configurado. Finalmente, o aplicativo é executado chamando $router->run();
(veja o arquivo index.php para mais informações)
Esta estrutura é licenciada sob a Licença MIT, que é uma licença permissiva de código aberto que permite o uso, modificação e distribuição do software. A Licença MIT permite um alto grau de flexibilidade na forma como o software pode ser usado e incorpora um conjunto mínimo de restrições.