CONFIGURAR FTP OU SFTP NO PHPSTORM

Para configurar o FTP ou o SFTP no PhpStorm, navegue até o menu

Tools -> Deployment -> Browse Remote Host

Na tela que se abre a direita dentro do PhpStorm, clique nos três pontinhos (...) pra entrar na tela de configuração.




No campo SFTP host, coloque o endereço host do seu servidor de arquivo remoto (Exemplo: 199.166.400.111 ou www.nomeServer.com), e depois preencha o campo Port(se precisar), User Name e Password, e clique no botão Test SFTP connection...(ao lado do campo SFTP host) para verifica se foi tudo preenchido corretamente. Caso o preenchimento esteja correto, dará uma mensagem de Successfully Connected ...

Na aba "Mappings", informe o diretório do seu projeto local, e informe o diretório do mesmo projeto local só que no servidor remoto de arquivos,  para que os mesmos fiquem sincronizados quando fizer uma alteração em um arquivo localmente, o mesmo após submetido ao repositório também seja automaticamente enviado para o servidor de arquivo remoto e assim substituir o arquivo pelo atualizado.


Clique em no botão OK, e pronto, seu projeto já está sincronizado com o projeto remoto.

Caso tenha alguma dúvida, deixe sua mensagem nos comentários que estarei respondendo.

CONFIGURANDO E INTEGRANDO O TORTOISESVN NO PHPSTORM

O plugin SVN instalado no PHPSTORM não está funcionando com a nova versão do TortoiseSVN (enquanto escrevia este post TortoiseSVN 1.11 e PHPSTORM 2018.2.5 IDEA 13.5).

Portanto, não é possível integrar o plugin Subversion do PHPStorm no TortoiseSVN.

Para resolver isso, você deve baixar e instalar o VisualSVN e o TortoiseSVN

https://www.visualsvn.com/files/VisualSVN-5.2.2.msi
https://www.visualsvn.com/files/TortoiseSVN-1.10.2.28392-x64-svn-1.10.3.msi

Depois ir na pasta "bin"(C:\Program Files (x86)\VisualSVN\bin) e copiar todos os arquivos para o diretório "bin"(C:\Program Files\TortoiseSVN\bin) do TortoiseSVN.

Agora você deve configurar a integração do PHPStorm para que ele use o novo cliente SVN baixado.

No PhpStorm, no menu File-> Settings-> Version Control -> Subversion, vá no campo "svn", navegue até o arquivo "svn.exe" no caminho C:\Program Files\TortoiseSVN\bin\svn.exe.

Pronto, agora é só fazer o checkout do seu projeto que está em um repositório externo, indo no menu VLC->Brawse VLC Repository->Brawse Subversion Repository

O TortoiseSVN é um cliente Subversion gratuito do Windows.

O VisualSVN usa o TortoiseSVN para a maioria dos diálogos. Mas o assistente "Adicionar Solução", o comando "Obter Solução" e a integração do Visual Studio (ícones de estado, operações de arquivo transparentes, etc.) não dependem do TortoiseSVN.

UPLOAD DE ARQUIVOS PESADOS PHP

Hoje precisei aumentar o tamanho limite permitido para fazer upload de arquivos grandes no php sem a necessidade de alterar o arquivo de configuração PHP.ini.

Instanciei a classe UploadHandler.php, onde já faz todo processo de upload no php.

Então segue abaixo o código que joguei no arquivo .htacess do meu projeto e funcionou perfeitamente.


php_value memory_limit 400M
php_value post_max_size 100M
php_value upload_max_filesize 120M
php_value max_execution_time 1800
php_value session.gc_maxlifetime 3600
  
