Carlos Rocha Posted June 12, 2018 at 11:24 PM Report #610948 Posted June 12, 2018 at 11:24 PM Minha estrutura localhost/sistema localhost/sistema/.htaccess localhost/sistema/composer.json localhost/sistema/composer.lock localhost/sistema/composer.phar localhost/sistema/App localhost/sistema/App/mvc/ localhost/sistema/App/mvc/Controles localhost/sistema/App/mvc/Controles/Planos.php localhost/sistema/App/mvc/Modelos localhost/sistema/App/mvc/Modelos/Planos.php localhost/sistema/App/mvc/Vistas localhost/sistema/App/mvc/Vistas/Conexao.php localhost/sistema/App/mvc/Vistas/geral.php localhost/sistema/App/mvc/Vistas/Planos.php localhost/sistema/vendor localhost/sistema/public localhost/sistema/public/index.php Planos.php Controles <?php namespace CONTROLES; class Planos { private $conexao; public function __construct ($_conexao) { $this->conexao = $_conexao; } public function pesquisaPlano($idPlano) { $plano = null; $string = "SELECT idPlano, nome, descricao FROM planos WHERE idPlano = ".$idPlano; $registros = $this->conexao->query($string); $quantasLinhas = $registros->num_rows; if ($quantasLinhas > 0) { list ($idPlano, $nome, $descricao) = $registros->fetch_row(); $plano = new Planos($nome, $descricao); $plano->setIdPlano($idPlano); } return $plano; } public function pesquisaPlanos($where = NULL) { $planos = null; $string = "SELECT idPlano, nome, descricao FROM planos ".$where; $registros = $this->conexao->query($string); $quantasLinhas = $registros->num_rows; if ($quantasLinhas > 0) { while (list ($idPlano, $nome, $descricao) = $registros->fetch_row()) { $plano = new Planos($nome, $descricao); $plano->setIdPlano($idPlano); $planos[] = $plano; } } return $planos; } } ?> Planos.php Modelos <?php namespace MODELOS; class Planos { private $idPlano; private $nome; private $descricao; public function __construct ( $_nome, $_descricao) { $this->nome = $_nome; $this->descricao = $_descricao; } public function setIdPlano ($_idPlano) { $this->idPlano = $_idPlano; } public function getIdPlano () { return $this->idPlano; } public function getNome () { return $this->nome; } public function getDescricao() { return $this->descricao; } public function alteraPlano ($plano) { $string = "UPDATE planos SET nome ='".$plano->getNome()."', descricao = '".$plano->getDescricao()."' WHERE idPlano = ".$plano->getIdPlano(); return $this->conexao->query($string); } public function excluir ($idPlano) { // CHAVE ESTRANGEIRA E ON DELETE CASCADE ATIVADO NO BANCO $string = "DELETE FROM planos WHERE idPlano = ".$idPlano; /* DA FORMA ABAIXO É SOMENTE QUANDO NÃO CONFIGUROU O DELETE CASCADE NO BANCO $string = "DELETE planos, fotos FROM planos LEFT JOIN fotos ON planos.idPlano = fotos.idPlano WHERE planos.idPlano = ".$idPlano; */ return $this->conexao->query($string); } public function cadastrar ($plano) { $string = "INSERT INTO planos ( nome, descricao ) VALUES ( '".$plano->getNome()."', '".$plano->getDescricao()."' ) "; return $this->conexao->query($string); } public function ultimoIdCadastrado () { return $this->conexao->insert_id; } } ?> Planos.php Vistas <?php namespace VISTAS; use CONTROLES; use MODELOS; class Planos { public function __construct () { print dirname((__FILE__)); } public function planos ($_conexao) { $planos = new \CONTROLES\Planos($_conexao); $todos = $planos->pesquisaPlanos(); foreach ($todos as $plano) : echo $plano->getNome()."<br />"; endforeach; } } Geral.php Vistas <?php namespace VISTAS; use CONTROLES, MODELOS; class Geral { private $classe; public function __construct () { $this->planos(); } public function planos () { $planos = new Planos(); $todos = $planos->pesquisaPlanos(); foreach ($todos as $plano) : echo $plano->getNome()."<br />"; endforeach; } } index.php public <?php ini_set("display_errors",true); ini_set("display_startup_erros",1); error_reporting(E_ALL && E_NOTICE && E_STRICT); require_once "../vendor/autoload.php"; require_once "../App/mvc/Vistas/Conexao.php"; require_once "../App/mvc/Vistas/Planos.php"; $conecta = new Conexao(); $conexao = $conecta->abreConexao(); $planos = new Planos(); $planos->planos($conexao); ?> e composer.json { "require" : { "php" : "^5.5 || ^7.0", "ext-mbstring": "*" }, "authors": [ { "name": "Carlcleo", "email": "carcleo@oi.com.br", "role": "Desenvolvedor" }], "autoload": { "psr-4": { "APP\\": "App", "MVC\\": "App/mvc", "MODELOS\\": "App/mvc/Modelos", "VISTAS\\": "App/mvc/Vistas", "CONTROLES\\": "App/mvc/Controles" } } } Quando rodo index.php da erro de servidor. Fatal error: Uncaught Error: Class 'Planos' not found in C:\Program Files\Apache24\Apache24\htdocs\mvc\public\index.php:14 Stack trace: #0 {main} thrown in C:\Program Files\Apache24\Apache24\htdocs\mvc\public\index.php on line 14 Onde estou errando? Pode acompanhar em: http://funerariasaopedro.net.br/mvc
HappyHippyHippo Posted June 13, 2018 at 09:11 AM Report #610956 Posted June 13, 2018 at 09:11 AM como criaste o autoload.php ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Carlos Rocha Posted June 13, 2018 at 10:42 AM Author Report #610957 Posted June 13, 2018 at 10:42 AM Ei, estou começando nessa vida agora então ainda meio perdido. O que eu tenho é o autoload.php do próprio composer. <?php // autoload.php @generated by Composer require_once __DIR__ . '/composer/autoload_real.php'; return ComposerAutoloaderInite9e18adb730cd6c55b0c6fc4162b48b9::getLoader(); Está errado? Se sim, como deveria estar?
Carlos Rocha Posted June 13, 2018 at 12:31 PM Author Report #610959 Posted June 13, 2018 at 12:31 PM Minha estrutura localhost/sistema localhost/sistema/.htaccess localhost/sistema/composer.json localhost/sistema/composer.lock localhost/sistema/composer.phar localhost/sistema/App localhost/sistema/App/mvc/ localhost/sistema/App/mvc/Controles localhost/sistema/App/mvc/Controles/Planos.php localhost/sistema/App/mvc/Modelos localhost/sistema/App/mvc/Modelos/Planos.php localhost/sistema/App/mvc/Vistas localhost/sistema/App/mvc/Vistas/Conexao.php localhost/sistema/App/mvc/Vistas/Planos.php localhost/sistema/vendor localhost/sistema/public localhost/sistema/public/index.php Planos.php Controles <?php namespace CONTROLES; use MODELOS\Planos; class Planos { private $conexao; public function __construct ($_conexao) { $this->conexao = $_conexao; } public function alteraPlano ($plano) { $string = "UPDATE planos SET nome ='".$plano->getNome()."', descricao = '".$plano->getDescricao()."' WHERE idPlano = ".$plano->getIdPlano(); return $this->conexao->query($string); } public function excluir ($idPlano) { // CHAVE ESTRANGEIRA E ON DELETE CASCADE ATIVADO NO BANCO $string = "DELETE FROM planos WHERE idPlano = ".$idPlano; /* DA FORMA ABAIXO É SOMENTE QUANDO NÃO CONFIGUROU O DELETE CASCADE NO BANCO $string = "DELETE planos, fotos FROM planos LEFT JOIN fotos ON planos.idPlano = fotos.idPlano WHERE planos.idPlano = ".$idPlano; */ return $this->conexao->query($string); } public function cadastrar ($plano) { $string = "INSERT INTO planos ( nome, descricao ) VALUES ( '".$plano->getNome()."', '".$plano->getDescricao()."' ) "; return $this->conexao->query($string); } public function ultimoIdCadastrado () { return $this->conexao->insert_id; } public function pesquisaPlano($idPlano) { $plano = null; $string = "SELECT idPlano, nome, descricao FROM planos WHERE idPlano = ".$idPlano; $registros = $this->conexao->query($string); $quantasLinhas = $registros->num_rows; if ($quantasLinhas > 0) { list ($idPlano, $nome, $descricao) = $registros->fetch_row(); $plano = new Planos($nome, $descricao); $plano->setIdPlano($idPlano); } return $plano; } public function pesquisaPlanos($where = NULL) { $planos = null; $string = "SELECT idPlano, nome, descricao FROM planos ".$where; $registros = $this->conexao->query($string); $quantasLinhas = $registros->num_rows; if ($quantasLinhas > 0) { while (list ($idPlano, $nome, $descricao) = $registros->fetch_row()) { $plano = new Planos($nome, $descricao); $plano->setIdPlano($idPlano); $planos[] = $plano; } } return $planos; } } ?> Planos.php Modelos <?php namespace MODELOS; class Planos { private $idPlano; private $nome; private $descricao; public function __construct ( $_nome, $_descricao) { $this->nome = $_nome; $this->descricao = $_descricao; } public function setIdPlano ($_idPlano) { $this->idPlano = $_idPlano; } public function getIdPlano () { return $this->idPlano; } public function getNome () { return $this->nome; } public function getDescricao() { return $this->descricao; } } ?> Planos.php Vistas <?php namespace VISTAS; use CONTROLES\Planos as PC; use MODELOS\Planos as PM; class Planos { private $conexao; public function __construct ($_conexao) { $this->conexao = $_conexao; } public function getPlanos () { $planos = new PC($this->conexao); $todos = $planos->pesquisaPlanos(); foreach ($todos as $plano) : echo $plano->getNome()."<br />"; endforeach; } } index.php public <?php ini_set("display_errors",true); ini_set("display_startup_erros",1); error_reporting(E_ALL && E_NOTICE && E_STRICT); require_once "../App/mvc/Vistas/Conexao.php"; require_once "../vendor/autoload.php"; $conecta = new Conexao(); $conexao = $conecta->abreConexao(); $planos = new Planos($conexao); print_r($planos->getPlanos()); ?> e composer.json { "require" : { "php" : "^5.5 || ^7.0", "ext-mbstring": "*" }, "authors": [ { "name": "Carlcleo", "email": "carcleo@oi.com.br", "role": "Desenvolvedor" }], "autoload": { "classmap": ["App"] } } Quando rodo index.php da erro de servidor. Fatal error: Uncaught Error: Class 'CONTROLES\Planos' not found in C:\Program Files\Apache24\Apache24\htdocs\mvc\App\mvc\Vistas\Planos.php:18 Stack trace: #0 C:\Program Files\Apache24\Apache24\htdocs\mvc\public\index.php(16): VISTAS\Planos->getPlanos() #1 {main} thrown in C:\Program Files\Apache24\Apache24\htdocs\mvc\App\mvc\Vistas\Planos.php on line 18 Onde estou errando? Pode acompanhar em: http://funerariasaopedro.net.br/mvc Adicionando autoload_classmap: <?php // autoload_classmap.php @generated by Composer $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( 'CONTROLES\\Planos' => $baseDir . '/App/mvc/Controles/Planos.php', 'MODELOS\\Planos' => $baseDir . '/App/mvc/Modelos/Planos.php', 'VISTAS\\Planos' => $baseDir . '/App/mvc/Vistas/Planos.php', );
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now