Model
Models no Blumiga são funções em namespace, não classes. Cada arquivo em app/models/ contém funções que operam sobre uma entidade.
Resolução
O helper model('nome') localiza o arquivo e retorna o namespace:
// app/models/exemploModel.php
namespace Blumiga\models\exemploModel;
function getData(): array {
return ['item 1', 'item 2', 'item 3'];
}
// No controller
$ns = model('exemplo');
// $ns = '\Blumiga\models\exemploModel\'
$dados = ($ns . 'getData')();
// Executa: \Blumiga\models\exemploModel\getData() Regras de Resolução
A função model('nome') segue esta ordem:
- Procura
app/models/{nome}Model.php(raiz) - Se não encontrar, procura
app/models/{nome}/{nome}Model.php(subpasta) - O sufixo
Modelé adicionado automaticamente - Retorna o namespace
\Blumiga\models\{nomeModel}\
Exemplo com Banco
// app/models/usuarioModel.php
namespace Blumiga\models\usuarioModel;
use Blumiga\database\Select;
function getAll(): array {
$db = new Select();
$data = $db->table('usuarios')->fetchAll();
$db->close();
return $data ?: [];
}
// No controller
$ns = model('usuario');
$usuarios = ($ns . 'getAll')(); Subpastas
// app/models/admin/usuarioModel.php
namespace Blumiga\models\admin\usuarioModel;
// Resolução mantém o namespace da subpasta
$ns = model('admin/usuario');
// $ns = '\Blumiga\models\admin\usuarioModel\'