O parâmetro: memory_limit, aumentamos o valor máximo de memória em bytes que um script pode alocar para “400MB”. O valor padrão é “128MB”, caso precise de mais espaço é só aumentar o valor.
O parâmetro: post_max_size, aumentamos o tamanho máximo de dados a ser enviados via POST. O valor padrão e “8MB”, no nosso script aumentamos para “100MB”.
O parâmetro: upload_max_filesize, aumentamos o tamanho máximo do arquivo que faremos o upload para “120MB”. O padrão é “2MB”.
O parâmetro: max_execution_time, aumentamos a quantidade de segundos de execução do script para 30 minutos. O padrão e 30 segundos.
O parâmetro: session.gc_maxlifetime, aumentamos em segundo o tempo de vida de sessão para uma hora. O padrão e 24 minutos.

Abaixo o método que criei em php para fazer upload com a class UploadHandler.php

    function upload(){
         error_reporting(E_ALL | E_STRICT);
          ///IMPORTA A CLASS UploadHandler.php
           require(APPLICATION_PATH."/../public/js/jquery/jQuery-File-Upload-9.5.7/server/php/UploadHandler.php");     

          ////CRIA ARRAY COM INFORMAÇÕES QUE SERÃO PASSADAS PARA CLASS
         $options = array('upload_dir'=>$caminhoArquivo, 'upload_url'=>$caminhoArquivo); ///informo onde será armazenado o arquivo após o upload
        $upload_handler = new UploadHandler($options); //passo o array com as informações de upload para class
        $file = $upload_handler->file; ///recebo os dados do arquivo após upload
        return $file->name; ////retorna o nome do arquivo
}


⟾Para dúvidas, sugestões ou agradecimentos, deixe seu comentário.

INLUIR UM ARQUIVO JAVASCRIPT DENTRO DE UM CÓDIGO JAVASCRIPT

Os arquivos html não reconhecem códigos na linguagem php, então pra fazermos qualquer importação ou execução de função, utilizamos o javascript, linguagem esta que o html compreende.

Precisei importar arquivos ".js" para dentro do html e só sabia fazer isso em php, foi ai então que pesquisei e aprendi sobre o como importar arquivos ".js" para dentro do código javascritp descrito dentro do arquivo html. Segue o código abaixo:

Com javascript: var imported = document.createElement('script'); imported.src = 'cliente.js'; document.head.appendChild(imported); Com jQuery: $.getScript("produtos.js", function(){ alert("Script loaded but not necessarily executed."); });

PEGAR RETORNO DA FUNÇÃO AJAX DENTRO DE OUTRA FUNÇÃO

Bati cabeça para pegar o retorno do ajax que ficava dentro de outra função. Declarei uma variável global de retorno que fica dentro da função de fora do ajax, e por fim atribui esta variável para receber o retorno do ajax e automaticamente passar para o retorno de fora através da variável global.

Mais até aí ainda não funcionava, até eu conhecer o parâmetro do ajax chamado async que fez toda diferença ativando por fim a passagem do retorno do ajax para o retorno de da função de fora. Exemplo abaixo:

