Ir para conteúdo

Recommended Posts

Caros, bom dia.

Fiquei com dúvida, mas acho que estou postando no local correto.

 

Sou iniciante no desenvolvimento Web (front e back). Gostei muito do padrão MVC (PHP) e por isso descobri a existência do Cake PHP.

 

Percebi grande dificuldade em usar estas formas de programar, principalmente por não entender muito de orientação a objeto. Por isso estou fazendo um curso sobre.

 

Mas ainda resta dúvidas: um iniciante DEVE usar padrões (acho que sim) como MVC e frameworks (não tenho certeza) como CakePHP?

 

Principalmente no caso de frameworks, me dá a sensação que estou deixando de aprender certas partes da linguagem, pois o framework faz elas por mim. Sei que são importantes para ganho de tempo e otimização, mas como iniciante tenha meus receios.

 

Alguém pode me ajudar? Conte sua experiência do início de carreira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Wesley Balestrini, beleza!

Eu entendo que um framework pode acelerar ou atrapalhar sua aprendizagem. Se você for curioso, e procurar entender como as ferramentas fazem suas "magicas", assim como tentar reproduzi-las, ira te ajudar e muito! Caso contrario, pode acelerar o seu trabalho, a aprendizagem não.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 11/01/2019 at 12:18, EdCesar disse:

@Wesley Balestrini, beleza!

Eu entendo que um framework pode acelerar ou atrapalhar sua aprendizagem. Se você for curioso, e procurar entender como as ferramentas fazem suas "magicas", assim como tentar reproduzi-las, ira te ajudar e muito! Caso contrario, pode acelerar o seu trabalho, a aprendizagem não.

