Criando uma classe de build, Nesta aula o meu proje... | Fórum | School of Net

Deseja poder participar de nosso fórum e tirar todas as suas dúvidas?
Clique aqui e assine nosso plano de acesso ilimitado. Saiba mais.

por

1 semana, 4 dias atrás

Criando uma classe de build, Nesta aula o meu projeto parou, Fatal error: Uncaught Error: Call to a

https://github.com/FelipePereiraAlves/Curso-SON Criando uma classe de build, Nesta aula o meu projeto parou, Fatal error: Uncaught Error: Call to a member function run() on null in C:\xampp\htdocs\cursos\gerenciador-de-projetos-com-php\src\App.php:33 Stack trace: #0 C:\xampp\htdocs\cursos\gerenciador-de-projetos-com-php\bootstrap.php(15): SON\Framework\App->run() #1 C:\xampp\htdocs\cursos\gerenciador-de-projetos-com-php\public\index.php(3): require('C:\xampp\htdocs...') #2 {main} thrown in C:\xampp\htdocs\cursos\gerenciador-de-projetos-com-php\src\App.php on line 33 Codigo da pagina APP <?php namespace SON\Framework; use SON\Framework\Response; use SON\Framework\Exceptions\HttpException; class App { private $router; private $container; private $middlewares = [ 'before' => [], 'after' => [], ]; public function __contruct($router, $container) { $this->router = $router; $this->container = $container; } public function middleware($on, $callback) { $this->middlewares[$on][] = $callback; } public function run() { //TRATA POR TRY CATCH O ERRO E EXIBE UMA MENSAGEM AMIGAVEL AO USUARIO try{ //ARMAZENANDO O RETORNO DA ROTA NA VARIAVEL $result = $this->router->run(); #CRIANDO OBJETO DA CLASSE Response QUE RECEBE UM ACTION E UM PARAMS $response = new Response; #INJETANDO NA CLASS Response FUNCTION INVOCK OS PARAMETROS $params = [ 'container' => $this->container, 'params' => $result['params'], ]; #EXECUTANDO O MIDDLEWARES ANTES foreach ($this->middlewares['before'] as $middleware) { $middleware($this->container); } $response($result['action'], $params); #EXECUTANDO O MIDDLEWARES DEPOIS foreach ($this->middlewares['after'] as $middleware) { $middleware($this->container); } }catch(HttpException $e){ echo json_encode(["erro:" => $e->getMessage()]); } #FIM SISTEMA DE ROTAS VALIDANDO METHOD DE ENTRADA, OU SEJA GET, POST, DELET, PUT ETC... } } Pagina bootstramp <?php require __DIR__."/vendor/autoload.php"; $router = new SON\Framework\Router; require __DIR__ . '/config/containers.php'; require __DIR__ . '/config/events.php'; require __DIR__ . '/config/routes.php'; $app = new SON\Framework\App($router, $container); require __DIR__ . '/config/middlewares.php'; $app->run(); Pagina middlewares <?php #DECLARAÇÃO DE MIDDLEWARE, O BEFORE É ANTES E O AFTER É DEPOIS $app->middleware('before', function ($c) { session_start(); },); $app->middleware('before', function ($c) { header('Content-Type: text/plain'); },); $app->middleware('after', function ($c) { echo 'After'; },); $app->middleware('after', function ($c) { echo 'After 2'; },);

6 Respostas