Script de Debug para o Opcache

Resumo:
Introdução

O Opcache é um recurso do PHP para cachear o byte-code do código interpretado de um script PHP. Para ajudar a debugar o uso do Opcache, o PHP oferece a função opcache_get_status. Neste artigo vou compartilhar um script para visualizar o debug do retorno dessa função de forma amigável.

Expressões Regulares em PHP - Recursos avançados

Resumo:
Introdução

No artigo sobre Expressões Regulares em PHP, vimos os conceitos básicos da sintaxe de Expressões Regulares usadas no PHP, que é o padrão PCRE, além das funções do PHP para realizar diferentes operações com expressões regulares. Após 6 anos, resolvi complementar aquele artigo com os recursos mais avançados sobre regex e algumas curiosidades extras sobre o assunto. Caso você não conheça o básico sobre Expressões Regulares, é altamente recomendável que primeiro vocẽ leia o artigo anterior para depois continuar.

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.

O Diferencial do PHP

Resumo:
Introdução

Já faz um bom tempo que eu não escrevo nada neste blog e eu resolvi voltar com um artigo que não tem o mesmo intuito de ensinar algo extremamente prático sobre o mundo do PHP, mas apresentar um artigo mais reflexivo sobre o que o PHP é em essência e o que o distingue das demais linguagens utilizadas para web hoje em dia. Por fim, fazer algumas análises sobre o momento atual, em que tanto se fala de microserviços e serverless, e como o PHP está (ou não) inserido neste cenário.

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.

Cuidados ao criar um script de Cron

Resumo:
Introdução

Em 2010, escrevi o artigo Tarefas agendadas via Cron + PHP, que ensinava o básico sobre como montar um script de cron e configurá-lo para que fosse executado com certa periodicidade automaticamente. Hoje, quase 6 anos depois, revolvi escrever mais um artigo sobre o assunto, mas desta vez para compartilhar algumas lições valiosíssimas que devem ser levadas em conta ao se preparar um script de cron.

Observação: as dicas apresentadas neste artigo também valem para a construção de serviços (daemons) em PHP.

Novidades do PHP 7

Resumo:
Introdução

No final de 2015 foi lançado finalmente o PHP 7.0.0, que estabeleceu uma nova "era" para o PHP e deixou as versões 5.X no passado. As versões 5.X (que começaram em 2004) tiveram uma grande importância na história do PHP, embora alguns tropeços também.

O que algumas pessoas podem se perguntar é por que a versão 5.X saltou para 7.X sem passar pela 6.X? Acontece que no passado houve a implementação do que seria o PHP 6. O projeto iniciou em 2005, mas acabou sendo "abandonado" em 2010. Chegaram até a lançar algumas versões alpha ou beta que cheguei a testar, mas a versão final nunca foi lançada por conta da complexidade que agregou ao núcleo do PHP. A feature que gerou toda a confusão foi o suporte nativo a Unicode. Porém, mesmo abandonando a versão 6, os desenvolvedores da linguagem optaram por lançar algumas das outras features previstas nas versões 5.3.X em diante mesmo. Com isso, vimos as versões 5.X terem uma enorme mudança desde o lançamento da versão 5.0.0 até as versões 5.6.X atuais. Afinal, foram mais de uma década desta versão.

Enfim, como o PHP 6 chegou a ser arquitetado e divulgado com um conjunto de features específicas e até artigos e livros sobre o assunto foram publicados (antes mesmo da versão final ser lançada), optaram por saltar esse número na contagem de versões do PHP para evitar confusões. Para mais detalhes sobre isso, você pode ler o RFC sobre o próximo nome do PHP.

Bem, mas estamos aqui para falar de PHP 7. Estou um pouco enferrujado para escrever artigos, mas vamos ver se esse ano volto ao ritmo.

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.

Expressões Regulares em PHP

Resumo:
Introdução

Expressões regulares são expressões que permitem especificar um padrão de string, ou seja, como os caracteres de uma string ficam dispostos em sequência. Com este padrão, é possível realizar checagens para saber se uma string segue determinado padrão, capturar pedaços da string com base no padrão, ou ainda substituir pedaços de uma string por outra sequência de caracteres.

As expressões regulares são um recurso extremamente útil não apenas para PHP, mas para várias outras linguagens, inclusive JavaScript. Porém, como possui uma sintaxe própria, nem todos programadores PHP tem familiaridade em montar ou entender expressões regulares. Neste artigo veremos um compilado de informações úteis para se aprender a usar expressões regulares em PHP.

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).

Prevenção de Timing Attack no PHP

Resumo:
Introdução

Timing Attack (ataque baseado em tempo) é um tipo de ataque a sistemas. Ele é pouco conhecido e normalmente é realizado por crackers mais avançados. Neste artigo, veremos o que são estes tipos de ataque e como podem ser prevenidos no PHP.

Desempacotamento de Parâmetros em Funções no PHP (operador splat)

Resumo:
Introdução

No artigo anterior, falamos sobre Funções Variádicas, que ganhou uma sintaxe nova no PHP 5.6. Neste artigo, veremos um recurso adicional e similar, que é o desempacotamento de parâmetros em funções e métodos através do símbolo de reticências. O operador é conhecido em outras linguagens como operador "splat".

Funções Variádicas

Resumo:
Introdução

Uma das novidades do PHP 5.6 é o suporte a uma nova sintaxe para declaração de funções variádicas. Para quem não sabe, funções variádicas (variadic functions) são aquelas que podem receber um número indeterminado de parâmetros. Neste artigo veremos o que são funções variádicas e qual é a nova sintaxe para declará-las a partir do PHP 5.6.

Novidades do PHP 5.6

Resumo:
Introdução

O ano de 2013 terminou e foi marcado pelo lançamento do PHP 5.5, com ótimas novidades. Mas chegou 2014 e, logo no começo do ano, já temos o lançamento da primeira versão ALPHA do PHP 5.6. Isso mesmo! O ciclo de desenvolvimento do PHP parece estar a todo vapor. Além disso, o exame de certificação em PHP já se atualizou e agora as perguntas são baseadas na versão 5.5 do PHP.

Neste artigo, vamos dar uma olhada inicial nas principais características anunciadas para o PHP 5.6, lembrando que esta versão ainda é ALPHA, ou seja, ainda é instável e pode sofrer mudanças até o lançamento oficial da versão 5.6.0. Conforme serão anunciadas as novidades em outras versões ALPHA, BETA e Release Candidate, vou atualizando este artigo para que fique completo.

Namespaces e Resolução de nomes de Classes

Resumo:
Introdução

Recentemente, assisti ao PHPCast episódio 8 e confesso que fiquei um pouco surpreso ao notar que um recurso bem simples introduzido no PHP 5.5 não foi compreendido plenamente por todos participantes. Trata-se de uma nova sintaxe da linguagem que permite a obtenção do nome qualificado de classes. Então, vou mostrar com mais detalhes este novo recurso que, certamente, também deve ser dúvida de muitos programadores.

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.