Não está funcionando.
<?php
function customAutoload($className) {if (file_exists($className . '.php'))
{
require_once 'class/' . $className . '.php';
}
}
spl_autoload_register('customAutoload');
Não está funcionando.
<?php
function customAutoload($className) {if (file_exists($className . '.php'))
{
require_once 'class/' . $className . '.php';
}
}
spl_autoload_register('customAutoload');
Oi Douglas tudo bom ?
qual a mensagem de erro que aparece ? Cola aqui para entender melhor o que está acontecendo.
Abraços!
Fatal error: Class 'Categoria' not found in /var/www/html/estudos/lojaOO/class/produtoDAO.php on line 18
segue produtoDAO.php.
<?php require_once("conecta.php"); require_once("class/autoload.php");
class ProdutoDAO{
private $conexao;
function __construct($conexao){ $this->conexao = $conexao; }
function listaProdutos() { $produtos = array(); $resultado = mysqli_query($this->conexao, "select p.*,c.nome as categoria_nome from produtos as p join categorias as c on c.id=p.categoria_id"); while($produto_atual = mysqli_fetch_assoc($resultado)) {
$categoria = new Categoria; $categoria->setNome($produto_atual['categoria_nome']);
a linha 18 é " $categoria = new Categoria;"
o arquivo categoria.php está na pasta class
Opa Douglas, tenta remover o arquivo autoload.php para fora da pasta class, deixa na raiz do projeto e tenta novamente.
Abraços.
Resolveu parcialmente.
O autoload agora está no raiz. Um dos problemas foi que não tinha o 'class/' no if. Comentei o if e já com o arquivo no raiz e funcionou de primeira.
mas tenho outra duvida:
Devo colocar o require_once("autoload.php")
em todos os arquivos? Quais situações precisa e não precisa?
Autoload anterior:
<?php
function customAutoload($className) {
if (file_exists($className . '.php')) {
require_once 'class/' . $className . '.php';
}
}
spl_autoload_register('customAutoload');
Autoload alterado:
<?php
function customAutoload($className)
{
if (file_exists('class/' . $className . '.php'))
{
require_once 'class/' . $className . '.php';
}
}
spl_autoload_register('customAutoload');
Oi Douglas, toda vez que você precisar usar alguma classe vai ser necessário colocar o require "autoload.php"
, não é o melhor dos mundos mas mesmo assim é bem melhor do que importar um arquivo para cada classe que for usar no código.
Valeu Renan, muito obrigado mesmo. Deus abençoe.