Eu cansei de ver os tutoriais espalhados na internet e também das sugestões do Bard. Eu estou indignado. Eu sou o único usuário no planeta que não pode escrever "localhost/astudy" no navegador. Agora, para contornar o problema estou escrevendo "localhost/a_study". Claro que dá para resolver isso com um curso de pós graduação de WampServe ou Windows 11, mas a minha meta era estudar o MVC.
Assim, a minha saída para estudar o MVC é esquecer os tutoriais. Nada de mexer no .htacess, nada de mexer no Composer, nada de copiar o Router.php do Bard, e nada de criar as pastas Controllers, Models e Views.
Assim, tudo o que restou na pasta a_study foi o index.php. Logo, é nele que vou começar o meu segundo código MVC.
Todos os tutoriais usam o método POST. Só que eu não consigo enxergar nada no cabeçalho do navegador. Como sou novato no MVC, nada me impede de usar o método GET.
Eu consegui colocar algumas classes dentro do index.php, mas eu não consegui criar uma classe que simulasse um formulário em HTML. Tentei fazer assim:
classe viewLogin {
private $viewLogin;
public function __construct() {
$this->viewLogin = "<form><input name=nome></form><?=$mensagem?>";}
e o PHP reclamou que a variável $mensagem não estava definida. Eu não tive outra escolha senão criar o arquivo viewLogin.php com o HTML correspondente.
Dentro do index.php eu não preciso mais usar o comando require_once ou include, eu já vou direto na classe assim:
(new LoginController)->login();
E assim, consegui montar o meu segundo arquivo painel.php, ou seja, em menos de duas horas eu consegui o que eu não consegui em todo mês.
Mas na medida que o index.php foi expandindo, eu fiquei imaginando como evitar de escrever if(isset($_GET['key'])){...} para cada formulário que eu ia criando, eu queria a um GET para todos os formulários, inclusive um para o próprio index.php que não tem nenhum GET. Olha só como ficou bacana:
index.php
<?php
if($_GET==null){(newLoginController)->login();exit;}switch(key($_GET)){case'nome':(newLoginController)->verifica();break;case'nomeTime':(newTimes)->incluir();break;case'alterarTime':(newTimes)->alterar($id,$nome,$email,$senha,$telefone);break;case'excluirTime':(newTimes)->excluir($id,$nome);break;}classLoginController{publicfunction login($mensagem=null,$nome=null){
$times=(newTimes)->listaTimes();
require_once 'viewLogin.php';}publicfunction verifica(){
$nome=$_GET['nome'];
$senha=$_GET['senha'];if($nome==' NOVO CADASTRO'){
require_once 'viewTimeCadastrar.php';exit;}if($senha!==(newTimes)->senha($nome)|| $senha=null){
$times=(newTimes)->listaTimes();
$mensagem="Senha não bate!";
require_once 'viewLogin.php';exit;}
require_once 'viewPainel.php';}}classConexao{private $conexao;publicfunction __construct(){
$this->conexao=new mysqli("localhost","root","","u835212901_campbets");}publicfunction consulta($sql){
$query=$this->conexao->query($sql);return $query->fetch_all(MYSQLI_ASSOC);}publicfunction modifica($sql){return $this->conexao->query($sql);}}classTimes{publicfunction incluir(){
$nome=$_GET['nomeTime'];
$email=$_GET['email'];
$senha=$_GET['senha'];
$telefone=$_GET['telefone'];
$sql="insert into times (nome,email,senha,telefone) values
('$nome','$email','$senha','$telefone')";
$fetch=(newConexao)->modifica($sql);
$mensagem="Cadastro do time $nome efetuado";
require_once 'viewLogin.php';}publicfunction listaTimes(){
$fetch=(newConexao)->consulta("select * from times order by nome");return json_decode(json_encode($fetch));}publicfunction senha($nome){
$fetch=(newConexao)->consulta("select senha from times where nome='$nome'");return $fetch[0]['senha'];}publicfunction excluir($id,$time){(newConexao)->modifica("delete from times where id=$id");
$mensagem="time $time retirado do banco de dados";
require_once 'viewLogin.php';}publicfunction alterar($id,$nome,$email,$senha,$telefone){(newConexao)->modifica("update times set nome=$nome, email=$email,
senha=$senha,telefone=$telefone where id=$id");
$mensagem="time $nome atualizado";
require_once 'viewLogin.php';}}class jogadores {publicfunction incluir(){
require_once 'viewCadastrarJogador.php';}publicfunction alterar(){}publicfunction excluir(){}}
É óbvio que isso é um péssimo exemplo de programação, mas foi assim que comecei a aprender a usar o PHP em 2020. Tudo na base da tentativa e erro.
Pergunta
Frank K Hosaka
Eu cansei de ver os tutoriais espalhados na internet e também das sugestões do Bard. Eu estou indignado. Eu sou o único usuário no planeta que não pode escrever "localhost/astudy" no navegador. Agora, para contornar o problema estou escrevendo "localhost/a_study". Claro que dá para resolver isso com um curso de pós graduação de WampServe ou Windows 11, mas a minha meta era estudar o MVC.
Assim, a minha saída para estudar o MVC é esquecer os tutoriais. Nada de mexer no .htacess, nada de mexer no Composer, nada de copiar o Router.php do Bard, e nada de criar as pastas Controllers, Models e Views.
Assim, tudo o que restou na pasta a_study foi o index.php. Logo, é nele que vou começar o meu segundo código MVC.
Todos os tutoriais usam o método POST. Só que eu não consigo enxergar nada no cabeçalho do navegador. Como sou novato no MVC, nada me impede de usar o método GET.
Eu consegui colocar algumas classes dentro do index.php, mas eu não consegui criar uma classe que simulasse um formulário em HTML. Tentei fazer assim:
classe viewLogin {
private $viewLogin;
public function __construct() {
$this->viewLogin = "<form><input name=nome></form><?=$mensagem?>";}
e o PHP reclamou que a variável $mensagem não estava definida. Eu não tive outra escolha senão criar o arquivo viewLogin.php com o HTML correspondente.
Dentro do index.php eu não preciso mais usar o comando require_once ou include, eu já vou direto na classe assim:
(new LoginController)->login();
E assim, consegui montar o meu segundo arquivo painel.php, ou seja, em menos de duas horas eu consegui o que eu não consegui em todo mês.
Mas na medida que o index.php foi expandindo, eu fiquei imaginando como evitar de escrever if(isset($_GET['key'])){...} para cada formulário que eu ia criando, eu queria a um GET para todos os formulários, inclusive um para o próprio index.php que não tem nenhum GET. Olha só como ficou bacana:
É óbvio que isso é um péssimo exemplo de programação, mas foi assim que comecei a aprender a usar o PHP em 2020. Tudo na base da tentativa e erro.
Editado por Frank K HosakaLink para o comentário
Compartilhar em outros sites
1 resposta 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.