Displaying posts with tag: PHP (reset)
Melhores de 2014 – PHP + Google App Engine

Há algum tempo, o Google criou o App Engine, plataforma como serviço na nuvem do gigante das buscas, que até então suportava Java, Python e Go. No Google I/O de 2013, foi apresentada uma nova linguagem suportada pelo PaaS da empresa mais buscada de Mountain View: PHP. Essa foi a “feature” mais pedida pela comunidade App Engine e, nesse caso, os pedidos foram atendidos.

O que é cloud computing? O App Engine é melhor que seus concorrentes? Consigo fazer café no App Engine? São perguntas que não serão respondidas neste artigo. Pretendo apresentar um aplicativo simples até seu deploy no GAE (Google App Engine). Em um próximo artigo, iremos mais fundo no SDK PHP.

O primeiro passo é criar um aplicativo no Console de Desenvolvedor do GAE, informando um nome e um ID para o mesmo – para isso, basta ter uma conta Google. O ID, como esperado, deve ser um identificador único para o projeto e o usaremos em …

[Leia mais]
Melhores de 2014 – SPL – menos programação orientada a Arrays

Orientação a objetos nada mais é que um paradigma de programação. Esse paradigma não é novo, desde a década de 60 já existiam linguagens que davam suporte para essa metodologia de desenvolvimento, e no PHP, desde a versão 5.3, isso está de uma forma bem consistente. Nessa versão, além de melhorar consideravelmente o suporte a OO, foi criada a SPL, e é dela que pretendo falar neste artigo.

Porém esse não é mais um artigo ensinando como trabalhar com essa lib. Meu objetivo aqui é tentar despertar seu interesse em conhecê-la melhor e finalmente começar a fazer uso dela no seu dia a dia. Não tenho a pretensão de abordar todas as possibilidades da SPL; vou apenas apresentar alguns dos recursos que tenho utilizado para um desenvolvimento mais orientado a objetos e, portanto é importante que visite a sessão da SPL no manual do PHP.

Standard PHP Library ou SPL é uma coleção de classes e interfaces que servem …

[Leia mais]
O debate sem fim do PHP 6 versus PHP 7

Há algumas grandes e importantes conversas que acontecem na lista de discussão do PHP, na qual temos falado sobre:

Há também uma outra conversa:

  • PHP 6 ou PHP 7?

Espere … o quê?

Um pouco de história

O PHP 6 …

[Leia mais]
Excelência no Desenvolvimento

Salve, meus caros! Na edição anterior da Revista iMasters (#10 – maio/2014), falei sobre o App Engine. Hoje vamos pular a continuação dessa conversa para analisar algumas outras vertentes sobre desenvolvimento que não ferramentas. Desta vez, vou falar mais sobre minhas inspirações como desenvolvedor e pilares que acredito que fizeram de mim o profissional que sou hoje e que me levam dia a dia e me levarão a diversos objetivos.

O título fala sobre Excelência – mas o que afinal é isso? Em resumo, excelência é superar expectativas. Como isso se aplica à vida profissional? Há uma pequena história que talvez você já conheça, mas eu vou relatar aqui resumidamente:

“Um profissional foi reclamar com o seu chefe sobre a rápida evolução de um novo companheiro de trabalho enquanto ele, que estava há tanto tempo na …

[Leia mais]
Heroku e PHP finalmente juntos (ou: fazendo a migração)

Heroku foi – até onde eu me lembro – o primeiro PaaS (mainstream) no mercado. Era apenas Ruby, mas foi o símbolo do desenvolvimento da Web moderna na época, com todo o buzz de “faça o que precisa ser feito” e a mentalidade de “funciona perfeitamente” e tals.

Fiz alguns aplicativos Rails há algum tempo, e um deles foi o Travlr (que eu provavelmente deveria encerrar) e, mais recentemente, o Bieber.ly e sempre foi incrível trabalhar com isso. O Git faz o push do código, a sua implementação, instalação com um clique e arrastar para escalar. Nossa “parceria” não deu certo porque ele sempre funcionou com Ruby, e como eu também estava fazendo um monte de trabalho em PHP, obviamente queria que pudesse ter o mesmo para os meus outros projetos.

Então, o PHP-Fog …

[Leia mais]
Depurando requisições HTTP via CLI

Você é administrador de sistema. Você ama CLI. Você usa PHP. É claro que você consegue solucionar problemas de aplicativos PHP que normalmente são executados por meio de um servidor HTTP via CLI, certo? Bem, tenho boas notícias: você consegue – com algumas ressalvas. Este artigo é a continuação de outro que escrevi para um blog em 2012 intitulado “Executando scripts php-cgi via CLI como um servidor web faria (falsificando-os)”. Se você consegue executar seus aplicativos PHP via CLI, pode usar ferramentas como …

[Leia mais]
PHP + Google App Engine

Há algum tempo, o Google criou o App Engine, plataforma como serviço na nuvem do gigante das buscas, que até então suportava Java, Python e Go. No Google I/O de 2013, foi apresentada uma nova linguagem suportada pelo PaaS da empresa mais buscada de Mountain View: PHP. Essa foi a “feature” mais pedida pela comunidade App Engine e, nesse caso, os pedidos foram atendidos.

O que é cloud computing? O App Engine é melhor que seus concorrentes? Consigo fazer café no App Engine? São perguntas que não serão respondidas neste artigo. Pretendo apresentar um aplicativo simples até seu deploy no GAE (Google App Engine). Em um próximo artigo, iremos mais fundo no SDK PHP.

O primeiro passo é criar um aplicativo no Console de Desenvolvedor do GAE, informando um nome e um ID para o mesmo – para isso, basta ter uma conta Google. O ID, como esperado, deve ser um identificador único para o projeto e o usaremos em …

[Leia mais]
MySQL e o DNS Lookup

Desde o lançamento da versão 5.5 do servidor de bancos de dados MySQL que eu venho verificando muitos problemas relacionados com a variável de resolução de nomes, skip-name-resolve. Para quem ainda não sabe ou está iniciando com o MySQL, toda vez que o servidor de bancos de dados recebe uma consulta, como aquela vinda do mysql client, o host de onde vem essa conexão é parte da verificação de autenticação do usuário. Além do nome de usuário e a senha, o usuário deverá ter permissão de originar uma conexão de um determinado host, assim configurado através da criação explícita do usuário através do comando CREATE USER ou, dependendo das configuração de SQL_MODE, usuários podem ser criados diretamente através do comando GRANT, este que permite que você também dê as devidas permissões e configure host e senha para o usuário.

Voltando então ao momento da conexão, considerando que o host é também verificado, …

[Leia mais]
TORM: um ORM simples para PHP

Algum tempo atrás peguei um projeto em um cliente novo que não quis fazer o projeto utilizando Rails, por motivos que concernem apenas à ele, mas como argumentação básica que o time de desenvolvedores já utiliza PHP “puro” e a curva de aprendizado do Rails para a equipe toda seria algo que eles não gostariam de lidar.

Atualmente, nem estou trabalhando com projetos web fora do eixo Ruby/Rails/Sinatra, porém era um projeto interessante e resolvi topar, com a condição de que eu teria pelo menos um ORM em PHP para trabalhar. E eles concordaram.

Após avaliar alguns ORMs em PHP por aí, não gostei muito de nenhum, com exceção do Eloquent, que para ser utilizado fora do Laravel exigia um pouco mais de ginástica e outro pacote. Então, decidi fazer o meu próprio, …

[Leia mais]
Logando as queries do Magento e rastreando seus problemas

O artigo de hoje diz respeito a como logar todas as queries do Magento. Existem muitas formas de fazer isso, mas a mais simples e “bonitinha” que vi até o momento é alterando algumas variáveis do arquivo lib/varien/Db/Adapter/Pdo/Mysql.php (a partir do Magento 1.4).

protected $_debug               = true;
protected $_logAllQueries       = true;

E, por fim, especifique o caminho e a pasta do arquivo onde serão gravadas, bem como certifique-se de dar permissões de escrita no arquivo/pasta.

protected $_debugFile  = 'var/debug/sql.txt';

Lembre-se: jamais altere um arquivo da lib ou do core do Magento, exceto para fins de debug. Volte ao valor padrão assim que possível.

Fazendo backtrace dos erros de SQL no Magento

Se apenas exibir as queries não for suficiente para descobrir a origem de algum erro, há ainda uma outra abordagem bem interessante: logar o backtrace do objeto Varien_Debug …

[Leia mais]