Ir para conteúdo
vailson

Iniciando no PHP - primeiro passo?

Recommended Posts

Olá pessoal, tudo bem?

Tenho uma aplicação rodando no MS Access. Sinto a necessidade de mudar para a web. Gostaria de ajuda em por onde começar. Já tenho um domínio e uma hospedagem. Literalmente não sei qual o primeiro passo a dar.

A aplicação que planejo tem apenas formulários e relatórios.

Agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está iniciando no PHP, inclusive a parte de server, e quer fazer uma migração, sugiro iniciar com Linux. 

 

Ambiente

A escolha do ambiente de desenvolvimento é importante, pois, a maioria das linguagens possui um ambiente de desenvolvimento específico (mesmo que possam ser desenvolvidas em qualquer tipo de ambiente). Isso não é diferente no PHP.

 

A maioria das ferramentas do PHP são nativas do Linux e portadas para outros ambiente, ou, apenas pegam carona na compatibilidade que um ambiente possui com o linux.

 

Recomendo a distro Debian, que pode ser utilizada como servidor e ajuda muito no desenvolvimento. A instalação do debian é simples. Você pode criar uma VM do zero, utilizando VirtualBox (ou algum outro programa de virtualização), ou baixar alguma imagem pronta para desenvolvimento na internet.

 

Outra jogada interessante é utilizar o Vagrant ou o Docker para gerenciar o ambiente de desenvolvimento .

 

Links úteis:

Usando o Vagrant como ambiente de desenvolvimento no Windows

Criando um ambiente de desenvolvimento PHP com Docker Compose

 

Configurando o Ambiente

Após a escolha do ambiente, e se sua escolha foi por um ambiente limpo (zerado), deve-se instalar o básico:

 

PHP

$ apt-get update
$ apt-get upgrade
$ apt-get install php

Será necessário permissão de admin, para entrar como admin, use apenas:

$ su

E insira a senha que cadastrou para o usuário root ao instalar o Debian.

 

Caso der erro na biblioteca do PHP, altere de php para php7.0:

$ apt-get install php7.0

Se utilizar apenas PHP, ele irá pegar a versão estável corrente.

 

Servidor

O PHP já possui um servidor para desenvolvimento embutido. Dessa forma, não é necessário instalar o Apache, fica a seu critério.

 

Basicamente, para iniciar o servidor PHP, basta navegar até a pasta que deseja que seja o root do seu projeto e iniciar o servidor, especificando uma porta de acesso:

$ cd /pasta/do/projeto/
$ php -S localhost:8000

Para acessar o sevidor, basta utilizar algum browser e acessar o endereço http://localhost:8000.

 

Caso desejes utilizar o apache:

$ apt-get install apache2

Será criada uma pasta no seguinte caminho:

/var/www/html/

É a partir daí que o seu projeto será executado. Algumas versões não possuem a pasta html, acredito que na versão atual possui (eu não utilizo mais apache para o desenvolvimento).

 

Links úteis:

Linux: Terminal Básico

Passo-a-passo como criar um servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin “LAMP” no Debian 9 Stretch

 

IDE

Isso é pessoal, pode escolher a que quiser, seja VI, VIM, PHPStorm, Zend Studio, Sublime, Kate, etc... Algumas são pagas e outras gratuitas. Particularmente, eu utilizo Kate pela simplicidade, leveza e limpeza rápida de formatação (não que outras não plataformas não tenham, mas a dele é muito rápida e leve) e Zend Studio, pois, zendo ZCPE eu possuo uma licença vitalícia.

 

Banco de dados

Assim como qualquer outra instalação, o banco de dados não fica de fora. Você deve instala-lo via apt-get. Fica a sua escolha, MySQL, MariaDB, PostgreSQL, etc..

 

Particularmente, eu utilizo PostgreSQL. Mas é uma preferências apenas por um server gratuito mais robusto que MySQL.

 

Considerações

