Jump to content
Fórum Script Brasil
  • 0

Erro desconhecido.


LucasFerreira_

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...