Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Usando Controllers

Guilherme Nascimento edited this page Jan 16, 2026 · 9 revisions

Nota: Esta documentação abrange o Inphinit 1.0. Para a documentação da versão 2.1, visite: https://inphinit.github.io/en/docs/controllers.html

Na pasta ./system/application/Controller/ você pode criar os seus Controllers, qualquer Controller requer o namespace Controller, por exemplo ./system/application/Controller/Example.php deve ficar assim:

<?php
namespace Controller;

class Examples
{
    public function foo()
    {
    }
}

Sub-pastas

Se o Controller estiver dentro de uma sub-pasta será necessário ajustar o namespace, por exemplo:

  • Se usar uma sub-pasta assim ./system/application/Controller/Foo/Bar.php:

    <?php
    namespace Controller\Foo;
    
    class Bar
    {
  • Se usar uma sub-pasta com mais niveis ./system/application/Controller/Dashboard/Admin/User.php:

    <?php
    namespace Controller\Dashboard\Admin;
    
    class User
    {

Usando Rotas

Os Controllers usam . (ponto) como delimitador/separador do namespace e : como delimitador do método/função da classe, por exemplo, para incluir o ./system/application/Controller/Example.php em uma rota você pode fazer assim:

Route::set('GET', '/foo', 'Example:method'); //o nome de Controller é case-sensitive

Para incluir ./system/application/Controller/Foo/Bar.php em uma rota:

Route::set('GET', '/foo', 'Foo.Bar:method'); //O ponto separa tanto as rotas quanto o namespace

Para incluir ./system/application/Controller/Dashboard/Admin/User.php em uma rota:

Route::set('GET', '/foo', 'Dashboard.Admin.User:method');

Retornando dados

No Controller você pode usar return para retornar uma resposta para o HTTP:

No main.php

Route::set('GET', '/foo', 'Example');

No Controller:

<?php
namespace Controller;

class Examples
{
    public function foo()
    {
        return 'Olá, Mundo!';
    }
}

E quando navegar para http://example/foo você irá obter:

Olá, Mundo!

Você pode usar View (o return não é necessário):

<?php
namespace Controller;

class Examples
{
    public function foo()
    {
        View::render('myview'); //registra ./application/View/myview.php, nota: 'myview' é case-sensitive
    }
}

Mais detalhes em Views

Não use echo diretamente, por exemplo:

<?php
namespace Controller;

class Examples
{
    public function foo()
    {
        echo 'Welcome!';
    }
}

As Views e os cabeçalhos HTTP são executados somente depois do App::exec (veja ./system/boot/start.php), se você usar echo não será possível adicionar os headers, se deseja usar echo, print, var_dump, print_r você pode usar o evento ready:

<?php
namespace Controller;

use Inphinit\App;

class Examples
{
    public function foo()
    {
        App::on('ready', function () {
            echo 'Seja bem vindo!';
            print_r(array(1, 2, 3));
        });
    }
}

Clone this wiki locally