Meu nome é Elton Minetto

Frameworks PHP e analogias

Venho palestrando sobre Frameworks PHP desde a primeira PHP Conference Brasil, em 2006. Todos os anos eu renovo a palestra porque continuo recebendo convites para palestrar sobre o assunto, que eu gosto bastante.

Na versão 2013 da palestra eu coloquei alguns novos frameworks, removi alguns e mudei um pouco a abordagem, colocando slides com pouco texto. Por isso resolvi fazer este post, para explicar alguns slides e principalmente a analogia que usei para a apresentação.

Eu dividi os frameworks em dois grandes grupos: os frameworks “full stack” e os “micro frameworks”. O primeiro grupo é formado por frameworks que nos fornecem um conjunto grande de funcionalidades como cache, validações, helpers, segurança, acesso a banco de dados, etc. Geralmente eles nos fornecem tudo que precisamos para a maioria das aplicações web. Já os micro frameworks são focados em apenas algumas funcionalidades, geralmente controle de rotas e requisições/respostas HTTP. Os micro frameworks são muito usados para construirmos sites pequenos ou aplicações bem específicas como uma API.

E para explicar cada framework eu usei uma analogia usando bandas de rock/heavy metal. Eu aprendo mais fácil quando consigo fazer uma analogia com algo do “mundo real”, por isso sempre tento usar essa técnica quando preciso ensinar algo para alguém. E como eu gosto muito de heavy metal não resisti a tentação. Vou tentar explicar o que eu pensei quando escolhi as bandas para representar os frameworks:

  • O Zend Framework 2, assim como o Black Sabbath, é formado por grandes componentes que funcionam perfeitamente separados, mas quando usados em conjunto tem um efeito fantástico. Além disso, o Black Sabbath é minha banda favorita, nada mais justo usá-la para representar meu framework favorito.

  • O Symfony, assim como o Iron Maiden, é um clássico que conseguiu renovar-se e continuar relevante no decorrer dos anos. O Symfony evoluiu muito deste as suas primeiras versões e continua lançando novidades e mantendo o interesse dos seus fãs além de atrair novos adeptos constantemente.

  • O Laravel é um framework que vem crescendo muito nos últimos anos e vem ganhando novos fãs numa velocidade incrível. Mas alguns desenvolvedores “das antigas” ainda olham para ele com um pouco de desconfiança. Parecido com a história do Avenged Sevenfold.

  • Gosto muito do CakePHP porque foi um dos primeiros frameworks que eu usei profissionalmente e eu aprendi bastante com ele. Posso dizer o mesmo do Deep Purple, que é uma das bandas que influenciou muito o heavy metal, mas ambos mudaram pouco nos últimos anos. A banda e o framework continuam em atividade mas os seus lançamentos não vem apresentando muitas novidades nos últimos anos.

  • O Phalcon é um framework com uma abordagem um pouco diferente pois é baseado em uma extensão do PHP, escrita em C. O objetivo dele é ser rápido, assim como o Metallica no começo de carreira, que era uma das bandas que tocava mais rápido.

  • O Silex é o meu micro framework favorito. Baseado em componentes do Symfony ele é muito rápido e fácil de ser usado e estendido. Usei o Bruce Dickinson como analogia pois é um dos meus vocalistas favoritos e é um componente do Iron Maiden ;)

  • O Slim é um ótimo exemplo de micro framework, um pequeno notável, como o falecido Dio, ex-vocalista do Black Sabbath e outro dos meus favoritos.

  • E para representar o ótimo micro framework Respect eu usei um ícone brasileiro, assim como ele: o ex-vocalista do Sepultura Max Cavalera. O Respect é um projeto nacional criado e mantido pelo @alganet.

Sei que deixei de fora alguns frameworks mas é impossível citar todos em uma palestra de 50 min, então eu precisei escolher alguns. Escolhi os que eu acho mais relevantes e também os mais modernos para apresentar a novos usuários.

E por favor fãs de Ruby on Rails, me perdoem a brincadeira. Sou grande fã do framework e cito ele como uma das melhores coisas que surgiram no desenvolvimento Web, mas não podia perder a piada ;)

Se você não concorda com alguma das analogias ou gostaria de citar outro framework por favor fique a vontade para discutir o assunto nos comentários do post.