2
respostas

Use não está funcionando

Meu código está apresentando o seguinte problema:

use Alura\Banco\Modelo\Endereco;
php > use Alura\Banco\Modelo\CPF;
php > use Alura\Banco\Modelo\Conta\Conta;

php > $endereco = new Endereco('Petropolis', 'Um bairro', 'Rua x', '33');
PHP Warning:  Uncaught Error: Class 'Endereco' not found in php shell code:1
Stack trace:

mas se eu instancio a variavel da seguinte maneira:

$endereco = new Alura\Banco\Modelo\Endereco('Petropolis', 'Um bairro', 'Rua x', '33');

Ele funciona, e esse problema está se replicando para todas as instancias que necessitam do USE.

2 respostas

Observação : os requires estão acima dos use como segue exemplo abaixo.

<?php

require_once 'src/Modelo/Conta/Conta.php';
require_once 'src/Modelo/Endereco.php';
require_once 'src/Modelo/Pessoa.php';
require_once 'src/Modelo/Conta/Titular.php';
require_once 'src/Modelo/CPF.php';

use Alura\Banco\Modelo\Conta\Titular;
use Alura\Banco\Modelo\Endereco;
use Alura\Banco\Modelo\CPF;
use Alura\Banco\Modelo\Conta\Conta;

Beleza, Pedro!

Você já tentou mudar a ordem de cada 'use'? Teria que olhar o código completo, mas talvez seja porque a ordem em que os uses estão listados não seja a mesma com que as classes estão sendo instanciadas no código. Não sei se o problema é esse, mas acho que vale a pena mudar a ordem e testar. Usando o autoload.php do composer você consegue resolver essa questão de forma mais simples.

Qualquer coisa, manda o código inteiro aqui.