Jump to content
Andre Luizao

Qual a vantagem de se trabalhar em CLI no PHP ?

Recommended Posts

Lendo alguns artigos, li alguns deles dizendo que trabalhar no ambiente de linha de comando(CLI) e mais produtivo

- Qual a vantagem de se trabalhar em CLI?
- O que tem no CLI que é mais produtivo do que se trabalhar no browser?
- E aproveitando o post.. o que é o shell?? desenvolvimento de shell??

Share this post


Link to post
Share on other sites

Primeiro você tem que entender o que é Shell/Prompt. Sem isso, trabalhar em CLI nunca fará sentido.

O prompt do Windows é um tanto limitado, mas o Shell do Linux/Mac é bem mais amplo, com inúmeros comandos que ajudar em inúmeras tarefas diárias.

O PHP em CLI permite executar um script rapidamente em linha de comando, sem precisar iniciar servidor nem abrir browser. Lógico que HTML e Javascript não são interpretados.

Outra possibilidade é usar o Shell Interativo do PHP

Veja aqui as formas de execução do PHP: http://rberaldo.com.br/diferentes-formas-execucao-php/

Se quiser aprender sobre Shell: http://shellparaprogramadores.com.br/

  • +1 2

Share this post


Link to post
Share on other sites

Complementado a resposta do Beraldo, eu vejo que existem as vantagens e as facilidades.

As facilidades:

- Execução rápida de scripts e comandos;

- Execução rápida de bibliotecas que podem possuir interface gráfica ou integração: (PHPUnit, GIT/HG).

Vantagens:

- Milhares de bibliotecas que estão disponíveis apenas pela linha de comando (PHP Mess Detector, Composer, CodeSniffer, etc...);

- Velocidade de produção (possui um ganho por causa das facilidades);

- Macros ou combinações de scripts para realizar tarefas repetidas.

E por ai vai.

É claro que eu ainda uso uma IDE para programar em PHP e testo o HTML no navegador. Mas, para teste unitário, versionamento, criação de novos arquivos, manutenção do composer e uso de qualquer biblioteca, é tudo realizado via Shell.

  • +1 2

Share this post


Link to post
Share on other sites

Atualmente estou trabalhando em um projeto que muitas vezes preciso testar a saída que determinado método retorna e devido ser uma string gigantesca, jogo a saída para um arquivo e abro no Sublime Text por exemplo. Bem mais eficaz do que abrir no navegador.

// no prompt 
php -f arquivo.php > arquivoSaida.txt

Share this post


Link to post
Share on other sites
Em 02/08/2016 at 17:38, Marcos Xavier disse:

Atualmente estou trabalhando em um projeto que muitas vezes preciso testar a saída que determinado método retorna e devido ser uma string gigantesca, jogo a saída para um arquivo e abro no Sublime Text por exemplo. Bem mais eficaz do que abrir no navegador.


// no prompt 
php -f arquivo.php > arquivoSaida.txt

Fiquei curioso sobre como você faz isso!

Esse comando é no CLI ou abre isso no sublime text?

Share this post


Link to post
Share on other sites
Em 14/04/2017 at 01:02, codercss disse:

Fiquei curioso sobre como você faz isso!

Esse comando é no CLI ou abre isso no sublime text?