Obrigado pela resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Jonas Ribeiro Nascimento
      Estou criando meu próprio mvc php para adquirir mais conhecimento.
      Mas estou me deparando com uma coisa muita estranha, eu perco a $_SESSION de uma view para outra view
      Fiz um codigo simples pra testar.a.php ----- view a.php
      <?php session_start(); $_SESSION['teste'] = 'Funcionou'; echo $_SESSION['teste']; ?> <?php session_start(); echo $_SESSION['teste']; // Notice: Undefined variable: _SESSION in var_dump($_SESSION); // Notice: Undefined variable: _SESSION in NULL ?> <?php namespace Sis\Classes; use App\Model\ClassLogin; use Sis\Traits\TraitGetIp; class ClassSession { private $login; private $timeSession = 1200; private $timeCanary = 300; public function __construct(){ if(session_id() == ''){ ini_set("session.save_handler", "files"); //Cabeçalhos somente atraves de arquivos ini_set("session.use_cookies", 1); //Habilita o uso de cookies ini_set("session.use_only_cookies", 1); //Só pode habilitar a seção atraves de coockies ini_set("session.cookie_domain", DOMAIN); //Só aceita coockies vindo do nosso sistema ini_set("session.cookie_httponly", 1); //Só aceita script php e não deixa o javascript alterar o sistema if(DOMAIN != "localhost"){ ini_set("session.cookie_secure", 1); //Para trabalhar com o SSL do servidor ativo } /*Criptografia das nossas sessions*/ ini_set("session.entropy_length", 512); // ini_set("session.entropy_file","/dev/urandom"); ini_set("session.hash_function", "sha256"); ini_set("session.hash_bits_per_character", 5); session_start(); } $this->login = new ClassLogin(); } #Proteger contra roubo de sessão public function setSessionCanary($par=null){ session_regenerate_id(true); if($par == null){ $_SESSION['canary']=[ "birth" => time(), "IP" => TraitGetIp::getUserIp() //Pega o ip do usuario ]; }else{ $_SESSION['canary']['birth']=time(); } } #Verificar a integridade da sessão public function verifyIdSessions(){ if(!isset($_SESSION['canary'])){ $this->setSessionCanary(); } if($_SESSION['canary']['IP'] !== TraitGetIp::getUserIp()){ $this->destructSessions(); $this->setSessionCanary(); } if($_SESSION['canary']['birth'] < time() - $this->timeCanary){ $this->setSessionCanary("Time"); } } #Setar as sessões do nosso sistema public function setSessions($Email){ $this->verifyIdSessions(); $_SESSION['Login'] = true; $_SESSION['Time'] = time(); $_SESSION['Nome'] = $this->login->getIssetSession($Email)['data']['Nome']; $_SESSION['Email'] = $this->login->getIssetSession($Email)['data']['Email']; $_SESSION['Permissoes'] = $this->login->getIssetSession($Email)['data']['Permissoes']; } #Validar as páginas internas do sistema public function verifyInsideSession(){ $this->verifyIdSessions(); if(!isset($_SESSION['Login']) || !isset($_SESSION['Permissoes']) || !isset($_SESSION['canary'])){ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); }else{ if($_SESSION['Time'] >= time() - $this->timeSession){ $_SESSION['Time']=time(); }else{ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); } } } #Destruir as sessions existentes public function destructSessions(){ foreach (array_keys($_SESSION) as $key) { unset($_SESSION[$key]); } } #testar public function testarSessions(){ echo 'oiiiiiiiiiiiiiiiiiiiiiiooooooooooo'; } }

    • Por Allan Carlos dos Santos G
      Bom dia Pessoal, Gostaria de saber como Instalar e colocar pra rodar a versão do Zend PHP 1.11.11, tenho tido dificuldade de achar material na internet e se puderem ajudar, obrigado!
    • Por thewesker
      Estou escrevendo uma aplicação MVC em PHP e a estrutura de diretórios é a seguinte:
      - root ¬ app ¬ controllers ¬ models ¬ views ¬ core ¬ config ¬ public Na pasta “app” fica as camadas MVC. Em “controllers” coloco classes que vão receber dados e acionar models e/ou renderizar views. Nos “models” coloco basicamente as entidades do banco de dados e suas operações. Em “views” coloco as páginas com código html + php para exibição de dados No “core” coloco classes e/ou arquivos genéricos (tenho planos de usar essa mesma base para desenvolver outras aplicações futuramente, uma espécie de microframework.) No entanto surgiu duas classes um pouco diferentes, uma delas trabalha com datas e realiza operações como conversão e cálculo entre datas, a outra cria e gerencia múltiplas threads. Tenho dúvida em qual camada devo colocá-las, já que nenhuma delas fazem acesso a banco de dados ou arquivos e nem emite saídas, apenas retornam valores.
       
      Devo criar uma camada adicional? Qual? Devo colocá-la em um das camadas já existentes?  
      Obs: qualquer informação adicional que possa ser útil é sempre bem-vinda!
    • Por Jonas Ribeiro Nascimento
      Ola a todos e agradeço desde já
      Tenha a classe de validação do form onde pega todos os erros do form:
      // Validação final do cadastro public function validateFinalCadastro($arrVar) { if(count($this->getErro())>0){ $arrResponse=[ "retorno"=>"erro", "erros"=>$this->getErro() ]; }else{ $arrResponse=[ "retorno"=>"success", "erros"=>null ]; } return json_encode($arrResponse, JSON_UNESCAPED_UNICODE); } Aqui tenho o Controller que passa para view:
      public function teste() { //echo 'esse é um teste'; $this->recVariaveis(); $validate = new ClassValidate(); $validate->validateFields($_POST); $validate->validateEmail($this->Email); $validate->validateIssetEmail($this->Email); $validate->validateData($this->DataNascimento); $validate->validateCpf($this->Cpf); $validate->validateConfSenha($this->Senha,$this->SenhaConf); $validate->validateStrongSenha($this->Senha); $validate->validateCaptcha($this->gRecaptchaResponse); $validate->validateFinalCadastro($this->arrVar); } Se eu dar um echo, print ou vardump na $validate->validateFinalCadastro($this->arrVar); consigo passar ela pra view e apresentar o erro ...ele apresenta depois do fechamento do html da pagina...
      {"retorno":"erro","erros":["Email já cadastrado!","Utilize uma senha mais forte!","Sistema de segurança foi ativado! Atualize a página e tente novamente ou aguarde mais um pouco."]}
      Aqui esta o ajax sem datatype: 'json'
      Sem datatype: 'json' eu entro no success reponse mais caio no else, porque o response.retorno esta sem o datatype: 'json'.
      $('#FormCadastroClientes').on('submit', function(event){ event.preventDefault(); var dados=$(this).serialize(); console.log(dados); $.ajax({ url: getRoot()+'CadastroClientes/teste', type: 'post', contentType: "application/x-www-form-urlencoded;charset=UTF-8", data: dados, success: function (response) { $('.retornoCad').empty(); if(response.retorno == 'erro'){ getCaptcha(); $.each(response.erros,function(key,value){ $('.retornoCad').append(value+''); }); }else{ $('.retornoCad').append('Dados inseridos com sucesso!'); } }, error: function (response, jqXHR, request, status, errorThrown, erro) { console.log(response); //alert(dados); console.log(dados); //alert(jqXHR); console.log(jqXHR); //alert(request); console.log(request); //alert(status); console.log(status); //alert(errorThrown); console.log(errorThrown); //alert(erro); console.log(erro); }, complete: function (jqXHR, textStatus) { //colocar aqui algo que deseja que faça ao terminar todo o processo (finnaly) } }); Ajax com datatype: 'json' nao consigo entrar no success ele já cai no erro
      $('#FormCadastroClientes').on('submit', function(event){ event.preventDefault(); var dados=$(this).serialize(); console.log(dados); $.ajax({ url: getRoot()+'CadastroClientes/teste', type: 'post', dataType: 'json', data: dados, success: function (response) { $('.retornoCad').empty(); if(response.retorno == 'erro'){ getCaptcha(); $.each(response.erros,function(key,value){ $('.retornoCad').append(value+''); }); }else{ $('.retornoCad').append('Dados inseridos com sucesso!'); } }, error: function (response, jqXHR, request, status, errorThrown, erro) { console.log(response); //alert(dados); console.log(dados); //alert(jqXHR); console.log(jqXHR); //alert(request); console.log(request); //alert(status); console.log(status); //alert(errorThrown); console.log(errorThrown); //alert(erro); console.log(erro); }, complete: function (jqXHR, textStatus) { //colocar aqui algo que deseja que faça ao terminar todo o processo (finnaly) } }); Observações: - Consigo inserir no banco tudo ok. - Consigo apresentar o rertun json_encode direto na view - Consigo entrar no success do ajax sem usar datatype: 'json' não entro no if para ler o array mais entro no else.
      Eu recebo esse erros no console.log
      No response eu teria que receber o return do json_encode e não recebo. O que eu recebo é o html da view.
      O ajax esta esperando um retorno em json e nao o html da pagina.
      parsererror SyntaxError: "JSON.parse: unexpected character at line 1 column 1 of the JSON data"
      Obrigado a todos.....atecipadamente
       
       
    • Por guzulino
      Boa tarde pessoal, eu estou desenvolvendo um projeto no qual ele deve ter um sistema de post de notícias, eu comecei a pesquisar e percebi que seria muito complicado fazer na mão passo a passo, então comecei a ver como funcionam os posts dos fóruns, tipo o iMasters mesmo, bem nesse mesmo sentido, gostaria de saber se alguém tem alguma luz de como consigo criar isso, estou tentando achar algum framework que eu consiga editar para ficar como eu quiser mas está complicado conseguir algum, se alguém souber de alguém só postar aí. Valeu.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.