Download the PHP package yurigabriel/myframework without Composer
On this page you can find all versions of the php package yurigabriel/myframework. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download yurigabriel/myframework
More information about yurigabriel/myframework
Files in yurigabriel/myframework
Informations about the package myframework
MyFramework — Documentação Completa
Este README descreve como usar os principais componentes do framework: Controllers, Middlewares, Models, Repositories, QueryBuilder e como configurar o Kernel (variáveis de ambiente e conexão com o banco). Também inclui um tutorial passo-a-passo para criar um novo módulo.
Sumário
- Controllers
- Middlewares
- Models & Repositories
- QueryBuilder
- Kernel / Configuração (.env)
- Tutorial: criar um novo módulo
Controllers
- O que são: Classes anotadas com
#[Controller]. Métodos dentro do controller são rotas quando anotados com#[Mapping(path, httpMethod)]. - Injeção de dependência: Propriedades públicas anotadas com
#[Instantiate]são instanciadas automaticamente (ex.:Request,Response, repositórios). - Exemplo: app/controller/Main.php
Middlewares
- O que são: Classes anotadas com
#[Middleware]que implementamInterceptable(métodorule(): bool). - Aplicação: Use
#[Interceptors([YourMiddleware::class])]em um controller ou método para aplicar regras antes da execução da rota. - Exemplo: app/middleware/Bearer.php
Models & Repositories
- Models: Marcados com
#[Model("table_name")]. Campos usam#[Collumn],#[PrimaryKey]e outras anotações de banco. - Repositories: Estendem
Framework\Libs\DataBase\Repositorye recebem aModel::classno construtor; fornecem acesso aoQueryBuilderpara operações. - Exemplos: app/repository/UserRepository.php
QueryBuilder — visão geral
- Implementado em
Framework\Libs\DataBase\Query. Principais classes:QueryBuilder— pontos de entrada (select,insert,update,delete).SelectBuilder,InsertBuilder,UpdateBuilder,DeleteBuilder— constroem a query em cadeia.WhereQueryBuilder— auxilia a construção de cláusulas WHERE com métodosand,or,isNull,notNull.
Exemplos práticos (QueryBuilder)
-
SELECT com WHERE, JOIN, ORDER BY e LIMIT
-
Observações sobre
WhereQueryBuilder: ele concatena condições em SQL simples; valores string são automaticamente envoltos em aspas simples pelo builder ('value'). -
INSERT
-
UPDATE
-
DELETE
- Observações importantes sobre segurança:
- O builder corrente monta SQL concatenando valores; não há binding de parâmetros na implementação atual — cuide contra SQL injection.
- Para dados vindos de usuários, sanitize/escape ou estenda o
Repository/Conectionpara usar prepared statements com parâmetros.
Kernel & configuração (.env)
-
O carregamento de variáveis de ambiente é feito por
Framework\Kernel\EnvLoadlendo o arquivo.envna raiz do projeto. Regras básicas:- Cada linha no formato
KEY=VALUE(aspas simples ou duplas são suportadas e removidas). - Linhas começando com
#são tratadas como comentários. - As variáveis são atribuídas em
$_ENV.
- Cada linha no formato
-
Variáveis obrigatórias para conexão com banco (usadas por
Framework\Libs\DataBase\Conection):DB_CONNECTION(ex.:mysql)DB_HOSTDB_PORTDB_DATABASEDB_USERNAMEDB_PASSWORD
-
Exemplo de
.envmínimo: - O
KernelutilizaClassLoader::load('/app')para carregar classes do diretórioappe, em seguida, executa kernels (ex.:ModelKernel,RoutesKernel) que registram modelos e rotas.
Tutorial: criar um novo módulo (Controller + Model + Repository + Middleware)
1) Criar o Model
- Arquivo: app/model/Product.php
2) Criar o Repository
- Arquivo: app/repository/ProductRepository.php
3) Criar o Controller
- Arquivo: app/controller/ProductController.php
4) (Opcional) Criar Middleware
- Arquivo: app/middleware/AdminOnly.php
E aplicar com #[Interceptors([AdminOnly::class])] no controller ou método.
5) Testar localmente
-
Inicie o servidor embutido (na raiz do projeto):
- Acesse
http://localhost:8000/ou faça requisições comcurl: