Back-End

19 nov, 2014

CakePHP – criando um plugin para multiupload de imagens com Behavior e Helpers

Publicidade

Olá, pessoal! Neste artigo, vou falar de um framework PHP que uso bastante, que é o CakePHP. Ele é bem completo e oferece ótimas soluções para o dia a dia. Vou falar sobre como fazer para reaproveitar ao máximo uma lógica que vai ser usada da mesma forma em lugares diferentes.

Como exemplo, em um upload múltiplo de imagens, normalmente a única regra de diferença entre um lugar e outro é o tamanho do thumb. Então por que validar no model? Ou no controller? E se a gente pudesse fazer uma maneira de escutar todos os models que querem fazer upload e imagem e tratá-los sem que eles tenham que escrever métodos nem nada, simplesmente dizendo “eu quero fazer upload”? É isso que o Behavior faz. Os behaviors no cake são comportamentos: se um model quiser o comportamento de upload, ele vai dizer actasAs = “Upload” e pronto, nosso behavior de upload vai fazer todo o trabalho.

Tá, mas se já vamos separar tanto, por que não usar um plugin? E deixar esse nosso upload totalmente fora da aplicação ficaria demais, né? E, para melhorar, que tal criarmos um helper no cake para gerar os file inputs dinâmicos?

Então, como você pode ver no vídeo, vamos criar um plugin de multiupload de imagens, utilizando um behavior, vamos criar thumbs com tamanho proporcional usando a biblioteca WideImage do php.

O código criado está disponível no GitHub.