0
I’m trying to create a architecture new based on a need and I’m having some difficulty.
So I decided to create an example minimum, complete and verifiable of the application.
It is a architecture MVC I am trying to modify in order to meet a personal need.
Well, follow the tree
conexao
Conexao.php
controle
CPessoas.php
modelo
MPessoas.php
visao
VPessoas.php
erros.php
index.php
Follows the files:
Connexion.php:
<?php
class Conexao {
private $host = "localhost";
private $db = "banco";
private $user = "ususarioBanco";
private $password = "senhaBanco";
private $conexao;
public function abreConexao() {
if (isset($this->conexao)) {
return $this->conexao;
} else {
$this->conexao = new mysqli($this->host, $this->user, $this->password, $this->db);
$this->conexao->set_charset("utf8");
return $this->conexao;
}
}
public function fechaConexao () {
if ($this->conexao != null) {
$this->conexao = null;
}
}
}
?>
Cpessoas.php:
<?php
require_once "../conexao/Conexao.php";
class CPessoas {
private $conexao;
public function __construct() {
$connection = new Conexao();
$conexao = $connection->abreConexao();
$this->conexao = $conexao;
}
public function cadastrar( $_pessoa ) {
$string = "INSERT INTO (nome, idade) VALUES (" . $_pessoa->getNome() . "," . $_pessoa->getIdade() . " )";
return $conexao->query( $string );
}
}
Mpessoas.php:
<?php
class MPessoas {
private $id;
private $nome;
private $idade;
public function __construct( $_nome, $_idade ) {
$this->nome = $_nome;
$this->idade = $_idade;
}
public function setId( $_Id )$this->id = $_id;
public function getId() return $this->id;
public function getNome() return $this->nome;
public function getIdade() return $this->idade;
}
Vpessoas.php:
<?php
require_once "../modelo/MPessoas.php";
require_once "../controle/CPessoas.php";
class VPessoas {
public function __construct() {}
public function novaPessoa( $_nome, $_idade ) {
$pessoa = new MPessoa( $_nome, $_idade );
}
public function cadastrar( $_pessoa ) {
return $pessoaComtrole->cadastrar( $_pessoa ) ? "Cadastrado com sucesso" : "Erro no cadastro";
}
}
php errors.
<?php
ini_set( "display_errors", true );
ini_set( "display_startup_erros", 1 );
error_reporting( E_ALL && E_NOTICE );
error_reporting( E_ALL | E_STRICT ); // PHP 5.3
error_reporting( E_ALL ); // Todas as outras versões
error_reporting(
E_ERROR |
E_WARNING |
E_PARSE |
E_NOTICE |
E_CORE_ERROR |
E_CORE_WARNING |
E_COMPILE_ERROR |
E_COMPILE_WARNING |
E_USER_ERROR |
E_USER_WARNING |
E_USER_NOTICE |
E_ALL |
E_STRICT
); // Todas as outras versões
?>
index php.
<?php
header( "Content-Type: text/html; charset=utf-8" );
require_once "erros.php";
require_once "visao/VPessoas.php";
$vpessoa = new VPessoas();
$pessoa = $vpessoa->novaPessoa( "Carlos", 49 );
$vpessoa->cadastrar( $pessoa );
?>
But, as expected, I would have one error:
Warning: require_once(../modelo/MPessoas.php): failed to open stream: No such file or directory in D:\Trabalhos\host\htdocs\mvc\visao\VPessoas.php on line 3
Fatal error: require_once(): Failed opening required '../modelo/MPessoas.php' (include_path='.;C:\php\pear') in D:\Trabalhos\host\htdocs\mvc\visao\VPessoas.php on line 3
Logo de inicio por ter incluido as classes fora da página index usando require_once.
Doubt: I wonder if we could make it like a import
of java
in order to avoid importação
of all the classes
in home page?
Dear Carlos, you probably want this: https://answall.com/q/88023/3635
– Guilherme Nascimento