PHP Categoria

Conheça os cursos gratuitos do WebDevBr! - Inscreva-se!

PHP é uma popular linguagem de scripts de propósito geral que é especialmente adequado para desenvolvimento web. Rápido, flexível e pragmática, PHP da poderes a tudo, desde o seu blog até os sites mais populares do mundo.

Cursos de PHP


Vídeos sobre PHP

Métodos Mágicos __set() e __get() - Curso de Orientação a Objetos Básico no PHP

Nesta aula vamos aprender como usar os métodos __set() e __get() para manipular os valores dos atributos da nossa entidade facilmente no futuro. Exemplo final completo: https://github.com/erikfig/arena-php Meus cursos: https://www.webdevbr.com.br/ Como complemento , indico os seguintes links: Documentação oficial - http://php.net/manual/pt_BR/language.oop5.overloading.php#object.set Artigo A…

Primeiro teste automatizado - Curso de Orientação a Objetos Básico no PHP

Continuando a série de introdução a orientação a objetos vamos ver um pouco sobre testes unitários e como facilitar as coisas configurando um phpunity.xml (que é opcional, mas indicado) e criar o primeiro exemplo que será evoluído na próxima aula. Exemplo final completo: https://github.com/erikfig/arena-php Meus cursos: https://www.webdevbr.com.br/ Como complemento , indico os seguintes links:…


Atributos, Magic Methods e Visibilidade - Curso de Orientação a Objetos Básico

Atributos, Magic Methods e Visibilidade - Curso de Orientação a Objetos Básico

Porque e como tratar erros no PHP?

No vídeo desta semana vou mostrar o porque e como tratar erros no PHP usando Exceptions usando Try, Catch e Throw para disparar erros personalizados e qual a diferença do PHP 5.6 e o PHP 7 neste quesito. Exemplo no GitHub: https://github.com/erikfig/exemplos-t... Meu curso de orientação a objetos: https://www.webdevbr.com.br/curso-php... Links que são interessantes: Artigo que falo sobre Whoo…


Como medir performance no PHP com XDebug

É verdade que muitos publicam seus projetos desenvolvidos sem nenhuma noção de consumo ou se baseando apenas na teoria que o framework vai fazer milagres, neste vídeo que mostrar como instalar e usar o XDebug para medir a performance da aplicação. Vale lembrar que você NÃO deve fazer isso em produção. Os links do vídeo: https://github.com/jokkedk/webgrind https://xdebug.org/

Introdução - Curso de Orientação a Objetos Básico

Sexta-feira! Dia de série (pra não falar curso) no Youtube, como esta é a primeira que publico decidi falar um pouco sobre Orientação a Objetos usando como exemplo de projeto um "jogo de simulação luta" (note as aspas), a ideia do jogo é você criar seu lutador e colocar para lutar contra os adversários direto no console, mas nada vai impedir você de oferecer suporte a json, por exemplo, e criar a…


Entendendo Interfaces no PHP

Nesta aula vamos descobrir pra que serve e como usar interfaces no PHP e também o que é o Princípio da Inversão de Dependências (o D do SOLID). PHP Brasil no Telegram: https://telegram.me/phpbrasil Cursos: https://www.webdevbr.com.br/ Participe do Slack do WebDevBr, botão vermelho no topo do site: https://www.webdevbr.com.br/

Como instalar pacotes globalmente no Composer

Neste vídeo vamos ver como instalar recursos como PHPUnit, PHPCodeSniffer e qualquer outro globalmente e assim evitar que precisem ser instalados em cada novo projeto que você precisar deles. #EviteRetrabalho PHP Brasil no Telegram: https://telegram.me/phpbrasil Curso grátis de Composer: https://www.webdevbr.com.br/composer-na-pr%C3%A1tica Cursos: https://www.webdevbr.com.br/ Participe do Slack…


Deploy, Um pouco além do básico

O vídeo acabou ficando com alguns chiados no começo, enquanto trabalho pra remover já liberei o acesso pra vocês! Aqui o link para baixar o GitBash: http://git-scm.com/

Presenter - Repository Pattern no Laravel com Fábio Vedovelli

Este vídeo fez parte do curso de Laravel na PHP Conference 2015, ministrado por Erik Figueiredo


Login com Facebook + PHP - Parte 2

Link para os arquivos Link para o Developers do Facebook

Login com Facebook + PHP - Parte 1

Link para os arquivos Link para o Developers do Facebook


Como baixar e instalar o Doctrine

Como baixar e instalar o Doctrine

Como e porque usar Dependency Inversion

Como e porque usar Dependency Inversion


Começando com o Composer

Começando com o composer

Mágica, não! Métodos interceptadores

Mágica, não! Métodos interceptadores


Enviando email com Zend Mail

Enviando email com Zend Mail



Hangouts sobre PHP

Porque Laravel e Vue não é uma boa idéia?

Para ser avisado deste e outros hangouts, cadastre-se: http://eepurl.com/bGN_pH Neste Hangout vamos falar sobre o porque a ideia de integração entre front-end e back-end pode não ser uma boa pra você, como conseguir ajudar e como aprender o seu primeiro (ou segundo, terceiro...) framework rapidamente.

PHP e Segurança

No hangout desta semana quero falar um pouco sobre segurança na web. Para ver / sugerir os tópicos deste Hangout: https://goo.gl/forms/dwNqMD9YJtoaAWSz1 Visite o WebDevBr e assista os Hangouts e Screencasts publicados anteriormente. Brincadeira sobre segurança Vamos começar uma brincadeira? Você conseguiu baixar um arquivo secreto, você não sabe o que tem dentro Este arquivo pode ser baixad…


Hangout CakePHP 3 - Porque, Como e Até onde é uma boa idéia?

