Streams do PHP

Resumo:
Introdução

Streams são canais por onde passam fluxos de dados (bytes). É comum se falar em "streaming de vídeo", que é um canal por onde é trafegado um fluxo de dados do vídeo em pedaços (chunks).

Segundo a definição do php.net, streams são recursos por onde se lê ou escreve dados de forma linear, e que também permite se posicionar em uma posição arbritária do stream.

Neste artigo veremos como a linguagem PHP trabalha com streams e também como manipulá-los no terminal de comandos.

Expressões Regulares com Intervalos Numéricos

Resumo:
Introdução

No artigo sobre Expressões Regulares em PHP, vimos os conceitos básicos sobre expressões regulares. Porém, algo que pode gerar certa confusão é sobre a criação de uma expressão regular que verifique se determinada string é um número presente em um determinado intervalo numérico (range). Neste artigo veremos qual é o problema e é apresentada uma classe que gera a expressão regular de um intervalo numérico.

Caches de Aplicação

Resumo:
Introdução

É muito comum (e útil) aplicações complexas armazenarem algumas informações em cache para diversas finalidades. A mais importante é o rápido acesso a uma informação que tem um custo relativamente alto para ser obtido, seja pelo tempo gasto, consumo de recursos computacionais para se realizar a consulta ou pela quantidade de vezes que se acessa a mesma informação.

Neste artigo, vou mostrar o conceito básico para se montar uma estratégia de cache e algumas exemplos de utilização.

Minificação de arquivos para Web

Resumo:
Introdução
compressão de arquivos

O ambiente web é repleto de requisições e respostas HTTP contendo arquivos HTML, JS, CSS, imagens, etc. Dependendo da arquitetura da aplicação, cada página pode requerer muitos arquivos de estilos, script ou imagens auxiliares, que acabam consumindo tempo para serem baixados e processados pelo navegador. Portanto, é útil aplicar algumas técnicas para minimizar o tamanho destes arquivos, afinal, arquivos menores podem ser trafegados mais rapidamente. Uma página rápida é sempre bem vista pelos buscadores, como o Google, pois impacta diretamente numa melhor experiência do usuário.

Neste artigo, veremos algumas dicas de como minimizar o tamanho de alguns tipos de arquivos, para tornar as páginas mais rápidas de serem carregadas e, consequentemente, ter maior relevância para buscadores. Os assuntos estão divididos em:

Executando código PHP local em máquina remota

Resumo:
Introdução

No artigo PHP em modo interativo vimos como executar o PHP de forma interativa, ou seja, abrir um "terminal de PHP" e executar comandos sob demanda. Neste artigo, vamos ver como tirar proveito deste recurso de forma que se possa executar um código PHP de sua máquina local em uma máquina remota.

Timestamp em PHP

Resumo:
Calendário
Introdução

Há algum tempo escrevi o artigo Aritmética de Datas, que mostrava como manipular datas no PHP e realizar operações sobre elas. Porém, embora tenha citado brevemente sobre Timestamp, não explorei tanto o assunto.

Neste artigo, pretendo explicar melhor o que é o Timestamp e como ele é manipulado no PHP. Também vou destacar algumas características importantes, relacionadas ao fuso horário (timezone).

Full text search com Sphinx

Resumo:
Introdução
logo do sphinx search

Full text é um recurso conhecido pelos entusiastas de bancos de dados. Ele permite a realização de queries de busca de registros em campos de texto com mais flexibilidade que uma busca envolvendo os operadores convencionais como o =, <>, LIKE, NOT LIKE, etc. Vários bancos de dados relacionais dão suporte a este recurso, por exemplo, o MySQL, PostgreSQL, Oracle, até o SQLite possui módulos que suportam Full Text.

Porém, também existem bancos de dados especialistas em buscas Full Text. Neste artigo, vou mostrar o Sphinx, que é um banco de dados Open Source, gratuito, muito prático e que tem evoluído rapidamente. Veremos as vantagens/desvantagens e quando é útil utilizar este tipo de banco.

Rich Snippets (customização de resultados no Google)

Resumo:
Introdução

Rich Snippets (literalmente traduzido como "fragmentos ricos") é o nome das marcações que podem ser feitas em páginas HTML para agregar mais semântica a elas. O Google utiliza estas marcações tanto para renderizar as páginas de seus resultados de busca de forma diferenciada quanto para auxiliar algumas de suas buscas, como a de notícias, blogs, vídeos, etc. Ou seja, os rich snippets são uma importante ferramenta para transformação da web em uma estrutura mais semântica e compreensível não apenas para humanos, mas também para as máquinas (bots).

Neste artigo, vamos ver quais são os tipos de marcações de rich snippets, como elas podem ser feitas e como podem ser testadas.

Scroll Infinito

Resumo:
Introdução

