Estou estudando a programação orientada a objetos (POO) na base da tentativa e erro.
Hoje eu queria criar um controle chamado diário, e dentro dele eu queria usar uma variável privada chamada diário. O PHP entrou num looping infinito, assim eu precisei mudar o nome da classe para controleDiário, e assim descobri porque os controladores tem o sufixo de Controller em seus nomes. Eu decidi usar o controle como prefixo.
Outra coisa bacana é a definição das variáveis utilizada dentro da classe como privada. Eu queria mudar para público, isso me pouparia de escrever pelo menos dois métodos. Mas veio um enorme peso na consciência e decidi não mexer no tipo das variáveis utilizadas dentro da classe, decidi mandar o resultado de três consultas dentro de um vetor. Enfim, o POO é chato, mas dá para fazer gambiarra.
arquivo mvc/controles/controleDiário.php
<?php
session_start();require $_SERVER['DOCUMENT_ROOT'].'/mvc/modelos/diário.php';require $_SERVER['DOCUMENT_ROOT'].'/mvc/modelos/funções.php';class controleDiário {private $diário;publicfunction __construct(){
$this->diário=new diário();}publicfunctioninício($dia){
$consultas=$this->diário->consulta($dia);
$lçtos=$consultas[0];
$somaDébito=$consultas[1];
$somaCrédito=$consultas[2];require $_SERVER['DOCUMENT_ROOT']."/mvc/visões/diário.php";exit;}}
$diário=new controleDiário();if(isset($_POST['novaData'])){$diário->início($_POST['novaData']);}if(isset($_GET)){$dia=date('Y-m-d');$diário->início($dia);}
arquivo mvc/modelos/diário.php
<?php
require $_SERVER['DOCUMENT_ROOT'].'/mvc/modelos/conexão.php';class diário extends conexão {private $pdo;publicfunction __construct(){
$this->pdo=conexão::instância();}publicfunction consulta($dia){
$stmt=$this->pdo->query("select sum(valor) as somaDébito from diário
where contaD>0 and dia='$dia'");
$somaDébito=$stmt->fetchAll(PDO::FETCH_ASSOC)[0]['somaDébito'];
$stmt=$this->pdo->query("select sum(valor) as somaCrédito from diário
where contaC>0 and dia='$dia'");
$somaCrédito=$stmt->fetchAll(PDO::FETCH_ASSOC)[0]['somaCrédito'];
$stmt=$this->pdo->query("select * from diário where
dia='$dia'");return[$stmt->fetchAll(PDO::FETCH_OBJ),$somaDébito,$somaCrédito];}}
arquivo mvc/visões/diário.php
<?php
include $_SERVER['DOCUMENT_ROOT']."/mvc/visões/menu.php";?><tableclass='table table-striped'>
Lançamentos do dia
<formmethod=postaction='../controles/controleDiário.php'>
<input type=date name=novaData value=<?=$dia?> onchange=submit()>
</form><th>lçto<th>contad<th>contac<th>valor<th>hist
<?php foreach($lçtos as $lçto):?><tr><td><?=$lçto->lçto?><td><?=$lçto->contad?><td><?=$lçto->contac?><tdclass=text-end><?=dec($lçto->valor)?><td><?=$lçto->hist?><?php endforeach;?><tr><td><td><td><td><?=dec($somaDébito)?><td>Soma dos Débitos
<tr><td><td><td><tdclass=text-danger><?=dec($somaCrédito)?><tdclass=text-danger>Soma dos Créditos
Pergunta
Frank K Hosaka
Estou estudando a programação orientada a objetos (POO) na base da tentativa e erro.
Hoje eu queria criar um controle chamado diário, e dentro dele eu queria usar uma variável privada chamada diário. O PHP entrou num looping infinito, assim eu precisei mudar o nome da classe para controleDiário, e assim descobri porque os controladores tem o sufixo de Controller em seus nomes. Eu decidi usar o controle como prefixo.
Outra coisa bacana é a definição das variáveis utilizada dentro da classe como privada. Eu queria mudar para público, isso me pouparia de escrever pelo menos dois métodos. Mas veio um enorme peso na consciência e decidi não mexer no tipo das variáveis utilizadas dentro da classe, decidi mandar o resultado de três consultas dentro de um vetor. Enfim, o POO é chato, mas dá para fazer gambiarra.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.