segunda-feira, 1 de janeiro de 2018

Usando o PHPCodeSniffer no SublimeText

Em 2014 fiz um post explicando como instalar e configurar o PHPCodeSniffer no Eclipse (Php CodeSniffer validando seu estilo de código PHP no Eclipse), hoje vamos aprender como fazer o mesmo no SublimeText 3.

1. Instalação do Package Control

A forma mais simples de instalar extensões no Sublime é através do Package Control, https://packagecontrol.io/, o gerenciador de pacotes do Sublime. Se você ainda não tem ele instalado, siga as instruções da página de instalação, https://packagecontrol.io/installation, que basicamente é copiar o comando de instalação de acordo com a versão do seu SublimeText no console do Sublime e aguardar o download e instalação. Depois de instalado, o item Pakage Control é adicionado ao menu Preferences.



2. Instalação do Plugin Phpcs - PHPCodeSniffer

O plugin utilizado que faz o PHPCodeSniffer funcionar no SublimeText é o Phpcs, https://packagecontrol.io/packages/Phpcs, sua instalação é feita pelo Package Control.

Clicando no item Package Control do menu Preferences, a tela do gerenciador de pacotes é aberta.


Ao clicar na opção Install Package, aparece uma caixa de seleção com os pacotes disponíveis para instalação. Basta escrever phpcs e clicar no item que o Package Control faz o resto.



3. Instalar o php-pear e o PHP_CodeSniffer

Com o plugin do Sublime instalado, vamos instalar o "motor" para seu funcionamento. Em primeiro lugar, instalamos o gerenciador de pacotes pear do PHP
$ sudo apt install php-pear
Por padrão, o PHP Code Sniffer do SublimeText está configurado para trabalhar usando o padrão PSR2, http://www.php-fig.org/psr/psr-2/, que é o padrão atual usado pela maioria dos Frameworks PHP, inclusive o CakePHP 3. Desta forma, após a instalação PHP_CodeSniffer, o plugin do Sublime já estará funcionando.

$ sudo pear install PHP_CodeSniffer
Criando um arquivo de teste e uma classe vazia, ao salvá-lo, podemos conferir que o phpcs já está trabalhando.




4. PHP_CodeSniffer e CakePHP 2

No artigo de 2014, acrescentei a instalação do pacote de estilos do CakePHP 2, que não segue a PSR2 e sim um padrão próprio do CakePHP. Hoje, se tentarmos instalar CakePHP_CodeSniffer com o pear depois do PHP_CodeSniffer já instalado, obtemos um erro informando que a versão do CakePHP_CodeSniffer é incompátivel com o PHP_CodeSniffer instalado
cakephp/CakePHP_CodeSniffer requires package "pear/PHP_CodeSniffer" (version >= 1.4, version <= 1.5), installed version is 3.2.2
No valid packages found
install failed
Para quem ainda tem projetos usando o CakePHP 2, uma opção é deixar que o PHP_CodeSniffer seja instalado junto com o CakePHP_CodeSniffer deixando que o próprio pear resolva a questão das dependências e instale a versão 1.4 do PHP_CodeSniffer.
Então, se temos o PHP_CodeSniffer instalado, precisamos primeiro desinstalá-lo.
$ sudo pear uninstall PHP_CodeSniffer
Depois podemos adicionar o canal do pear.cakephp.org, se ainda não o fizemos e instalar diretamente CakePHP_CodeSniffer.
$ sudo pear channel-discover pear.cakephp.org
$ sudo pear install cakephp/CakePHP_CodeSniffer

5. Definindo o estilo padrão

O plugin phpcs permite que o padrão de estilo possa ser trocado a qualquer momento.




Mas se quisermos alterar o estilo padrão do CodeSniffer, vamos em Preferences -> PHP Cod Sniffer -> Settings - User e inserimos o padrão CakePHP como valor standard.





Até mais...
Francisco!

segunda-feira, 7 de agosto de 2017

Ubuntu 17.10 Corrigindo erro ao instalar drivers extras da HP no SImple Scan

Hoje, ao tentar instalar os drivers necessários para o uso do Simple SCAN no Ubuntu 17.10 Alpha 2, o sistema apresentou o seguinte erro, depois não consegui mais atualizar ou instalar qualquer aplicativo.

dpkg: erro ao processar o arquivo /var/cache/apt/archives/libperl5.24_5.24.1-7ubuntu1_i386.deb (--unpack):
 a tentar sobreescrever '/usr/share/doc/libperl5.24/changelog.Debian.gz' partilhado, que é diferente de outras instâncias do pacote libperl5.24:i386
Erros foram encontrados durante o processamento de:
 /var/cache/apt/archives/libperl5.24_5.24.1-7ubuntu1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Para corrigir, tive que forçar a instalação da biblioteca:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libperl5.24_5.24.1-7ubuntu1_i386.deb

Depois disso o sistema voltou ao normal, consegui realizar normalmente o update e upgrade.


sexta-feira, 27 de maio de 2016

PhpPgAdmin - corrigindo erro na exportação de dados - Ubuntu 16.04

Observei que a função de exportar dados no PhpPgAdmin não está funcionando para as opções de COPY e SQL, a opção Download gera um arquivo vazio. Resolvi testar opção Exibir, mas apenas é mostrada uma página em branco, sem nenhuma pista do erro.
Procurei na internet por erros de dump no PhpPgAdmin, mas não obtive sucesso.
Buscando um pouco mais, esbarrei com um artigo que ensina instalar e configurar o PhpPgAdmin no ArchLinux e entre as explicações das configurações, uma me chamou a atenção, os arquivos de log. Então, seguindo o error.log do Apache vi que a última linha era exatamente um erro no pg_dump:

/usr/lib/postgresql/9.5/bin/pg_dump: invalid option -- 'i'
Try "pg_dump --help" for more information.

A minha chance de encontrar o erro no PhpPgAdmin ressurgiu, pesquisei um pouco mais e vi que no passado já houve casos de erros nas opções do pg_dump e que elas são carregadas no arquivo:

/usr/share/phppgadmin/dbexport.php

Abrindo o arquivo com o Gedit,

$ sudo  gedit /usr/share/phppgadmin/dbexport.php

Encontrei o erro na linha 76 explicada na linha 75:

// Build command for executing pg_dump.  '-i' means ignore version differences.
$cmd = $exe . ' -i';

Retirando a opção -i e deixando apenas a variável $exe, o erro desapareceu.
$cmd = $exe;

Os dumps do PhpPgAdmin voltaram a funcionar normalmente.

Para completar, pesquisando o a documentação do pg_dump, li que a opção -i foi marcada como deprecated na versão 9.1 do PostgreSQL (https://www.postgresql.org/docs/9.1/static/app-pgdump.html) e na versão atual, 9.5, ela já não aparece mais. Por isso o motivo do erro.

Francisco AC Lima