Dúvidas sobre o curso Primeira Aplicação PHP Utilizando MVC
Boa tarde,
Estou desenvolvendo um aplicativo baseado na estrutura de pastas e metodologia do curso Primeira Aplicação PHP Utilizando MVC.
Não sei MVC nem POO.
Estou tentando desenvolver um aplicativo que também possui uma área restrita mas não estou conseguindo chamar o método de um objeto.
O Postman me mostra a seguinte mensagem de erro:
<tr>
<th align='left' bgcolor='#f57900' colspan="5">
<span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Uncaught Error: Class 'App\\Controllers\\RestritoController' not found in C:\\PROJETOS\\WEB\\Servidores_WEB\\neard\\www\\pontosms\\App\\Lib\\Webservice.php on line
<i>43</i>
</th>
</tr>
Dentro da pasta App\\Controllers criei o arquivo RestritoController.php
E dentro da pasta App\\Lib criei o arquivo Webservice.php (Dei esse nome pois também estou usando Ajax)
Segue o código de ambos os arquivos:
RestritoController.php
<?php
namespace App\\Controllers;
class RestritoController extends Controller
{
//private static $autorizado;
public function index()
{
$this->render('restrito/index');
}
public function login()
{
$this->render('restrito/login');
}
public function autorizar()
{
// Verifica permissão de acesso. Se Ok mostra o index
/*
try {
if(!isset($autorizado)){
$autorizado = true;
}
//return $autorizado;
} catch (PDOException $e) {
throw new Exception("Erro de conexão com o banco de dados",500);
}
redirect('/restrito/index');
*/
return true;
}
public function unidade(){
$this->render('/restrito/unidade');
}
public function usuario_cadastrar(){
$this->render('restrito/usuario/cadastrar');
}
public function sair(){
$this->redirect('/');
}
}
Webservice.php
<?php
namespace App\\Lib;
use App\\Controllers\\RestritoController;
$rotina = (isset($_GET['rotina'])) ? $_GET['rotina'] : null;
$ws = new Webservice();
switch ($rotina) {
case "returnNomeFuncionario":
$matricula = (isset($_GET['matricula'])) ? $_GET['matricula'] : null;
$ws->getFuncionarioNome($matricula);
break;
case "autorizaUsuario":
$ws->autorizaUsuario();
break;
default:
break;
}
class Webservice {
public function getFuncionarioNome($matricula = null){
if ((isset($matricula)) && ($matricula != null)){
// Pesquisa Matricula no Banco de Dados para retornar matricula e nome do funcionário
$nome = 'TESTE_'.$matricula;
$arrayFuncionario = array(
"matricula" => $matricula,
"nome" => $nome,
"evento" => "E"
);
$json = json_encode($arrayFuncionario);
echo $json;
}
}
public function autorizaUsuario(){
$rc = new RestritoController();
$rc->autorizar();
//if ((isset($autorizado)) && ($autorizado != null)){
// Verifica Autorização no Banco de Dados
$arrayPermissao = array(
"autorizado" => 1
);
$json = json_encode($arrayPermissao);
echo $json;
//}
}
}
Por que estou obtendo esse erro no Postman ? Como corrigir ? Essa seria a melhor forma de eu criar acesso restrito nesse modelo apresentado pelo curso acima citado ?
Obrigado por qualquer ajuda !!!!
Estou desenvolvendo um aplicativo baseado na estrutura de pastas e metodologia do curso Primeira Aplicação PHP Utilizando MVC.
Não sei MVC nem POO.
Estou tentando desenvolver um aplicativo que também possui uma área restrita mas não estou conseguindo chamar o método de um objeto.
O Postman me mostra a seguinte mensagem de erro:
<tr>
<th align='left' bgcolor='#f57900' colspan="5">
<span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Uncaught Error: Class 'App\\Controllers\\RestritoController' not found in C:\\PROJETOS\\WEB\\Servidores_WEB\\neard\\www\\pontosms\\App\\Lib\\Webservice.php on line
<i>43</i>
</th>
</tr>
Dentro da pasta App\\Controllers criei o arquivo RestritoController.php
E dentro da pasta App\\Lib criei o arquivo Webservice.php (Dei esse nome pois também estou usando Ajax)
Segue o código de ambos os arquivos:
RestritoController.php
<?php
namespace App\\Controllers;
class RestritoController extends Controller
{
//private static $autorizado;
public function index()
{
$this->render('restrito/index');
}
public function login()
{
$this->render('restrito/login');
}
public function autorizar()
{
// Verifica permissão de acesso. Se Ok mostra o index
/*
try {
if(!isset($autorizado)){
$autorizado = true;
}
//return $autorizado;
} catch (PDOException $e) {
throw new Exception("Erro de conexão com o banco de dados",500);
}
redirect('/restrito/index');
*/
return true;
}
public function unidade(){
$this->render('/restrito/unidade');
}
public function usuario_cadastrar(){
$this->render('restrito/usuario/cadastrar');
}
public function sair(){
$this->redirect('/');
}
}
Webservice.php
<?php
namespace App\\Lib;
use App\\Controllers\\RestritoController;
$rotina = (isset($_GET['rotina'])) ? $_GET['rotina'] : null;
$ws = new Webservice();
switch ($rotina) {
case "returnNomeFuncionario":
$matricula = (isset($_GET['matricula'])) ? $_GET['matricula'] : null;
$ws->getFuncionarioNome($matricula);
break;
case "autorizaUsuario":
$ws->autorizaUsuario();
break;
default:
break;
}
class Webservice {
public function getFuncionarioNome($matricula = null){
if ((isset($matricula)) && ($matricula != null)){
// Pesquisa Matricula no Banco de Dados para retornar matricula e nome do funcionário
$nome = 'TESTE_'.$matricula;
$arrayFuncionario = array(
"matricula" => $matricula,
"nome" => $nome,
"evento" => "E"
);
$json = json_encode($arrayFuncionario);
echo $json;
}
}
public function autorizaUsuario(){
$rc = new RestritoController();
$rc->autorizar();
//if ((isset($autorizado)) && ($autorizado != null)){
// Verifica Autorização no Banco de Dados
$arrayPermissao = array(
"autorizado" => 1
);
$json = json_encode($arrayPermissao);
echo $json;
//}
}
}
Por que estou obtendo esse erro no Postman ? Como corrigir ? Essa seria a melhor forma de eu criar acesso restrito nesse modelo apresentado pelo curso acima citado ?
Obrigado por qualquer ajuda !!!!
Guilherme Vasconcellos
Curtidas 0
Respostas
Daniella Gomes
26/03/2018
Olá Guilherme, tudo bem!?
Aprender MVC para PHP é bem simples. Temos alguns cursos que vão te ajudar na compreensão desse padrão:
https://www.devmedia.com.br/curso/o-que-e-mvc/1492
https://www.devmedia.com.br/curso/como-implementar-o-mvc-em-php/1927
E sobre POO tbm alguns posts interessantes:
https://www.devmedia.com.br/orientacao-a-objetos-e-pdo-no-php/32644
https://www.devmedia.com.br/criando-classe-em-php/24371
https://www.devmedia.com.br/php-modificadores-de-acesso/38438
E esses outros posts que vão te ajudar estão disponíveis no nosso guia de carreira da linguagem: https://www.devmedia.com.br/guia/carreira-programador-php/38193
e no nosso guia criado especificamente para trabalhar dos detalhes da linguagem: https://www.devmedia.com.br/guia/linguagem-php/38780
E sobre controle de acesso, dá uma olhada nesses artigos que contam com código fonte para baixar: https://www.devmedia.com.br/php-sistema-de-login-com-niveis-de-acesso/37217
https://www.devmedia.com.br/sistema-de-autenticacao-de-usuarios-em-php-usando-sessoes-e-mysql/37258
https://www.devmedia.com.br/criando-controle-de-acesso-com-php-e-mysql/28123
Se precisar de ajuda com os estudos é só falar ;)
Tmj[]
Aprender MVC para PHP é bem simples. Temos alguns cursos que vão te ajudar na compreensão desse padrão:
https://www.devmedia.com.br/curso/o-que-e-mvc/1492
https://www.devmedia.com.br/curso/como-implementar-o-mvc-em-php/1927
E sobre POO tbm alguns posts interessantes:
https://www.devmedia.com.br/orientacao-a-objetos-e-pdo-no-php/32644
https://www.devmedia.com.br/criando-classe-em-php/24371
https://www.devmedia.com.br/php-modificadores-de-acesso/38438
E esses outros posts que vão te ajudar estão disponíveis no nosso guia de carreira da linguagem: https://www.devmedia.com.br/guia/carreira-programador-php/38193
e no nosso guia criado especificamente para trabalhar dos detalhes da linguagem: https://www.devmedia.com.br/guia/linguagem-php/38780
E sobre controle de acesso, dá uma olhada nesses artigos que contam com código fonte para baixar: https://www.devmedia.com.br/php-sistema-de-login-com-niveis-de-acesso/37217
https://www.devmedia.com.br/sistema-de-autenticacao-de-usuarios-em-php-usando-sessoes-e-mysql/37258
https://www.devmedia.com.br/criando-controle-de-acesso-com-php-e-mysql/28123
Se precisar de ajuda com os estudos é só falar ;)
Tmj[]
GOSTEI 0
Guilherme Vasconcellos
26/03/2018
Boa tarde, Daniella
Obrigado pela rápida resposta.
Já estou fazendo os cursos da Carreira de PHP.
Na verdade eu estava precisando de uma resposta mais direta para saber onde estou errando e como consertar. O curso da Carreira de PHP é bem extenso e vou demorar para conseguir assistir a todas as aulas. E como esse projeto surgiu aqui no trabalho eu imaginei que no fórum eu teria uma resposta mais direta e rápida.
Obrigado.
Obrigado pela rápida resposta.
Já estou fazendo os cursos da Carreira de PHP.
Na verdade eu estava precisando de uma resposta mais direta para saber onde estou errando e como consertar. O curso da Carreira de PHP é bem extenso e vou demorar para conseguir assistir a todas as aulas. E como esse projeto surgiu aqui no trabalho eu imaginei que no fórum eu teria uma resposta mais direta e rápida.
Obrigado.
GOSTEI 0