Considere tudo isso apenas como dicas que vão lhe facilitar, no futuro, a interação com o desenvolvimento em PHP além de resolver diversas questões relacionadas aos ambientes.

 

Se quiser uma ideia mais fácil, baixe apenas algum stack LAMP (Linux, Apache, MySQL e PHP), tal qual WampServer, XAMPP ou EasyPHP, e terá um ambiente completo em uma máquina Windows/Linux.

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 netocazuza
      Gostaria que alguém me ajudasse a encontrar erro num código. Estou fazendo um curto na net, e tentando adaptar o código que funciona para ir aprimorando a aprendizagem. Então vou colocar dois códigos aqui, onde um funciona o outro não. O que funciona é o do curso com mais campos. O que fiz foi apenas adaptar esse código que funciona para uma quantidade bem menor, e ver se funciona. Os dois códigos abre o formulário, aparentemente consultam o banco com sucesso, porém só o original está alterando, certamente por algum erro meu. Mas já olhei trocentas vezes, postei dúvida lá no curso, e o cara não responde, então tô parado na aprendizagem por conta disso. Basicamente é um formulário de cadastro de transportadoras onde o usuário altera os dados de uma transportadora através desse formulário. Esse tá funcionando tudo certinho. Tentei reproduzir esse mesmo formulário, porém apenas com dois campos (cidade e estado), e mesmo assim não funciona. Lista certinho, mas não altera, por isso acho que é um erro simples. Segue os dois códigos pra que comparem:
      CÓDIGO QUE FUNCIONA:
      <?php require_once("conexao/conexao.php"); ?> <?php     if (isset($_POST["nometransportadora"])){         $nome = utf8_decode($_POST["nometransportadora"]);         $endereco = utf8_decode($_POST["endereco"]);         $cidade = utf8_decode($_POST["cidade"]);         $estado = $_POST["estados"];         $cep = $_POST["cep"];         $cnpj = $_POST["cnpj"];         $telefone = $_POST["telefone"];         $tID = $_POST["transportadoraID"];         // CRIAR O OBJETO PARA ALTERAR         $alterar = "UPDATE transportadoras ";         $alterar .= "SET ";         $alterar .= "nometransportadora = '{$nome}', ";         $alterar .= "endereco = '{$endereco}', ";         $alterar .= "cidade = '{$cidade}', ";         $alterar .= "estadoID = {$estado}, ";         $alterar .= "cep = '{$cep}', ";         $alterar .= "cnpj = '{$cnpj}', ";         $alterar .= "telefone = '{$telefone}' ";         $alterar .= "WHERE transportadoraID = {$tID}";         $operacao_alterar = mysqli_query($conecta, $alterar);         if (!$operacao_alterar){             die("Erro na alteração!");         }else {             header("location: listagem2.php");         }     }     // Consulta a tabela de transportadoras.     $tr = "SELECT * ";     $tr .= "FROM transportadoras ";     if (isset($_GET["codigo"])){         $id = $_GET["codigo"];         $tr .= "WHERE transportadoraID = {$id} ";     }else {         $tr .= "WHERE transportadoraID = 1 ";     }     $con_transportadora = mysqli_query($conecta, $tr);     if (!$con_transportadora){         die("Erro na consulta");     }     $info_transportadora = mysqli_fetch_assoc($con_transportadora);          // Consulta aos estados     $estados = "SELECT * ";     $estados .= "FROM estados ";     $lista_estados = mysqli_query($conecta, $estados);     if (!$lista_estados){         die("erro no banco");     } ?> <!doctype html> <html>     <head>         <meta charset="UTF-8">         <title>Curso PHP INTEGRACAO</title>                  <!-- estilo -->         <link href="_css/estilo.css" rel="stylesheet">         <link href="_css/alteracao.css" rel="stylesheet">     </head>     <body>         <?php include_once("_incluir/topo.php"); ?>                  <main>               <div id="janela_formulario">                 <form action="alteracao.php" method = "post">                     <h2>Alteração de Transportadoras</h2>                     <label for="nometransportadora">Nome da Transportadora</label>                     <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["nometransportadora"]) ?>" name = "nometransportadora" id = "nometransportadora">                     <label for="endereco">Endereço</label>                     <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["endereco"]) ?>" name = "endereco" id = "endereco">                     <label for="cidade">Cidade</label>                     <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["cidade"]) ?>" name = "cidade" id = "cidade">                     <label for="estados">Estados</label>                     <select id = "estados" name = "estados">                         <?php                              $meuestado = $info_transportadora["estadoID"];                             while ($linha = mysqli_fetch_assoc($lista_estados)){                             $estado_principal = $linha["estadoID"];                             if ($meuestado == $estado_principal){                         ?>                             <option value="<?php echo $linha["estadoID"] ?>" selected>                                 <?php echo utf8_encode($linha ["nome"]) ?>                             </option>                             <?php                             } else {                              ?>                                 <option value="<?php echo $linha["estadoID"] ?>">                                 <?php echo utf8_encode($linha ["nome"]) ?>                                 </option>                         <?php                              }                             }                         ?>                                              </select>                     <label for="cep">CEP</label>                     <input type = "text" value = "<?php echo ( $info_transportadora["cep"]) ?>" name = "cep" id = "cep">                     <label for="telefone">Telefone</label>                     <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["telefone"]) ?>" name = "telefone" id = "telefone">                     <label for="cnpj">CNPJ</label>                     <input type = "text" value = "<?php echo utf8_encode( $info_transportadora["cnpj"]) ?>" name = "cnpj" id = "cnpj">                     <input type = "hidden" name = "transportadoraID" value = "<?php echo $info_transportadora["transportadoraID"] ?>">                     <input type = "submit" value="Confirmar Alteração">                 </form>             </div>         </main>         <?php include_once("_incluir/rodape.php"); ?>       </body> </html>  
      CÓDIGO QUE NÃO FUNCIONA. (Lista tudo certinho, mas não altera, nem traz o estádo pré-checado).
      <?php require_once("conexao/conexao.php"); ?> <?php     if( isset($_POST["nomeCidade"]) ) {         $nomeCidade       = utf8_decode($_POST["nomeCidade"]);         $estado     = $_POST["estados"];         $cID        = $_POST["cidadeID"];                  // Objeto para alterar         $alterar = "UPDATE cidades ";         $alterar .= "SET ";         $alterar .= "nomeCidade = '{$nomeCidade}', ";         $alterar .= "estadoID = {$estado} ";         $alterar .= "WHERE cidadeID = {$cID} ";         $operacao_alterar = mysqli_query($conecta, $alterar);         if(!$operacao_alterar) {             die("Erro na alteracao");            } else {             header("location:alterarCidades.php");            }              }     // Consulta a tabela de cidades     $tr = "SELECT * ";     $tr .= "FROM cidades ";     if(isset($_GET["codigo"]) ) {         $id = $_GET["codigo"];         $tr .= "WHERE cidadeID = {$id} ";     } else {         $tr .= "WHERE cidadeID = 1 ";     }          $con_cidade = mysqli_query($conecta,$tr);     if(!$con_cidade) {         die("Erro na consulta");     }     $info_cidade = mysqli_fetch_assoc($con_cidade);          // consulta aos estados     $estados = "SELECT * ";     $estados .= "FROM estados ";     $lista_estados = mysqli_query($conecta, $estados);     if(!$lista_estados) {        die("erro no banco");      }     ?> <!doctype html> <html>     <head>         <meta charset="UTF-8">         <title>Alteração Cidades</title>         <!-- estilo -->         <link href="_css/estilo.css" rel="stylesheet">         <link href="_css/alteracao.css" rel="stylesheet">     </head>     <body>         <?php include_once("_incluir/topo.php"); ?>                  <main>             <div id="janela_formulario">                 <form action="alteracaoCidades.php" method="post">                     <h2>Alteração de Cidades</h2>                                          <label for="nomeCidade">Nome da Cidade</label>                     <input type="text" value="<?php echo utf8_encode($info_cidade["nomeCidade"])  ?>" name="nomeCidade" id="nomeCidade">                     <label for="estados">Estados</label>                     <select id="estados" name="estados">                          <?php                              $meuestado = $info_cidade["estadoID"];                             while($linha = mysqli_fetch_assoc($lista_estados)) {                                 $estado_principal = $linha["estadoID"];                                 if($meuestado == $estado_principal) {                         ?>                             <option value="<?php echo $linha["estadoID"] ?>" selected>                                 <?php echo utf8_encode($linha["nome"]) ?>                             </option>                         <?php                                 } else {                         ?>                             <option value="<?php echo $linha["estadoID"] ?>" >                                 <?php echo utf8_encode($linha["nome"]) ?>                             </option>                                                 <?php                                  }                             }                         ?>                     </select>                     <input type="hidden" name="cidadeID" value="<?php echo $info_cidade["cidadeID"] ?>">                     <input type="submit" value="Confirmar alteração">                                     </form>                </div>         </main>         <?php include_once("_incluir/rodape.php"); ?>     </body> </html>  
       
       
       
    • Por Emerson.Oliveira
      eu tenho uma tabela assim
       
      usuario        /      valor
       
      pedro          /       0,50
      joao            /       0,50
      maria         /       50,00
      carlos       /        300,00
      marcos    /         200,00
      paulo         /       49,00
       
       
      eu quero que 100,00  então vai somar os valores em ORDEM CRESCENTE e vai me mostrar por exemplo:
       
      pedro          /       0,50
      joao            /       0,50
      maria         /       50,00
      paulo         /       49,00
       
      total: 100,00
       
       

      se poder ajudar agradeço
    • Por VHolanda
      <?php if(isset($_POST['botaoenviar'])){ $nome = $_POST['nome']; $idade = intval($_POST['idade']); $salario = floatval($_POST['salario']); if(is_string($nome)) { if (is_int($idade)) { if (is_float($salario)) { } } } else{ echo "Informe tipos válidos"; } $funcionario = array('nome'=>"",'idade'=>"",'salario'=>""); } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> </title> </head> <body> <form action="" method="POST"> <p>Seu nome: <input type="text" name="nome" /></p> <p>Idade: <input type="text" name="idade[idade]" /></p> <p>Salário: <input type="text" name="salario" /></p> <p><input type="submit" name="botaoenviar" value="enviar"/></p> </form> </body> </html>  
    • Por Remazela
      Caros amigos.
      Recorro a ajuda dos amigos do grupo para que possam me auxiliar ou me dar uma luz no final do túnel.
       
      Tenho uma rotina que faz um calculo de diferença de horas, como por exemplo:
      Data Início: 21/06/2018     e    Hora Início: 15:00
      Data Fim...: 23/06/2018     e    Hora Fim..: 13:00
       
      Preciso que o sistema calcule que no dia: 23/06/2018 às 13:00 -> o status da cotação passa para 2, por exemplo.
       
      Fiz uma rotina e aparentemente funciona, mas não entendo o porque algumas vezes faz o calculo e outras não.
       
      Os campos na base de dados estão assim:
      `cotaDtInicio` DATE NOT NULL , `cotaHrsInicio` TIME NOT NULL , `cotaDtFim` DATE NOT NULL , `cotaHrsFim` TIME NOT NULL , `cotaStatus` INT(1) NOT NULL  
       
      A rotina está assim:
      <?php //Paginação da página $pag = isset($_GET['pag']) ? (int)$_GET['pag'] : 1; $maximo = '10'; //RESULTADOS POR PÁGINA $inicio = ($pag * $maximo) - $maximo; $sql_pegaAtivos = "SELECT * FROM cotacao WHERE clientes_clienteId = '$userClientes_clienteId' ORDER BY cotaNumero DESC LIMIT ".$inicio.','.$maximo; try{ $query_pegaAtivos = $conecta->prepare($sql_pegaAtivos); $query_pegaAtivos->bindValue(':clientes_clienteId',$userClientes_clienteId,PDO::PARAM_STR); $query_pegaAtivos->execute(); $resultado_pegaAtivos = $query_pegaAtivos->fetchAll(PDO::FETCH_ASSOC); $count_pegaAtivos = $query_pegaAtivos->rowCount(PDO::FETCH_ASSOC); }catch(PDOexception $error_pegaAtivos){ echo 'Erro ao pegar ativos'; } foreach($resultado_pegaAtivos as $resAtivos){ $cotaId = $resAtivos['cotaId']; $cotaNumero = $resAtivos['cotaNumero']; $cotaDtInicio = $resAtivos['cotaDtInicio']; $cotaHrsInicio = $resAtivos['cotaHrsInicio']; $cotaDtFim = $resAtivos['cotaDtFim']; $cotaHrsFim = $resAtivos['cotaHrsFim']; $cotaTitulo = $resAtivos['cotaTitulo']; $cotaObserva = $resAtivos['cotaObserva']; $cotaStatus = $resAtivos['cotaStatus']; $clientes_clienteId = $resAtivos['clientes_clienteId']; $desc_categ = $resAtivos['desc_categ']; $desc_pgto = $resAtivos['desc_pgto']; //Alterar o Status da Cotação para Analisar if($cotaStatus == '1'){ //Pega o Horário Atual date_default_timezone_set('America/Sao_Paulo'); //Calcula a Data Final com a Data Atual $data_atual = date("Y-m-d"); $data_atual = strtotime($data_atual); $dataFim = strtotime($cotaDtFim); $diferenca = $data_atual - $dataFim; $dias = floor($diferenca / 86400); $faltaDias = "{$dias}"; //Calcula a Hora Final com a Hora Atual $hora_atual = date("H:i:s"); $hora_atual = strtotime($hora_atual); $horaFim = strtotime($cotaHrsFim); $diferenca = $hora_atual - $horaFim; $hora = floor($diferenca / 3600); $minutos = floor(($diferenca / 60) % 60); $segundos = floor($diferenca % 60); $faltaHora = "{$hora}:{$minutos}:{$segundos}"; if ($faltaDias == '0' && $faltaHora >= '0') { $cotaStatus = '2'; $sql_cota = 'UPDATE cotacao SET cotaStatus = :cotaStatus WHERE cotaId = :cotaId'; try{ $query_cota = $conecta->prepare($sql_cota); $query_cota->bindValue(':cotaStatus',$cotaStatus,PDO::PARAM_STR); $query_cota->bindValue(':cotaId',$cotaId,PDO::PARAM_STR); $query_cota->execute(); } catch(PDOexception $error_novaCota) { echo 'Erro ao Editar o Produto '.$error_novaCota->getMessage(); } } } elseif($cotaStatus > '1') { $faltaDias = '0'; $faltaHora = '0'; } } ?>  
      Como faço para que quando o usuário logar no sistema, possa automaticamente realizar este calculo de datas e horas ?
       
      Grato,
       
      Renato
       
    • Por Bruno Cezar Costa
      Possuo um sistema clinico que e de codigo aberto , eu usava ele no aplicativo xamp para usar e fazer desenvs na aplicação.
      Agora eu hospedei ele na empresa Hostinguer, mas o cara que me fez as configurações nao se lembra o arquivo que ele colocou o sistema no ar
      Eu precisava atualizar este sistema , e gostaria de saber qual arquivo que altero e coloco as informações para que ele fiquei online.
      O cara que me fez isso nao trabalha mais la e eu nao sei.
      Quando utiliozo ele no xamp o sistema fica numa pasta chamada htdocs, foi esta pasta que subi na hospedagem , para colocar de xamp para online.
      O sistema e todo em php.
×

Informação importante

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