Displaying posts with tag: PHP (reset)
PHP Mess detector – Analisando o código em busca de problemas

O PHP Mess Detector é uma ferramenta de análise estática de código que permite encontrar diversos tipos de problemas e analisar a qualidade do código da aplicação. Veja algumas das análises possíveis de serem executadas com o PHP Mess Detector:

  • Localização de possíveis bugs;
  • Localização de métodos, propriedades e parâmetros não utilizados;
  • Verificar a qualidade, complexidade a legibilidade do código.

Instalando o PHP Mess Detector

Para instalar o PHP Mess Detector, você utilizará o Composer, procedendo a instalação a nível global. Execute o comando a seguir no terminal para iniciar a instalação:

composer global require 'phpmd/phpmd=@stable'

Concluída a instalação via Composer, faça um teste para verificar o funcionamento. Via terminal, acesse uma pasta onde você tenha um projeto em PHP e execute o comando a seguir:

phpmd . …
[Leia mais]
Pacote Notável PHP: Bate-papo seguro PHP

Quando você deseja implementar um sistema de bate-papo entre os usuários de sua aplicaçaõ ou site, há sempre a preocupação de que as mensagens possam ser visualizadas por pessoas que gerenciam o site ou mesmo por espiões e serviços secretos, porque as mensagens podem ter que ser armazenadas no servidor antes de serem entregues aos outros usuários no bate-papo.

Uma maneira de evitar esse problema é implementar criptografia de ponta a ponta. Isso significa que as mensagens são criptografadas antes de serem enviadas do usuário de origem e somente descriptografadas pelos usuários de destino.

Esse pacote fornece uma solução para implementar tal abordagem em PHP. Ele usa algum JavaScript para criptografar mensagens antes de enviar do navegador do usuário de origem utilizando o algoritmo Blowfish.

Ele usa uma chave secreta que apenas os usuários de origem e de destino conhecem. Dessa forma, as mensagens podem ser …

[Leia mais]
Dominando OAuth 2.0

OAuth 2.0 é o padrão de fato para autenticar usuários com sites de terceiros. Se você quiser acessar os dados de um usuário no Google ou Facebook, por exemplo, OAuth 2.0 é o que você precisa. Mas vamos encarar um fato: OAuth 2.0 não é fácil e, para piorar as coisas, parece que todos têm uma implementação ligeiramente diferente, tornando a interoperabilidade um pesadelo. Felizmente, a PHP League of Extraordinary Packages lançou a biblioteca league/oauth2-client. Visando à simplicidade e facilidade de uso, a league/oauth2-client fornece uma interface comum para acessar muitos provedores OAuth 2.0.

OAuth resolve um problema específico: minimiza a exposição a credenciais. Ele consegue isso através de subvenções de autorização. Você concede a um website acesso às informações de sua conta de outro site. O site do beneficiário, então, usa credenciais temporárias chamadas tokens de acesso para acessar suas Informações …

[Leia mais]
Duas maneiras de mapear um sistema do zero usando Doctrine2

Como vimos neste artigo, é possível obter classes de entidades existentes em nosso banco de dados com o Doctrine. Neste artigo, vou explanar mais detalhadamente dois métodos de realizar isto elaborando um projeto simples, na prática. O primeiro é via cógido PHP; o outro é através de linha de comando.

Iremos utilizar a seguinte hierarquia de pasta:

Na hierarquia acima, criei a pasta src, que conterá nosso código de desenvolvimento com as classes do projeto organizadas em subpastas. A subpasta Entity terá, como o nome sugere, as entidades de fato. A pasta vendor conterá as bibliotecas PHP que vamos utilizar ao longo do desenvolvimento.

O Composer automaticamente cria esta pasta, porém criei …

[Leia mais]
Projeto PHP OO e engenharia reversa com Doctrine

Sabe aquele tempo que você perdia criando as entidades, uma por uma? Pois bem, seus problemas acabaram! Brincadeira à parte, vamos a um exemplo simples de exportação de um mapeamento na base de dados e transformar em entidades. Talvez haja a necessidade, para adaptar às nossas necessidades, de modificar coisas pontuais nas annotations criadas.

Abaixo, temos nosso modelo de exemplo, uma entidade Usuário e seus endereços. Para modos de curiosidade, modelei usando o Mysql Workbench.

Agora, vem o código e exportação do mapeamento para classes PHP. Vejamos o código abaixo, devidamente comentado:

<?php
//Importar o autoload
require_once "vendor/autoload.php";