Um dos elementos de usabilidade que vem aparecendo em alguns sites nos últimos tempos é o "scroll infinito". Trata-se daquele comportamento da página de linha do tempo de perfis do Facebook entre outras redes sociais. Quando você se aproxima do fim da página, ela automaticamente carrega mais elementos e, consequentemente, ajusta o scroll da página, que pode ser rolada mais para baixo. Embora o scroll infinito gere uma experiência interessante para o usuário, também pode se tornar um vilão, quando mal planejado.

Neste artigo, veremos como montar uma página com scroll infinito, mas também discutiremos as preocupações a serem tomadas para garantir a acessibilidade do seu site.

Background com Gradientes

Resumo:
Introdução

Já escrevi aqui no blog sobre CSS Gradient, que é um recurso do CSS 3 para gerar degradês a partir de especificações de estilos. Porém, o recurso também pode ser utilizado para gerar algumas texturas sofisticadas e que, em alguns casos, podem substituir imagens de fundo. Neste artigo veremos alguns exemplos e suas vantagens.

Criando Triângulos com CSS

Resumo:
pirâmides do Egito
Introdução

Hoje estive procurando uma forma de montar triângulos para o HTML e descobri um artigo no the david walsh blog. Eu imaginava utilizar canvas do HTML 5 ou então o recurso do CSS 3 para realizar transformações geométricas em uma div, mas encontrei a técnica muito mais simples. Neste artigo vamos ver como ela funciona.

Threads no PHP com pthreads

Resumo:
Introdução
representação de threads de um processo

Thread é um importante recurso de algumas linguagens de programação, que provê melhoria de performance através da execução de blocos de instruções em paralelo. Por outro lado, ela também exige uma forma própria de pensar na solução dos problemas. Neste artigo, veremos rapidamente o que são threads e um tutorial de como e onde elas podem poderão ser usadas com PHP.

Declarando tipos numéricos no MySQL

Resumo:
golfinho, que é o animal símbolo do MySQL
Introdução

MySQL é um SGBD muito popular, mas muito robusto. Por ser robusto e cheio de recursos, a documentação do MySQL não poderia ser diferente: também é muito extensa. Talvez seja por este motivo que nem sempre ela é devidamente estudada e, com isso, nota-se que muita gente acaba utilizando os recursos disponíveis de forma incorreta, seja por desconhecimento ou descuido.

Neste artigo, veremos sobre um destes enganos comuns de utilização do MySQL: a má especificação dos tipos numéricos nas colunas de tabelas MySQL.

Design Responsivo com Media Queries

Resumo:
Introdução
Diferentes dispositivos exibindo o mesmo conteúdo, ilustrando um design responsivo

Design Responsivo (ou Responsive Design) é uma técnica que tem ganhado destaque nos últimos tempos, mas sua ideia é bastante antiga. Ela está diretamente relacionada ao pensamento de Tim Berners-Lee (o criador da Web), que dizia que os documentos da Web deveriam ser acessíveis por qualquer tipo de hardware que estivesse conectado à Internet, seja ele uma estação física ou móvel, com tela pequena ou grande. Ou seja, Design Responsivo é o nome de uma técnica que possibilita isso: prover um documento na Web que pode ser visualizado por qualquer dispositivo, de modo que o layout se adeque de forma amigável às restrições do aparelho.

Gerar gráficos em PHP com o Google Charts

Resumo:
Exemplo de Gráfico de Torta
Introdução

Em 2011, escrevi o artigo "Criando Gráficos com o Google Chart e PHP", que mostrava como gerar gráficos através da passagem de parâmetros para URL de geração de gráficos provida pelo Google. Porém, este recurso foi depreciado em abril de 2012 e aparentemente renomeado para "Image Charts" (uma seção do Google Charts).

Neste artigo, veremos o funcionamento do novo Google Charts e quais suas vantagens e desvantagens em relação ao recurso depreciado.

Ordenação de Arrays em PHP

Resumo:
Introdução

Ordenação de arrays é um tema muito simples, mas que também gera muitas dúvidas na comunidade de PHP. Neste artigo, veremos desde uma ordenação simples de arrays usando a função sort até as formas mais sofisticadas, envolvendo matrizes ou regras de comparação específicas.

Abrir sessões em PHP de forma econômica

Resumo:
macaco pensando
Introdução

No artigo Utilizando Sessões em PHP de forma inteligente, foi apresentado o funcionamento das sessões em PHP e algumas estratégias de como fazer bom uso das sessões. Neste artigo, veremos um outro detalhe muito importante, e que não foi citado no primeiro artigo. Trata-se da abertura de sessões de forma econômica, ou seja, apenas quando necessário.

Etag - Cache de arquivos no navegador

Resumo:
performance
Introdução

No primeiro artigo "Expires no Apache - Cache de arquivos no navegador", vimos como configurar o apache para utilizar o mod_expires para sugerir o cache de arquivos estáticos no navegador, com base na data de modificação. No segundo artigo "Expires no PHP - Cache de arquivos no navegador", vimos algo similar, mas aplicado a arquivos gerados dinamicamente.

Neste artigo, veremos um outro mecanismo usado para sugerir o armazenamento de um documento no cache do navegador. Este mecanismo é chamado ETag (Entity Tag).