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

Erro desconhecido.


LucasFerreira_

Pergunta

Estou estudando PHP, mas estou tendo um problema que não consigo solucionar de maneira nenhuma. Já fiz buscas e não achei nada que explicasse o meu caso especifico.

O meu teste é composto de 6 arquivos:

  • 'index.php': página web em si
  • 'connection.php': faz a conexão com o banco de dados
  • 'usermodel.class.php': classe modelo, apenas com as propriedades
  • 'usercontroller.class.php': faz a consulta no banco de dados e retorna um array de UserModel
  • 'userview.class.php': transforma o array[] em uma resposta para ser exibida no index.php
  • 'users.php': faz o require_once dos 4 arquivos acima

Segue abaixo o código de cada um dos arquivos

index.php
<?php require_once 'php/users.php'; ?>
<!doctype html>
<html>
    <head>
        <title>Object Oriented Programming</title>
        <meta charset="utf-8">
    </head>
    <body>
        <h1>User List</h1>
        <?php $view = new UserView; $view->getArray(); ?>
    </body>
</html>
connection.php
<?php
    # Configuration Lines (you can change these lines)
    $server = 'localhost';
    $database = 'oo';
    $username = 'root';
    $password = 'senha';
    
    # Establishing the Connection (don't change nothing after this line)
    $link = mysql_connect($server, $username, $password) or die("Failed to connect to the server " . $server);
    $dbselect = mysql_select_db($database, $link) or die ("Unkown database " . $database);
?>
usermodel.class.php
<?php
    class UserModel {
        # Data Fields
        private $id;
        private $username;
        private $email;
        private $password;

        # Constructor
        function __construct($id, $username, $email, $password) {
            $this->id = $id;
            $this->username = $username;
            $this->email = $email;
            $this->password = $password;
        }
        
        # Properties
        function __set($name, $value) {
            $this->$name = $value;
        }
        function __get($name) {
            return $this->$name;
        }
    }
?>
usercontroller.class.php
<?php
    class UserController {
        # Data Fields
        private $model;
        private $array;
        
        # Constructor
        function __construct() {
            $this->model = new UserModel;
        }
        
        # Methods
        function getArray() {
            global $model, $array;
            $query = "SELECT id, username, email, password FROM Users";
            $result = mysql_query($query);
            while ($row = mysql_fetch_array($result)) {
                $model->id = $row['id'];
                $model->username = $row['username'];
                $model->email = $row['email'];
                $model->password = $row['password'];
                $array[] = $model;
            }
            return $array;
        }
    }
?>
userview.class.php
<?php
    class UserView {
        # Data Fields
        private $controller;
        
        # Constructor
        function __construct() {
            $this->controller = new UserController;
        }
        
        # Methods
        function getArray() {
            global $controller;
            $array = $controller->getArray();
            echo $array[0]->username;
        }
    }
?>
users.php
<?php
    define('DS', DIRECTORY_SEPARATOR);    
    define('ROOT', dirname(dirname(dirname(__FILE__))));
    require_once ROOT . DS . 'database' . DS . 'connection.php';
    require_once ROOT . DS . 'application' . DS . 'models' . DS . 'usermodel.class.php';
    require_once ROOT . DS . 'application' . DS . 'controllers' . DS . 'usercontroller.class.php';
    require_once ROOT . DS . 'application' . DS . 'views' . DS . 'userview.class.php';
?>
O problema que ocorre é o seguinte, quando abro a página 'localhost/index.php', ele só exibe os elementos html e apenas até onde botei a função $view->getArray(). Segue o código fonte depois de executada a página:
view-source:localhost/index.php
<!doctype html>
<html>
    <head>
        <title>Object Oriented Programming</title>
        <meta charset="utf-8">
    </head>
    <body>
        <h1>User List</h1>

É a primeira vez que trabalho com orientação a objetos com PHP, então é provável que seja um erro besta e talvez comum, agradeço a ajuda de vocês.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,5k
×
×
  • Criar Novo...