use Doctrine\ORM\Tools\DisconnectedClassMetadataFactory;
use Doctrine\ORM\Tools\Export\ClassMetadataExporter;
use Doctrine\ORM\Tools\EntityGenerator;
use …
[Leia mais]
Como instalar uma rede social corporativa na nuvem

Redes sociais corporativas são uma tendência no mundo dos negócios, afinal, elas podem propiciar novas formas de colaboração mais engajadoras e diminuir a enorme quantidade de e-mails que circula nas empresas. Contudo, um estudo realizado pela Forrester Research abrangendo informações de quase cinco mil trabalhadores de empresas norte-americanas descobriu que apenas 28% deles utilizavam qualquer tipo de software de rede social, pelo menos 1 vez por mês, para atividades profissionais. Muitos usam apenas alguma rede social não corporativa, como o Facebook.

Neste cenário, as empresas parecem ainda perdidas sem saber qual a melhor forma ou solução a ser adotada. Diante disso, a Humhub se diferencia por oferecer um software open source (licença AGPL) de mesmo nome, no modelo já consagrado pelo WordPress, onde é possível …

[Leia mais]
PHP Session Locking: como evitar bloqueio de sessões nas solicitações PHP

O que descobri quando se fala sobre o bloqueio de sessão no PHP é que metade das minhas conversas gira em torno de “oh, eu me lembro da sessão de bloqueio do PHP, que custou alguns dias da minha vida, mas melhorou seriamente o desempenho das minhas aplicações quando eu as evito”, ou a outra ponta “o que diabos é bloqueio de sessão PHP?”.

Especificamente, os mecanismos de bloqueio envolvidos em sessões do PHP não são claros para todos e podem causar lentidão nos aplicativos se você não levá-los em conta.

Isso não tem que ser um problema. Se você está ciente do que se passa nos bastidores, você pode antecipar esse comportamento em suas aplicações PHP e evitá-lo completamente.

O que acontece quando você chama session_start()

Vamos pegar uma configuração básica PHP como exemplo: sempre que você iniciar uma sessão PHP, o PHP irá criar um arquivo simples no caminho …

[Leia mais]
Tenha seu próprio escritório na nuvem com o ownCloud

O que é o Owncloud?

É uma aplicação PHP de código aberto que atua como um serviço de compartilhamento de arquivos, colocando o usuário no controle na segurança de seus próprios dados e com funcionalidades equivalentes (e em muitos casos, superiores) a outros concorrentes do tipo, como Dropbox, Onedrive e tantos outros. Para a instalação do ownCloud, utilizei a hospedagem da Locaweb.

Alteração da versão do PHP para a 5.6

A primeira coisa a fazer é alterarmos a versão do PHP para a última versão estável disponível, ou seja, v5.6.6. Para isso, podemos fazer a mudança via FTP ou SSH. Eu prefiro utilizar a linha de comando diretamente no servidor, então, prefiro o SSH.

Para fazer o acesso SSH, utilize os mesmo dados de login, senha e host do FTP.

Para fazer a alteração de versão, iremos primeiro …

[Leia mais]
Criando um Lamp com seu Docker

Bastante pessoas me pediram para criar uma documentação sobre como configurar um LAMP (Linux, Apache, Mysql e PHP) com o Docker.

Para esse artigo, usaremos o Docker e Docker-compose, mas não entremos nos detalhes básicos sobre seu uso. Caso ainda não sabia usar essas ferramentas, apresento os links abaixo para aprender as ferramentas citadas:

Para configurar um LAMP, faremos o uso de um ambiente com dois containers.

Crie uma pasta para seu projeto e dentro dessa pasta crie um arquivo docker-compose.yml com o seguinte conteúdo:

web:
image: tutum/apache-php …
[Leia mais]
Desenvolvendo uma aplicação web com Lumen e MySQL

O Lumen é um novo microframework PHP desenvolvido por Taylor Otwell, o mesmo autor do famoso framework Laravel. Eu quis lhe dar uma chance e estou aqui para compartilhar as minhas experiências. Não sou um especialista em Lumen (ainda), mas acho que uma das melhores características desse framework é que ele torna realmente muito fácil iniciar um novo projeto. Então, para provar isso, vamos agora construir um aplicativo totalmente funcional suportado por um banco de dados MySQL em menos de 30 minutos. Você está pronto para começar?

Uma frase motivacional diária

Nosso aplicativo deve ser bastante simples, mas eu gostaria também de fazer algo útil. Sou um grande fã de citações motivacionais, e se …

[Leia mais]