Ir para conteúdo
Fórum Script Brasil
  • 0

Aplicação PHP MVC/Composer Apache/Nginx


Thyago Dantas

Pergunta

Bom! Eu estudo PHP faz pouco tempo e com base no que aprendi em cursos. Eu desenvolvi um painel em PHP para controlar postagens na minha aplicação NodeJS, só que, em localhost usando XAMPP, tudo funciona corretamente, mas ao fazer o deploy para minha VPS usando apache ou nginx, ele mostra sempre a página de erro 404 definida no Application.php. Segue abaixo fotos da estrutura do projeto e os códigos importantes onde preciso de ajuda para identificar esse erro.

Código do index.php

<?php
session_start();
date_default_timezone_set('America/Recife');
require('vendor/autoload.php');

define('INCLUDE_PATH_STATIC', 'http://localhost/Painel/Views/Pages/');
define('INCLUDE_PATH', 'http://localhost/');


$app = new Painel\Application;

$app->run();

?>

Código do Painel/Application.php

<?php

namespace Painel;

class Application
{

    private $controller;

    private function setApp()
    {
        $loadName = 'Painel\Controllers\\';
        $url = explode('/', @$_GET['url']);

        if ($url[0] == '') {
            $loadName .= 'Home';
        } else {
            $loadName .= ucfirst(strtolower($url[0]));
        }

        $loadName .= 'Controller';

        if (file_exists($loadName . '.php')) {
            $this->controller = new $loadName();
        } else {
            include('Views/Pages/404.php');
            die();
        }
    }

    public function run()
    {
        $this->setApp();
        $this->controller->index();
    }
}

?>

 

imagem_2023-04-19_024458765.png

imagem_2023-04-19_024533382.png

imagem_2023-04-19_024611837.png

imagem_2023-04-19_024636444.png

imagem_2023-04-19_024653643.png

imagem_2023-04-19_024720149.png

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Eu não uso o servidor VPS, por enquanto. Mesmo assim, eu fiz algumas modificações:

index.php

<?php
require 'Painel/Application.php'; // aqui
session_start();
date_default_timezone_set('America/Recife');
require('vendor/autoload.php');
define('INCLUDE_PATH_STATIC', 'http://localhost/Painel/Views/Pages/');
define('INCLUDE_PATH', 'http://localhost/');
$app = new Application(); // aqui
echo $app->teste(); // aqui
$app->run();
?>

----------------------

Application.php 
<?php
/* namespace Painel;  <--- Aqui */
class Application {
    private $controller;
    private function setApp() {
        $loadName = 'Painel\Controllers\\';
        $url = explode('/', @$_GET['url']);
        if ($url[0] == '') {$loadName .= 'Home';} else {
            $loadName .= ucfirst(strtolower($url[0]));}
        $loadName .= 'Controller';
        if (file_exists($loadName . '.php')) {
            $this->controller = new $loadName();} else {
            include('Views/Pages/404.php');
            die();}
    }
    public function teste(){return "olá mundo!";} // aqui
    public function run(){
        $this->setApp();
        $this->controller->index();}
}

?>

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...