Neste Hangout vou abordar algumas dúvidas da comunidade: Porque o CakePHP? Como começar com o CakePHP? Até onde o CakePHP é uma boa ideia? Este hangout, embora voltado para iniciantes, terá boas dicas e sugestões para quem já é mais avançado com o framework!

Hangout - Organização de Projeto da Comunidade PHP Brasil do Telegram

Neste Hangout vamos falar um pouco sobre APIs RESTFul e sobre como organizar um projeto em equipe, o foco será sobre as ideias de projetos fornecidas pela comunidade PHP Brasil do Telegram na página https://github.com/brasil-php/forum/i... do GitHub. Você também pode entrar lá e fornecer ideias de projetos. Vale lembrar que já temos as mais variadas sugestões de projetos e interessados em vária…


PHP Boas práticas

Curso PHP Práticas modernas: www.webdevbr.com.br/php-praticas-modernas.html Fala pessoal, este Hangout será um pouco diferente dos demais, dessa vez vou ser mais prático e mostrar as ferramentas e práticas que utilizo no meu dia a dia quando vou desenvolver um novo recurso. Neste Hangout quero falar sobre: Porque componentes independentes de frameworks Singleton para facilitar o uso Strategy …

Hangout – ABRAPHP - Associação Brasileira de Profissionais PHP

Quando será? Dia 31/03 - terça - 21:00 - sugerido Quem irá participar? Andre Cardoso, Er Galvão, Elton Minetto, Ricardo Coelho, Luís Otávio (a confirmar) e Erik Figueiredo. Qual a duração Aproximadamente 1:30h. Para quem é indicado Programadores PHP de todos os níveis comprometidos com suas carreiras. O que vamos falar O foco real será as vantagens sobre se associar a ABRAPHP, os serviço…


6º Hangout CakePHP

Ingredientes: 1 Andre Cardoso​ 1 Erik Figueiredo​ Convidades a gosto 1 pitada de CakePHP 1 1/2 xícara de CakePHP 2 1 porção de CakePHP 3 Modo de preparo: Falar um pouco sobre a saída do CakePHP 1 e como migrar de versão, como começar no CakePHP 2 e as novidades do CakePHP 3.

Hangout – PHP OOP, TDD e Frameworks – O caminho do sucesso

Neste Hangout vamos falar um pouco sobre muita coisa no PHP, mas o foco real será sobre Frameworks PHP (com foco no Adianti Framework) e TDD e sobre a experiência de Pablo Dall'Oglio e Andre Cardoso sobre os assuntos. Quero passar uma mensagem aqui: o perigo da estagnar a carreira no que se diz respeito a frameworks, porque parar só porque achou um framework bacana? Terá muita coisa legal aqui,…


5º Hangout de CakePHP - Console and Shells

Neste mês vamos falar sobre Console e Shells, como usar o Bake, personalizar a saída da View, o que é shell e como criar uma, como rodar uma cron job, schemas e tudo pra você dominar o console

4º Hangout CakePHP 3

Nesta 4ª edição do nosso hangout vamos falar do CakePHP 3, sobre as novas mudanças e como começar com esta versão.


3º Hangout CakePHP 2 - Segurança

Com muitos exemplos práticos Tayron Miranda, Juan Basso e eu (Erik Figueiredo), vamos falar sobre Segurança no CakePHP, quais as brechas que o pessoal deixa, gerenciamento de permissão com ACL, os * Injections (* = caracter chave que casa qualquer coisa), debugs e afins da vida. Para participar do 4º Hangout: https://plus.google.com/u/0/events/corifuc6k0dj331funp5ifsca68 - 4º Hangout CakePHP Os…

2º Hangout CakePHP 2 - TDD

Tema: TDD (Desenvolvimento Orientado a Testes). Um bate papo abordando as experiências do dia a dia, boas práticas e visão sobre TDD de Juan Basso, Thiago Belem, Tayron Miranda, André cardoso e Erik Figueiredo. Alguns links links interessantes: http://www.assando-sites.com.br - Cursos http://www.webdevbr.com.br - Cursos http://aldeiaco.com.br/cursos-aldeia - Coding Dojo (Indicação do André Car…


1º Hangout CakePHP 2

Tema: Do inciante ao avançado! Abordaremos as principais dúvidas do iniciante, e tentar guiar todos os níveis de devs CakePHP a encontrar o caminho do desenvolvimento com CakePHP para web ou sistemas particulares. Como prometido os links compartilhados: Dos participantes: http://www.tayron.com.br/blog - Blog http://blog.erikfigueiredo.com.br - Blog http://www.andrebian.com - Blog http://www.w…



Artigos sobre PHP

Slim Framework 3 para quem não conhece - Entendendo o padrão MVC na prática

Slim Framework é um microframework PHP que ajuda você a escrever rapidamente aplicações web simples mas poderosas e APIs. Extremamente simples de se usar o Slim Framework oferece uma rápida e poderosa maneira de criar aplicações web com flexibilidade e a possibilidade de expansão de uma forma que frameworks como Laravel, CakePHP ou outros frameworks full stack não poderiam, claro que não é p…

Login com Lembra de mim no CakePHP 3

Um recurso básico, mas ao mesmo tempo extremamento delicado e longe de ser simples, a não ser do ponto de visto de um tolo, o famoso checkbox "lembrar de mim" nos formulários de login merece uma atenção dedicada e constante. Neste artigo quero mostrar como implementar um "lembrar de mim" na autenticação do CakePHP 3. Não vamos usar a senha do usuário, em vez disso vou usar um token aleatório qu…


Strategy - Padrões de Projeto no PHP

Uma das minhas soluções favoritas, o Strategy é um padrão de projeto comportamental que muita gente já usou sem saber! Este padrão de projeto é usado para encapsular seus códigos de forma a facilitar a expanção de recursos de forma organizada e eficiente, a grande diferença entre ele e outros padrões de projeto comportamentais é a forma simples como ele se apresenta. Imagine que você tem uma lo…

