Linux x Windows

Diferenças entre hospedar PHP em Windows e Linux

Já se perguntou se existe alguma diferença entre Windows e Linux no que diz respeito ao desenvolvimento de aplicações PHP? Uma pergunta que ouço com frequência é “posso desenvolver aplicações no Windows e hospedar no Linux?”. É uma dúvida comum porque muitos desenvolvedores, pelo fato de terem receio de lidar com um sistema operacional desconhecido, acabam optando por hospedagens que rodam o mesmo SO que suas máquinas locais.

Resolvi escrever esse artigo para ajudar a esclarecer um pouco mais a diferença entre os dois tipos de hospedagem. Importante: quando me refiro a Linux, não estou falando somente dele, mas de todos os sistemas Unix-Like, como Mac OSX, FreeBSD, OpenSolaris etc.

Linux ou Windows?

Muitos programadores, principalmente iniciantes, têm um pouco de receio de optar por uma hospedagem Linux, ainda mais quando utilizam Windows, seja por medo de não saber resolver problemas no servidor ou por puro desconhecimento mesmo. Continue Lendo

A Semana PHP

A SEMANA: PHP – Newsletter semanal com tópicos sobre PHP

Hoje estou aqui para divulgar a iniciativa do meu amigo Elton Minetto. Trata-se da newsletter semanal chamada A Semana: PHP.

A Semana: PHP é uma newsletter que apresenta uma compilação de postagens, eventos e vagas relacionadas ao PHP em edições semanais.

Funciona de maneira colaborativa. Você pode contribuir, enviando sugestões de links para serem publicados. Porém, o mais importante é assinar, para estar sempre por dentro do que está acontecendo no mundo do PHP.

Para inscrever-se, basta acessar o site e preencher seus dados. Também é possível consultar uma listagem com todas as edições anteriores, neste link.

Ajudem a divulgar e vamos fortalecer nossa comunidade.

Um abraço a todos e fiquem com Deus.
Rafael Jaques

Disqus x IntenseDebate

Disqus x IntenseDebate – Por que troquei?

Quem frequenta bastante o PHPit deve ter percebido que migrei o sistema de comentários do IntenseDebate para o Disqus.

Tomei essa decisão baseando-me em diversos fatores. O principal deles foi o desempenho. A quantidade e o peso dos JavaScript inseridos pelo IntenseDebate é muito maior quando comparado ao Disqus. Até o navegador lida melhor com o processamento.

Nos últimos tempos eu tinha muita dificuldade com spam. Acontecia direto no IntenseDebate, mesmo estando com o anti-spam ativo. Apagar as mensagens indesejadas manualmente era muito cansativo, principalmente com um bulk action que não funciona. Continue Lendo

Palavras

Contar número de linhas de um arquivo de texto com PHP

Contar o número de linhas existentes em um arquivo de texto pode parecer uma tarefa trivial, mas nem sempre é. Dependendo da maneira que você optar por fazer isso, pode acabar comprometendo o desempenho do servidor. Geralmente utilizamos essas técnicas para contar o número de linhas em arquivos txt, mas você pode utilizar em qualquer arquivo que contenha texto.

Técnica para contar linhas de arquivos pequenos

Se você tiver que contar o número de linhas de um arquivo pequeno, você pode utilizar uma combinação das funções file(), que carregará todo o arquivo na memória em formato de array e count(), que contará o número de índices no array (equivalente ao número de linhas).

O código fica mais ou menos assim: Continue Lendo

Frameworks

O que é um Framework? Para que serve?

Na maioria das vezes, aqui no blog, eu me dedico a explicar algumas funções bastante específicas de uma ou outra tecnologia. Porém, há alguns dias, recebi um comentário em algum dos meus posts que indagava, entre outras coisas, “o que é um framework?“.

Dessa forma, decidi que seria interessante desenvolver uma postagem explicando o que são frameworks PHP e como eles funcionam. Espero que essa postagem possa ser útil e ajude a tirar dúvidas.

O que é um framework?

Framework é um conjunto de códigos abstratos e/ou genéricos, geralmente classes, desenvolvidos em alguma linguagem de programação, que relacionam-se entre si para disponibilizar funcionalidades específicas ao desenvolvedor de software. Em outras palavras, é como uma caixa de ferramentas, um kit que possui diversas funcionalidades devidamente implementadas, testadas e prontas para serem utilizadas no construção de softwares, poupando ao desenvolvedor tempo e trabalho na elaboração de operações básicas como acesso a banco de dados, sistema de templates, mapeamento de rotas e validação de dados.

Os frameworks costumam ser divididos em módulos que podem ser interdependentes ou não. Isso quer dizer que, dependendo do framework utilizado, você poderá utilizá-lo apenas em sua totalidade, com todos os seus aparatos, ou então pode haver a possibilidade de utilização de apenas as partes necessárias. Continue Lendo

Filtrando e validando dados no PHP com filter_var()

O assunto de hoje é segurança. É bastante comum o seguinte cenário: o programador precisa validar um e-mail e vai para o Google e digita “expressão regular para validar e-mail” ou então “como validar e-mail com PHP”. O que acontece nesse caso? Somos soterrados por uma infinidade de informações e ficamos sem saber exatamente o que irá nos servir.

Contudo, desde a versão 5.2 do PHP está disponível a função filter_var(). Seu objetivo é filtrar e validar informações dentro do PHP. No artigo de hoje, vou realizar um estudo sobre as peculiaridades dessa função e mostrar como é fácil utilizá-la para aumentar a segurança de sua aplicação.

Validate e Sanitize

Os filtros dividem-se em dois tipos: validate e sanitize. Gosto de traduzi-los como validação e limpeza, respectivamente. O objetivo dos filtros de validação (validate) é verificar se determinado valor corresponde a um padrão previamente especificado. Já os filtros de limpeza (sanitize) irão retirar caracteres que não correspondam ao padrão permitido.

Cada filtro possui uma constante correspondente. No capítulo de filtros do manual do PHP é possível encontrar uma lista completa com todos os filtros disponíveis.

A função filter_var() obedece ao seguinte protótipo:

mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

Sendo assim, o único parâmetro obrigatório é o primeiro, que indica o valor a ser filtrado. Porém, o filtro padrão é não aplicar filtro nenhum. Dessa forma, pra que ocorra de fato uma filtragem, é necessário especificar o segundo parâmetro. Continue Lendo