É em linha de comando. Não uso o sublime, mas o que ele quis dizer é que ele grava a saída e abre no sublime.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By terra
      Olá,
       
      Preciso pegar o valor desse select
       
       
       aqui nessa query
       
       
      Agradeço qualquer ajuda
    • By violin101
      Caros amigos, saudações...
       
      Gostaria de tirar uma dúvida com os amigos se tem a possibilidade de fazer e como fazer.
       
      A pasta MODELS tem como fazer separado como a pasta CONTROLLERS, por exemplo:
       
      a pasta controller consigo fazer assim: PASTA e SUBPASTAS.
       
      controller
      |__ Admin
      |_____ Estoque
      |_______ Financeiro
       
      na pasta Models, fica tudo junto as funções, como por exemplo:
      admin_model.php
      caixa_model.php
      vendas_model.php
      e etc
       
      na Models, tem como fazer como na pasta controller, assim:
      |__ Admin
           |__ admin_model.php
      |_____ Estoque
                 |__ estoque_model.php
      |_______ Financeiro
                    |__ caixa_model.php
       
      para chamar uma função no controller, faço desta forma: 
      <?php $this->load->model('categorias_model'); $this->data['categorias'] = $this->categorias_model->getActive('categorias', 'categorias.idCategorias,categorias.categoria'); ?>  
      Conforme minha dúvida acima, como seria o caminho para chamar esta função:   
      $this->load->model('categorias_model');
       
       
      Grato,
       
      Cesar
    • By Samuel Pietro
      Tenho um select em PDO e preciso que a consulta retornada vire uma variavel, mas a variavel só pega a ultima linha da tabela e eu preciso que pegue todas as linhas que existirem.
       
      $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_OBJ); foreach ($Sql as $SqlReg): $conteudo_meio = picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Como eu poderia está fazendo isto?
    • By peterstefan
      Bom dia, estou fazendo uma cadastro via rest e estou utilizando o curl para cadastrar no webservice...
      Meu código está cadastrando tudo certinho, porem quando ele cadastra e mostra o retorno que foi cadastrado com sucesso ele fica o AGUARDE, CARREGANDO e não para.. não sei oque esta faltando pq já tentei varias coisas e não deu certo... 
       
       
       
      $Data = [ "nomeRazaoSocial" => $PostData['nomeRazaoSocial'], "identMF" => $PostData['identMF'], "email" => $PostData['email'], "telefone" => $PostData['telefone'], "senhaProvisoria" => $PostData['senhaProvisoria'] ]; $DataString = json_encode($Data); $curl = curl_init(WEBSERVICECADASTRO); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $DataString); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($DataString)) ); $result = curl_exec($curl); if ($result) { $jSON['success'] = "<i class='icon-checkmark'></i>Pronto, cadastro foi realizado com sucesso!"; }else{ $jSON['error'] = "<i class='icon-warning'></i>Oops! Erro ao cadastrar! Por favor, tente novamente!"; }  

       

    • By RSN
      Boa Noite,
      Preciso enviar uma consulta sql no corpo do e-mail, porém não estou conseguindo concatenar o laço while.
      <?php include_once('conexao.php'); require 'PHPMailer/PHPMailerAutoload.php'; $resultado = mysql_query("SELECT * FROM cupom WHERE FlagEstorno = 1;"); $linhas = mysql_num_rows($resultado); $mensagem = '<div class="x_content"> <table id="datatable-buttons" class="table table-striped table-bordered"> <thead> <tr> <th>Loja</th> <th>Nro Cupom</th> <th>Data</th> <th>Operador</th> </tr> </thead> <tbody> while($linhas = mysql_fetch_array( $resultado)){ echo " <tr>"; echo "<td>".$linhas['nroloja']."</td>"; echo "<td>".$linhas['NroCupom']."</td>"; echo "<td>".$linhas['DataProc']."</td>"; echo "<td>".$linhas['Operador']."</td>"; echo " </tr>"; }'; $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->Username = ''; $mail->Password = ''; $mail->Port = 587; $mail->setFrom(''); $mail->addReplyTo(''); $mail->addAddress('', 'Nome'); $mail->isHTML(true); $mail->Subject = 'Assunto do email'; $mail->Body = $mensagem; $mail->AltBody = 'Para visualizar essa mensagem acesse http://site.com.br/mail'; //$mail->addAttachment('/tmp/image.jpg', 'nome.jpg'); if(!$mail->send()) { echo 'Não foi possível enviar a mensagem.<br>'; echo 'Erro: ' . $mail->ErrorInfo; } else { echo 'Mensagem enviada.'; } ?>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.