Conectando no banco de dados com o Eloquent - Entendendo o padrão MVC na prática

Continuando nossa série, desta vez quero mostrar como unir Illuminate/Database (vulgo Eloquent) e Slim Framework e assim prover-nos de uma sólida e eficiente camada de Model com ORM, Query Builder, multiplas conexões, tudo o que você tem direito e mais. Migrations Antes de configurar o Eloquent eu preciso de uma tabela no banco de dados (!!!), eu prezo muito a facilidade futura do deploy (publi…


Padrão PSR-4 de desenvolvimento PHP - Criar um autoloader

A exatamente 2 anos, 8 meses, 1 semana e 2 dias atrás eu escrevi um artigo sobre a PSR-0, desde então muita coisa mudou na comunidade PHP e, infelizmente, eu aprendo e me atualizo num ritmo muito superior ao que consigo escrever, bem, o que quero dizer é: desculpem a demora. A PSR-4 veio para (como eu havia previso na época) atualizar a PSR-0 e deixar o autoload "mais flexível", a PSR-0 foi marc…

Template Method - Padrões de Projeto no PHP

Template Method é um padrão de projeto comportamental e um dos meus preferidos já que ele define os métodos a serem usados na classe abstrata e a concreta apenas segue a regra, ou seja, eu tenho uma estrutura fixa e bem definida. O resultado é uma api mais simples e uma organização de código nas classes muito mais elaborada. É muito comum (comum != sempre) as classes concretas que adotam o Templ…


Orientação a objetos - Conceitos essenciais [exemplos em PHP]

Orientação a objetos é essencial para qualquer programador PHP (e de qualquer outra linguagem) que leve sua vida profissional a sério, mas muito do que abrange OO precisa de teoria, o que é horrível na realidade do ensino de programação nos dias de hoje, o público quer prática e mais prática e nem sempre isso é possível. Acredite em mim, as vezes a prática atrapalha um pouco. Este artigo terá si…

A escolha das ferramentas - Entendendo o padrão MVC na prática

Seguindo com nossa série de artigos sobre MVC, desta vez, vamos instalar e configurar a estrutura do nosso projeto, quero falar um pouco do motivo da escolha de cada ferramenta e se possível, algumas alternativas, neste artigo vou falar um pouco sobre cada componente e também já criar os arquivos iniciais, responsáveis por retornar os dados de configuração. Os outros artigos desta série. O Comp…


MVC na prática - Entendendo o padrão MVC na prática

MVC é o design pattern que separa a "camada lógica" da "camada de exibição" em uma aplicação e é largamente utilizado desde projetos pequenos até os realmente muito grandes, veja por exemplos os frameworks PHP, Zend Framework, Laravel, CakePHP e muitos outros usam e abusam do MVC. Nesta aula quero montar um exemplo de código utilizando MVC sem usar qualquer ferramenta externa, vou tentar me mant…

URLs Amigáveis com PHP, .htaccess (Apache) e Nginx

Embora muito usadas em frameworks modernos (e até os não tão modernos), URLs amigáveis ja foram uma revolução na internet, mas ainda hoje muitos tentam aplicar nos projetos com base em parâmetros GET, o que leva complexibilidade ao seu .htaccess a medida em que mais formatos de URLs aparecem, mas e que tal levar esta complexibilidade para o PHP resolver e podermos montar a URL amigável que quiser…


Deploy automático com GitHub e PHP

Neste artigo vamos aprender como enviar os dados automaticamente do GitHub para o servidor final sempre que atualizarmos o repositório (no GitHub), para isso vamos usar webhooks. O processo é simples e natural e você pode implementar suas próprias regras, nada de Capistrano, Jenkins, Deployer e ferramentas novas, apenas o simples e puro PHP. O que você precisa Neste ponto é ideial que você conh…

Upload no Laravel 5

Neste artigo vamos falar um pouco sobre upload usando o Laravel 5.1, a grande vantagem que ví logo de cara é que ele usa o HttpFoundation nos bastidores, já comecei me sentindo em casa. Outra vantagem é que o \Input::file() automatiza tudo, é impressionante. O formulário Para o HTML do formulário eu crieu uma nova view em resouces/views/products/upload.blade.php com o seguinte código. <…


Silex - Controller como Classe, indo além

Um dos empecilhos que mais me incomodaram quando comecei com Silex é a forma como ele trabalha com controllers, da até pra criar um arquivo separado pra organizar, mas para quem gosta dos controllers em objetos fica tudo muito estranho (por falta de definição melhor). A solução, mas nem tanto Logo encontrei uma pequena página da documentação sobre o assunto e meu código mudou disso: $helloWord…

Laravel 5 - Eventos do Eloquent

Eventos são métodos (functions) que disparam automaticamente sempre que uma determinada ação é executada no seu banco de dados, imagine que você precisa fazer algo sempre que criar um novo registro, por exemplo, sempre que criar um novo usuário você quer criar um novo diretório para arquivos desta pessoa, vamos ver na prática. Entendendo o ciclo Os eventos disponíveis são estes listados a segui…


Slim Framework - Autenticação

Um micro framework muito bom que tenho usado cada vez mais é o Slim Framework, a documentação é clara,  é muito simples integrá-lo com qualquer componente PHP e eu adoro o mode (modos de uso), que são configurações específicas, por exemplo, para produção e desenvolvimento. Neste primeiro artigo que escrevo sobre o Slim quero mostrar um pouco sobre autenticação,  e claro, temos que configurar a c…

CakePHP 3 e relacionamentos entre tabelas

O artigo de número 100 não poderia deixar de ser sobre CakePHP, e desta vez quero falar um pouco sobre relacionamentos entre tabelas, um assunto que tira o sono de muita gente, vamos ver? hasOne - Um para um O relacionamento hasOne informa que um registro está relacionado a apenas um outro registro, por exemplo, um usuário pode ter apenas um perfil em uma rede social. Para definir um relaciona…


Migrations e Seeds no Laravel 5

Uma das primeiras coisa que faço quando começo a trabalhar em um novo projeto é modelar o banco de dados (acho que todo mundo, né) e de alguma forma passar a responsabilidade de criar e manter todas as tabelas ao PHP, para facilitar o deploy e eu não ter que ficar indo até o banco de dados toda hora (produtividade). E isso tem nome, chama migrations. Criando tabelas com Migration O Laravel 5 já…

Criando templates - Entendendo o padrão MVC na prática - Parte 11

Esta não é a última parte desta série, a minha vontade era voltar e reescrever tudo, mas não posso, seria um desrespeito com quem vem acompanhando desde a primeira publicação em 24 de outubro de 2013. Muita coisa mudou por aqui e quero que vocês acompanhem, então com o fim desta etapa vou começar outra (que terminarea rápido, prometo!) e vamos voltar e refatorar tudo o que foi feito utilizando pa…


Criando e configurando a aplicação - Entendendo o padrão MVC na prática - Parte 10

É isso ai, nosso framework está pronto, agora vamos ver um exemplo simples de utilização, pra não estender muito vamos apenas listar dados do banco em um tema do Twitter Bootstrap, neste artigo vamos ver a parte lógica da coisa, só vamos trabalhar no diretório App apenas. Os outros artigos desta série. A primeira coisa a se fazer é acessar App/Core/Config.php e inserir as configurações de banco…

5 coisas que um desenvolvedor PHP deve fazer e não faz

Existem muitas práticas que melhoram significativamente o desempenho do desenvolvedor e da aplicação, e são, em sua maioria, passos simples e rápidos, mas que vão mudar a sua maneira de ver as coisas. Alguns vão te dar novos caminhos pra resolver seus problemas rapidamente, outros serão configurações no php.ini, enfim, vamos as dicas. 1. Ativar o OPcache Muito se ouviu falar sobre a melhora de …


Como identificar problemas de performance no PHP com Xdebug

Esse é um assunto recorrente entre os devs de todas as linguagens, como saber se a sua aplicação está ou não consumindo mais recursos do que deveria? Posso responder em uma palavra: Profiling. O que é profiling Profile é perfil em inglês, quando uma palavra termina em ing, é o ato de fazer aquilo, (desculpem a explicação, inglês não é meu forte), profiling pode ser algo como geração de perfil. …

PSR-7 - O que é isso afinal de contas

A PSR-7 foi aprovada, muitos devs esperavam ansiosos por isso, mas muitos que ouviram falar não sabem ao certo o que essa nova regra faz, outros que não ouviram falar vão ouvir agora. O que é a PSR-7 Em tradução livre direta de https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-7-http-message-meta.md O objetivo da presente proposta consiste em proporcionar um conjunto de inte…


Transações no PDO, garantindo que tudo vai ser executado

Transactions são a maneira que o PDO do PHP tem de garantir que várias queries sejam executadas e em caso de erro, nenhuma será, simples assim! Imagine que você tem um script que precise executar um query baseado em outro, existem muitos exemplos a se pensar, vamos trabalhar com a ideia (até um clichê) que você tem um sistema financeiro que vai fazer a transferência entre contas, então temos: $v…

PHP desacoplado? É o futuro, é agora!!!

O PHP caminha cada dia mais para componentes especializados em resolver um problema único do que para grandes frameworks com recursos que tentam de salvar de tudo, você deveria ter o direito a escolher um ORM ou DAL diferente do Eloquent ou o Cake\ORM simplesmente por preferir assim. Mas a coisa caminha a passos largos (para nossa alegria). "E a interoperabilidade entre frameworks significa t…


[PHP CACHE] OPcache - Instalando e usando

Todo mundo sabe que cache é a primeira coisa a se fazer para melhorar a performance de uma aplicação. O que muitos devs não sabem é que o PHP já vem com o OPcache desde a versão 5.5 ou superior, mas calma, se você não usa esta versão do PHP não se preocupe, não vai afetar seus arquivos PHP, a configuração é feita dentro do php.ini. Como funciona? Sempre que requisitamos um arquivo PHP ele faz t…

Organizando as configurações - Preparando para o Deploy - no CakePHP 3

A primeira coisa que me irritou quando baixei a versão (ainda em beta) do CakePHP 3 é que agora as configurações ficam todas em um único arquivo. E se eu precisar configurar algo que deveria refletir no servidor de produção e localmente? Eu teria que editar o arquivo no servidor (que aqui é via SSH, sem FTP) ou criar uma rotina para identificar aonde estou (produção ou desenvolvimento), mas calma…


Criando projetos com o Composer

Quem já trabalha com o Composer sabe como ele agiliza o trabalho, ainda mais quando começamos a criar pequenos pacotes com recursos que usamos muito e assim evitar ficar escrevendo a mesma coisa toda hora. Pois bem, e se em vez de apenas pacotes criarmos uma estrutura "padrão de trabalho". Essa dica é valiosa pra quem não usa um framework ou usa micro-frameworks. Se você ainda não sabe usar o C…

Banco de dados com PDO – parte 2 - Entendendo o padrão MVC na prática – Parte 09

Eu quero que meu framework MVC possa ser usado com outros bancos de dados, por isso vou criar uma classe chamada DbMysql que vai herdar os métodos que criamos na SuportePdo do artigo anterior. Esta classe também vai se conectar ao banco de dados, então: namespace Erik\Core\Master; use PDO; use Erik\Core\Master\Db\Suporte_Pdo; class Db_Mysql extends Suporte_Pdo { public $db,$table,$mysql; …


Campanha por um PHP sem o else!

Você sabia que tem muitos programadores que dispensam o uso do else? Sim, tem gente que tem verdadeira fobia a ele e até discrimina quem usa, mas porque? Na InterConPHP do ano passado (atual PHP Experience 2015, na qual eu vou!) Guilherme Blanco deu uma excelente palestra (Object Calisthenics e Clean Code) e falou sobre o assunto (https://www.youtube.com/watch?v=u-w4eULRrr0), como está chegando …

Usando o Xdebug do PHP

O Xdebug é uma ferramenta incrível que tem que fazer parte do seu dia a dia como dev PHP se você quiser ser levado a sério. Depois que você aprender a usar não vai mais viver sem ele. Instalação Pra instalar o Xdebug é muito fácil graças a ferramenta que analisa o phpinfo() e te da a opção e as configurações necessárias para a extensão funcionar, não vou nem entrar em muitos detalhes de tão sim…


Instalando o Doctrine ORM - Como criar um CRUD com PHP

ORM ou Object Relational Mapping é a design pattern maravilhosa para se trabalhar com bancos de dados relacionais como é o MySql, por exemplo. A real vantagem do Doctrine ORM é que ele cria uma cópia do seu banco de dados em forma de objetos, cada tabela tem a sua própria classe PHP e cada campo é uma variável. Esse conceito é chamado de entidade, ou seja, cada objeto (classe) é uma entidade do …

Banco de dados com PDO – parte 1 - Entendendo o padrão MVC na prática – Parte 08

Parece que não, mas estamos na reta final. Agora que já temos quase tudo pronto vamos ver a "parte mais legal da bagaça", o banco de dados. Os outros artigos desta série. Vou tentar manter o mais simples possível, então pra facilitar a vida vou criar uma classe que vai automatizar alguns processos, como o prepare(), bindValues() e o execute() do PDO. Pra quem não conhece o PDO tenho um artigo …


PDO e Segurança - CRUD com PDO e MySql

Nesta série vamos aprender a criar um CRUD com PDO e Mysql. A ideia é ter uma classe genérica que ofereça métodos de cadastro, atualização, leitura e remoção de dados em um banco MySql da forma mais prática possível, para isso precisamos entender um pouco mais sobre como trabalhar com banco de dados. O PHP Data Object (PDO) O PDO é o que usamos para lidar com o banco de dados no PHP. Meus três …

A camada view – Entendendo o padrão MVC na prática – Parte 07

Para a camada de View do nosso framework MVC eu quero templates HTML que recebem o conteúdo de que cada action do controller com um arquivo de view exclusivo, como é em todos os outros frameworks. Também vou precisar pegar variáveis do controller para a nossa view, então vamos lá. Vou precisar então criar um diretório aonde vou guardar meu template, ele chama "App/Templates" e já vou deixar meu …


10 ferramentas e outras coisas que todo desenvolvedor PHP deve dominar

Fala pessoal, essa é pra todos que trabalham com PHP. Estamos em um processo de constantes transições aonde excelentes ferramentas e técnicas caem em desuso todos os dias e novas surgem no lugar. Ter boas ferramentas nas mãos pode ajudar a manter um pouco de constancia ao tempo em que somam práticidade e agilidades que são indispensáveis. 01 - Conhecer IDEs e Editores de textos É isso mesmo qu…

As Camadas Model e Controller - Entendendo o padrão MVC na prática – Parte 06

E vamos começar a parte legal, construir nosso controller e model. O controller master Vamos precisar carregar o model e a view a partir do controller e isso é uma coisa chata de ficar repetindo, por isso vou usar aqui o Master_Controller para carregar as outras, este seria o "motor" do nosso controller, no fim ele será extendido pelo controller carregado pelo roteamento. Crie o arquivo Librar…


Criando o roteamento do MVC - Entendendo o padrão MVC na prática – Parte 05

Será que esse é o artigo mais esperado? Não sei, mas sei que teve muita cobrança, e agradeço muito a Deus e vocês por isso! Obrigado por não me deixar desistir! Agora sim, vamos lá: O que é roteamento? Quando falamos em MVC pensamos logo em Model para manipular os dados, a View pra exibir e o Controller pra decidir o que o model faz com os dados e quando a view deve exibir estes dados, mas ai …

Tema para WordPress [GUIA INICIANTE]

De vez em quando aparece alguém me perguntando sobre WordPress. Então resolvi preparar esse material pra galera. Estrutura de básica O WordPress trabalha com uma estrutura de arquivos que ajuda muito no desenvolvimento, vou separar em 3 grupos pra ajudar, mas antes entenda que um tema tem que estar dentro do diretório wp-content/themes/{nome do seu tema}. O mínimo necessário Para que um tema …


Lançado o PHP 5.6

E acaba de sair o PHP 5.6.0 cheio de novidades, como não sou do tipo que fica pra traz já dei uma estudada e gostei muito do que ví, vou dar uma passada com alguns exemplos e também deixar o anuncio oficial traduzido aqui pra vocês. Antes de continuar vou também avisar que a alguns dias está disponível o PHP 5.5.16 e o 5.4.32, se você usa as versões 5.5.x ou 5.4.x atualize-se. Expressões escalá…

Dicas para se atualizar para CakePHP 3

Esse é o ponto, a transição, o momento! Então é isso, a partir deste momento o meu blog não terá mais novos conteúdos para a versão 2 do CakePHP e mesmo o que já existe será progressivamente atualizado para a nova versão, calma, ainda vou manter os artigos antigos. E como não podia deixar de ser, vou passar umas dicas pra vocês que estão querendo dar uma conferida no que há de novo. Instalando …


Descomplicando o Zend Framework 2 - Módulos, Eventos e Service Manager

Pra começar de verdade por aqui, eu queria descomplicar as coisas para quem está começando, então vou escrever um pouco sobre Módulos, Eventos e o Service Manager. Vejo muita comparação sobre porque usar o ZF2 ao invés do CakePHP, ou CI (Code Igniter) ou Laravel, e não da pra você comparar simplesmente porque alguém falou que era melhor, além da obvia falta de personalidade, cabe a você entender…

Utilizando - Como usar o Composer - parte 1

Muito se ouve falar sobre Composer hoje em dia, mas ver na prática o que ele pode te oferecer é algo que só quem busca as coisas certas vai acabar descobrindo sem querer e se maravilhar, e saiba, quem ainda não usa vai começar a usar em breve ou ficar pra traz, e digo isso em relação a frameworks conhecidos como o CakePHP por exemplo, que vai usar na versão 3.x muito mais do que na versão 2.x (vo…


O mundo além do Twitter Bootstrap

Não é segredo pra ninguém que eu sou amante do desenvolvimento front-end usando o Twitter Bootstrap, até quando substitui meus CSSs por SASS levei ele junto (e adianto, foi maravilhoso, um dia falo disso aqui). Mas saibam que meu mundo não gira em torno do TB (Twitter Bootstrap pros íntimos), saibam que tem muita coisa legal pra usar hoje em dia. Estava eu aqui, de noite, deitado na minha sala, …

Criando recursos (utilitários) para o framework - Entendendo o padrão MVC na prática – Parte 04

Seguindo com nossa série de artigos. Agora que você já tem a estrutura do Framework e um autoloader configurado, está na hora de criarmos algumas funções de "utilidades" para nos ajudar posteriormente, eu vou criar uma classe de tratamento de strings (inflector) e uma para tratar as requisições. Vamos começar pela mais curtinha, a inflector. Criando uma função de tratamento de strings Durante…


Requisições Ajax com CakePHP - Artigo super completo

Como tudo em CakePHP, fazer requisição ajax não é um bicho de 7 cabeças, retornar uma view formatada para o ajax, retornar o array do find() em json, gerar o html com os options em um select ou o que você precisar, é fácil e muito prático de conseguir. O que é Ajax (leia, por favor) E dizia Zeca Pagodinho: "Nunca vi nem comi eu só ouço falar", e é essa a realidade de 90% (se não mais) dos des…

Como estudar CakePHP e ficar fera no framework!

A algum tempo enviei um email pro pessoal que adicionou a newsletter aqui do blog (ai do lado direito) e tive alguns feedbacks de uma galera que gostou e seguiram o guia de como estudar CakePHP que encaminhei para eles, portanto vou postar aqui no blog e tentar ajudar mais pessoas ainda. A grande verdade é que ser auto-didata tem o contraponto do tempo, com um curso você tem um guia que te ajuda…


13 CMSs desenvolvidos com CakePHP

Uma pergunta que virou e mexeu volta as redes sociais é: Existe CMSs construídos com CakePHP e quais são? Para responder esta pergunta eu pesquisei na internet e não encontrei poucas boas soluções, vou listar aqui a versão que eu baixei e qual a versão do CakePHP que está sendo utilizada, a maioria parecem estar descontinuados, se você souber de algum lugar mais recente é só me avisar. Não…

Usando o WideImage no CakePHP

Fala pessoal, dois meses e dezoito dias depois do meu último artigo sobre CakePHP (sobre roteamento com banco de dados) cá estou eu novamente, firme e forte. Um tempo atras falei sobre upload de arquivos aqui no blog, hoje vou mostrar como usar a pasta Vendor para carregar o WideImage no CakePHP e assim conseguir recursos poderosos e simples para tratar imagens. Usando o WideImage Para quem nã…


Definindo autoloader para múltiplos diretórios - Entendendo o padrão MVC na prática – Parte 03

Depois da vitória esmagadora deste artigo sobre os demais na pesquisa que fiz aqui sobre o que você gostaria de ver aqui no blog (foi 42% dos votos) estou aproveitando para adiantar este artigo que só ia aparecer por aqui lá para março. Lembra no primeiro artigo quando criamos uma classe para carregar automaticamente os arquivos sem que precisemos usar o require ou include? Então, agora vou me a…

Routes do CakePHP com banco de dados

Se tem algo que não tem muito material na internet é sobre um roteamento com banco de dados no CakePHP, não que já não seja flexível o suficiente, mas sempre da pra melhorar, e é ai que entra o routeClass. O que é routeClass RouteClass é um recurso do CakePHP que permite passarmos a url para uma classe PHP analisar e responder com um array que indique qual Controller, Action e parâmetros devemo…


Como instalar o Zend Framework 2 de forma prática e rápida de 3 formas diferentes

Durante muito tempo dediquei postagens para o CakePHP aqui no blog, depois falei sobre PHP e boas práticas da linguagem e agora vamos inaugurar uma nova seção: Zend Framewok, e não podia começar falando de outra coisa se não como instalar o framework. Quem vem do CakePHP para o Zend Para quem, assim como eu, está vindo do CakePHP vai notar logo de cara uma diferença na estrutura de diretórios…

Login PHP com "lembrar de mim" e bcrypt!

Desta vez vou mostrar como criar um login em php com lembrar de mim e bcrypt utilizando classes, métodos e que será integrado a qualquer projeto PHP facilmente, ele poderá inclusive ser integrado ao nosso Framework PHP, vamos usar um pouco de PDO, mas não se preocupe, vou falar de tudo passo a passo. Então vamos lá, durante este tutorial vou mostrar como se trabalhar com classes e funções (PHP O…


Estrutura básica do framework MVC- Entendendo o padrão MVC na prática - Parte 02

Agora que você já entendeu o que é MVC na primeira aula está na hora de dar um passo a frente e começar a fazer um framework um pouco mais elaborado. Vou querer que o meu framework tenha as seguintes características: A aplicação fique separada da biblioteca que faz o framework funcionar assim eu posso atualizar e organizar melhor as coisas Quero que ele tenha suporte a URLs amigáveis com e sem…

Upload de arquivos e imagens no CakePHP sem plugin!

Pra mim sempre pareceu trivial saber como enviar arquivos e imagens com o CakePHP, todo mundo devia saber como isso deve ser feito, mas em vez disso começamos procurando plugins que supram essa necessidade, pois bem, vou mostrar como funciona o processo de upload no CakePHP usando os Utilities Folder & File do CakePHP, aproveite para conhecer as outras funções do CakePHP. Você pode querer cr…


Exemplo de framework com PSR-0, PSR-1 e PSR-2 - Entendendo o padrão MVC na prática - Parte 01

Para os programadores que estão tentando entender agora o padrão MVC no PHP e como estruturar o próprio framework ou projeto com este nível de organização associado as PSRs (e os que já caminham por essas águas a algum tempo e querem palpitar ou quem sabe até aprender alguma coisa), estou iniciando esta série de artigos sobre o assunto, nesta primeira aula vou falar um pouco sobre o MVC e criar u…

Padrão PSR-2 de desenvolvimento PHP - Ampliando a capacidade de comunicação entre diferentes códigos PHP

Como já devo ter comentado antes, a função principal das normas PSR é formar um padrão universal de desenvolvimento, de forma que códigos de diferentes autores possam coexistir entre si sem causar nenhum transtorno, a PSR-2 estende o que vimos na PSR-1, definindo padrões de escrita que visam não somente a interoperabilidade (a capacidade de comunicação já citada), mas também um arquivo mais organ…


Como criar um CMS completo com CakePHP – Parte 9 – Finalizando o CMS

Parece que foi esses dias que tive a ideia de começar a fazer esta série de artigos, e em 10 de julho publiquei o primeiro artigo, mas agora que estamos terminando deu vontade de continuar escrevendo esta série, mas temos que seguir em frente, não é. Muita coisa mudou neste meio tempo e uma delas é a versão do CakePHP, então se você acompanhou estes artigos junto comigo desde a primeira postagem…

Fazendo o PHP funcionar no console (CMD) do Windows + Instalando o Composer e o Git

Boas pessoal, quero estrear em breve uma nova categoria aqui no blog, Zend Framework 2, mas enquanto me preparo para essa nova empreitada aproveito e preparo vocês também para por acompanhar, e para isso vamos precisar de duas coisas, uma o PHP funcionando no console e o Composer instalado, então vamos lá: Encontrado o caminho até o PHP Pode parecer meio forçado começar o artigo com esse tema, …


Como criar um CMS completo com CakePHP – Parte 8 – Gerando sitemap.xml e robots.txt

Para garantir que seu site será bem indexado pelo Google você tem que seguir uma série de boas práticas, como criar um robots.txt e um sitemap.xml, o primeiro lista as páginas que podem ou não ser indexadas pelos buscadores e o segundo as páginas do site que existem atualmente, neste artigo vamos incrementar no nosso CMS um recurso que irá gerar esses dois arquivos para nós. Embora o conceito de…

Padrão PSR-1 de desenvolvimento PHP – O mínimo para uma boa comunicação entre códigos PHP diferentes

Bem, continuando  com o artigo anterior, quando apresentei as PSRs e falei sobre a PSR-0, agora vou falar um pouco sobre a PSR-1 que seta o mínimo que se deve fazer para desenvolver algo que tenha uma boa interoperabilidade técnica entre códigos PHP, traduzindo, que se comunique bem com outros códigos PHP. As regras são bem simples de se seguir, basta entendê-las. Aqui um link para o repositóri…


Como criar um CMS completo com CakePHP – Parte 7 – Gerando o menu e os elementos do template

Depois de quase tudo pronto, separei essa aula para falar um pouco sobre organização no Cake, sobre elements e também sobre o sofrimento que muitos iniciantes encontram em se criar um menu, então aqui estou eu novamente para trazer-lhes a solução definitiva para seus problemas, ta bom exagerei, vamos pro artigo logo. Antes de começar a criar os elements preciso acertar duas coisas, um helper par…

Como criar um CMS completo com CakePHP – Parte 6 – Gerenciamento de páginas com SEO, gerenciamento do menu, CKeditor e upload de imagens integrado

Bem, estamos na reta final do nosso CMS, neste artigo quero mostrar como fazer o sistema de gerenciamento das páginas do site, alguns recursos são de vital importância para um CMS e estão diretamente relacionados a esta seção do site, como gerenciamento de SEO (tag description, tag title, keywords (embora hoje em dia não sejam tão relevantes, faz parte da função do programador não limitar sua fer…


Buscar CEP com PHP ou CakePHP

Hoje o Alisson da K7 Comunicação me chamou no Facebook pra mostrar um recurso muito interessante que ele está disponibilizando pra Comunidade de programadores, e embora os exemplos da seção como usar sejam para PHP não vejo porque não usar em qualquer outra linguagem, já que o retorno é em json. O recurso anunciado é a busca de CEP, um serviço gratuito e muito prático de usar, para tal vou criar…

Como criar um CMS completo com CakePHP – Parte 5 – Criando o sistema de login com bcrypt e lembrar de mim (segunda etapa)

Bem, e agora pra fechar a parte 5 da série de artigos sobre como criar um CMS com CakePHP, vamos terminar o que começamos no artigo anterior. Nele falamos sobre o Model Usuario e também já deixei pronto o CRUD do controller, agora vamos ver como será o login. Antes de mais nada, se você não rodou o instalador no seu cms, agora é a hora, mas neste caso teremos uma pequena surpresa, nosso tema nã…


Padrão PSR-0 de desenvolvimento PHP - Criar um autoloader

Recentemente me questionaram sobre eu saber o que é MVC e como manter esse nível de organização, pois é, isso me levou a questionar meus próprios conhecimentos e acionei o maior recurso de um programador, o Google, depois de alguns segundos acabei descobrindo que eu realmente sabia o que era, e isso me levou a pensar sobre padrões de desenvolvimento, Orientação a Objeto, PSR, passei pelo PHP: The…

Como criar um CMS completo com CakePHP – Parte 5 – Criando o sistema de login com bcrypt e lembrar de mim (primeira etapa)

Nesta nossa 5ª aula de como criar um CMS completo com CakePHP vou mostrar como criar um sistema de Login com Senhas em bcrypt e implementar o famoso Lembrar de mim, que muitos sabem, faz com que você não precise mais acessar com usuário e senha a área protegida da aplicação (esta é a primeira parte da 5ª aula). O Model Lembra que na aula 03 nós baixamos um Model chamado Usuario, bem agora vamos…


10 dicas sobre CakePHP que podem acelerar e até mesmo salvar seu dia!

Durante o dia a dia do desenvolvedor CakePHP existem passos que as vezes podem nos economizar algum tempo, conforme o tempo passa e vamos saindo do básico coisas como Components, Behaviors, Plugins e Helpers começam a fazer mais sentido e tornar o trabalho mais rápido e produtivo. 01 - Trabalhando com várias versões do CakePHP No artigo sobre instalação avançada do CakePHP mostrei como mover o …

Como criar um CMS completo com CakePHP – Parte 4 – Criando o painel de gerenciamento e sistema de identificação de view por prefixo

Aqui estamos, 4º artigo da série de Como criar um CMS completo com CakePHP, dois artigos em uma semana. Agora vamos configurar o nosso painel de controle, definindo a aparência e navegação com prefix. Instalando os arquivos do frontend. Antes de mais nada precisamos que todo o CSS, Javascript e Fontes já estejam a nossa disposição para trabalhar, assim quando começar, não vou precisar parar pa…


Como criar um CMS completo com CakePHP – Parte 3 – Instalador de banco de dados para CakePHP com Schema

3º artigo da série! Desta vez vamos ver como criar um instalador no estilo Wordpress para nosso CMS. Qual a ideia? A ideia aqui é que ao acessar a URL seusite.com.br/instala/instala o plugin exiba uma tela de checagem do CakePHP, estando tudo ok, partimos para o segundo passo, criar o banco de dados, e no último passo ele crie o usuário administrador, e então deixe de funcionar. Então apagar o…

Internacionalização, um CakePHP Multi-idiomas

Para quem nunca tentou criar um aplicativo multi-idiomas e não travou em algum momento, uma salva de palmas, é uma tarefa para poucos, já que não é só na programação que precisa ser um ninja, mas ter algum conhecimento de outros idiomas (é... o Google Translate não basta, não é só traduzir, tem que escrever para aquele país) e saber como funcionam as datas, moedas e até mesmo o horário local em c…


Como criar um CMS completo com CakePHP – Parte 2 – Criando tabelas e inserindo dados no banco de dados com Schema (Console e Shell)

No primeiro artigo desta série, mostrei como Instalar, configurar e deixar o CakePHP seguro para que possamos criar nosso CMS ou qualquer projeto.. Agora quero mostrar um pouco sobre como usar o CakePHP para criar nossas tabelas e inserir os dados iniciais do CakePHP sem ter que nos preocupar com qual banco de dados vamos usar, lembrando que já temos a nossa disposição Mysql, Sqlserver, Postgres…

Como converter datas no CakePHP para o padrão que você precisar

Uma coisa que vez ou outra vejo as pessoas procurando é sobre datas, como pegar a data padrão do CakePHP (que vem em datetime, exemplo: 2013/08/15 20:30:41) e transformar em 15/08/2013 ou quinta-feira, 15 de agosto de 2013, 20h30m, embora seja muito prático, as vezes não paramos pra pensar que o CakePHP ainda é PHP, e podemos usar recursos do próprio framework com um pouco de lógica php e criar o…


Como criar um CMS completo com CakePHP - Parte 1 - Instalando, configurando e deixando seguro

Boas pessoal, Desta vez estou vindo com uma coisa simples, porém muito bacana e que precisa de muita um conjunto de técnicas diferentes para se transformar em algo realmente prático (para o cliente), seguro, eficiente e porque não poderoso, criar um CMS completo com CakePHP, quero mostrar também alguns recursos básicos que, acredito, deveriam fazer parte de todos os projetos para web, mas vou faz…

URLs avançadas com o routeClass do CakePHP

Essa dica esperta é pra quem quer desenvolver um site em CakePHP e precisa disponibilizar a URL no seguinte formato: www.seusite.com.br/pagina, ou seja, sem controller ou action, apenas o "slug" da página. Entendendo a profundidade da dificuldade (Esta parte do artigo é apenas didática, se não quer entender, apenas pule para Instalando o meu routeClass!) Entenda que por padrão o cakePHP usa o e…


Configurar o CakePHP para usar o Twitter Bootstrap automaticamente

Temos dois casos de uso aqui, Twitter Bootstrap 2.3.2 e o Twitter Bootstrap 3, bem como escrevi este artigo a muito tempo atraz, ele só falava da versão mais antiga com CakePHP 2, vou atualizar para a nova versão. Não se assuste, vou manter a anterior também. Twitter Bootstrap 3 CakePHP 3 Para o CakePHP 3 com Twitter Bootstrap 3 eu criei um plugin que automatiza muito as coisas, ele está dispo…

Upload ajax multiplo com CakePHP integrado ao CKeditor

Tenho visto muitas pessoas procurando por sistemas de upload de imagens para o CakePHP e eu mesmo tive que procurar algo parecido, porém (pouco exigente eu), precisei de algo que se integrasse também ao CKeditor, sabe aquele botão de inserir imagens, pois é, tinha que ser ajax, envio multiplo e com integrado ao CKeditor. Bom, nem mesmo abri o Google, peguei um papel e uma caneta e comecei a rabis…


* Parcelamento apenas cartão de crédito! Pode haver uma pequena variação no parcelamento em relação a simulações apresentadas!