No JavaScript: function verificarCodItemPdf() { var r = true; //variável global declarada $.ajax({ url:"", data:"", type: "post", dataType: 'json', async: false, //parâmetro ajax para liberar seu retorno a função de fora beforeSend: function () {}, success: function (resp) { if (resp) { r = true; //variável global recebendo o retorno do ajax } else { r = false; //variável global recebendo o retorno do ajax } } }) return r; //variável global passando o retorno do ajax para o retorno da função de fora }

FORMATAR CAMPO DATA NO SQL E BUSCAR OS DADOS QUE ESTÃO OS DADOS QUE ESTÃO COM O ANO ATUAL

Fazendo consulta pegando o campo "dt_criacao" que contem datas completas(dia/mês/ano) com o ano atual. Utilizando o "to_char" ao campo "dt_criação", será retornado deste campo apenas o ano "YYYY". Utilizando o "to_char" ao campo "dt_criação", será retornado deste campo apenas o ano "YYYY". Se caso fosse querer retornar o dia utilizando o "to_char", então no lugar de "YYYY" seria o "DD" e para o mês o "MM". Se caso fosse querer retornar o dia utilizando o "to_char", então no lugar de "YYYY" seria o "DD" e para o mês o "MM".
EXEMPLO: select * from suaTabela where to_char(dt_criacao,'YYYY') = '" . date("Y") . "'";

PEGAR NOME DOS ARQUIVOS QUE ESTÃO DENTRO DE UMA PASTA VIA FTP COM PHP

$dados = array( 'host' => "host_ftp", 'usuario' => "usuario_ftp", 'senha' => "senha_ftp", 'porta' => "porta_ftp" ); $fconn = ftp_connect($dados["host"],$dados["porta"]); if (!ftp_login($fconn, $dados["usuario"], $dados["senha"])) { return array("results" => false, "msg" => 'Não foi possível conectar-se ao ftp. Verifique as configurações de conexão do ftp se estão corretas.'); }else{ $pasta = ftp_rawlist($fconn, "public_html/diretorioDaPasta");/// diretório até a pasta q deseja lêr os arquivos. $i = 0; $array = array(); foreach ($pasta as $item) { $array[$i] = $item; $i++; } print_r(array); }

Centralizar horizontal e vertical uma div dentro de outro elemento CSS

<html>
<body>
<style>  
        #divFora{width:200px;height:200px;border: 1px solid;position: relative}
        #divDentro{
         position: absolute;  
         top: 50%;  
         transform: translateY(-50%);  
         right: 0;  
         left: 0;  
         margin: 2px;
        word-wrap: break-word;
        border: 1px solid red;
        }
    </style>  

 <div id="divFora">
    <div id="divDentro">Conteúdo da div dentro</div>
 </div>
</body>
</html>

Função php para pegar cotação do dolar para real

<?php  
     function cotacaoDolar(){  
       $url = "http://www.dolarhoje.net.br";  
       $ch = curl_init();  
        $timeout = 0;  
        curl_setopt($ch, CURLOPT_URL, $url);  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
        $cont = curl_exec ($ch);  
        curl_close($ch);  
        $cont = preg_replace('/\n/',' ', $cont);  
        $cont = preg_replace('/\s/',' ', $cont);  
        $exp = '<span.*?id="moeda".*?> = R\$(.*?)<\/span>';  
        preg_match_all("@".$exp."@" ,$cont , $retorno);   
        $resp = str_replace(",", ".", $retorno[1][0]);  
        return $resp;  
     }  
 ?>  

Inserir marcar d'agua e forçar download da imagem em php

<?php
             $img = "CaminhoImagem.jpg"
             $imagem = imagecreatefromjpeg($img);
             $imagemLogo = imagecreatefromgif("caminhoLogo.gif" );  
             $larguraLogo = imagesx( $imagemLogo ); // Obtem a largura_nova da imagem  
             $alturaLogo = imagesy( $imagemLogo ); // Obtém a altura da imagem  
             $x_logo = imagesx( $imagem ) - $larguraLogo - 5;//// Calcula X 5px da latreral direira  
             $y_logo = imagesy( $imagem ) - $alturaLogo - 5;//// Calcula X 5px do rodapé  
             imagecopymerge( $imagem, $imagemLogo, $x_logo, $y_logo, 0, 0, $larguraLogo, $alturaLogo, 55 ); // Copia a logo para a imagem  
             header("Content-Type: image/jpeg"); // informa o tipo do arquivo ao navegador   
             header("Content-Length: ".filesize(imagejpeg( $imagem, NULL, 90 ))); // informa o tamanho do arquivo ao navegador , e o 90 é a qualidade da compressão da imagem a ser criada
             header("Content-Disposition: attachment; filename=NomedaImagem.jpg"); // informa ao navegador que é tipo anexo e faz abrir a janela de download, também informa o nome do arquivo   
             @readfile(imagejpeg( $imagem, NULL, 90 )); // lê o arquivo   
             flush();  
             imagedestroy($imagem);  
             imagedestroy($imagemLogo);  
?>