Tutorial Phalcon completo para iniciantes

Neste tutorial do Phalcon, nós apresentaremos para você a instrução passo a passo sobre como criar seu primeiro projeto. Lembrando que todos os nossos planos de hospedagem incluem a extensão Phalcon padrão, portanto, este tutorial será muito útil para você. No final deste tutorial Phalcon, você terá um formulário de registro funcional que armazena as informações coletadas em um banco de dados MySQL.

Com base na arquitetura do MVC (model-view-controller), um modelo de estrutura geralmente utilizada para o desenvolvimento de interfaces para usuários, que divide a aplicação em três partes interconectadas, Phalcon é uma estrutura PHP de alto desempenho. A versão inicial foi lançada em 2012 com código aberto e mantém-se assim até hoje. Phalcon foi programado em C e Zephir, também é famoso por ser o primeiro framework a implementar o ORM (Object-relational mapping) em C.

Phalcon é altamente personalizável, pois é escrito em código de alto nível de programação Zephir. Mas isso não é tão complicado quanto parece, pois ele pode ser usado para desenvolver aplicações PHP sem a necessidade de conhecimento em linguagem de programação C. Então vamos começar este tutorial Phalcon comparando ele com outras ferramentas populares de Framework PHP.

Utilizando o Phalcon para Performance

A motivação por trás do desenvolvimento do Phalcon foi criar uma extensão para um servidor o qual aprimora a velocidade de execução, reduz a utilização de recursos e assegura uma resposta de processamento maior comparado com outros frameworks PHP. A maior vantagem competitiva do Phalcon é sua utilização eficiente da memória. Isso impede a necessidade de manter qualquer informação fora da memória, enquanto a maioria dos outros frameworks PHP utilizam leituras de arquivos e estatísticas de arquivos que são operações mais caras. Ao eliminar a sua necessidade por eles, a Phalcon otimiza o desempenho e melhora sua eficiência.

Já que Phalcon não necessita de nenhum arquivo principal, a memória por uso de solicitação é consideravelmente menor em comparação com outros frameworks PHP. Veja algumas avaliações comparativas na imagem abaixo:

memoria-phalcon

Nós podemos também observar que o Phalcon consegue mais de 1400 solicitações por segundo. Enquanto outros frameworks levam mais tempo. Veja abaixo:

phalcon-memoria-pedido

Menos arquivos por solicitação significa um processamento mais rápido. Phalcon se sobressai com um ótimo rendimento neste teste. Veja as informações abaixo:

arquivos-phalcon

O Framework Phalcon também pode completar 1000 solicitações em uma velocidade absurda. Enquanto outros frameworks demoram muito ou são ineficazes para atingir os mesmos resultado.

phalcon-tempo-resposta

Phalcon vs. Laravel

Apesar do Laravel ser mais conhecido como escolha principal para framework PHP, ele não pode competir com o Phalcon quando se trata de velocidade, escalabilidade e performance. No entanto, Laravel é mais fácil de aprender e tem um bom suporte para depuração. Enquanto para o Phalcon você precisa ter conhecimento de linguagem C para depurar seu código. Outra diferença é que com Laravel você pode instalar qualquer servidor, enquanto para instalar o Phalcon, você precisa ter acesso root ao servidor.

Phalcon vs. CodeIgniter

Embora faça um bom tempo que o temos, o desenvolvimento do CodelIgniter tem sido um pouco lento no passar dos últimos anos. Ambos Phalcon e Codelgniter tem funcionalidades comparáveis, através da documentação e a comunidade de desenvolvedores. Mas Phalcon ainda é consideravelmente mais rápido. No entanto, com a otimização de Hardware apropriada, pode equiparar-se com o Phalcon.

Phalcon vs. Symfony

Ambos Phalcon e Symfony são Código aberto com múltiplas linguagens e suporte ORM. Eles são extensões da arquitetura MVC, tem seus próprios CLI’s e documentações detalhadas. Se você planeja construir um REST APIs, ambos são boas escolhas, porém, quando tratamos de performance benchmarking, Phalcon é o vencedor. Geralmente, o Phalcon pode processar 50% mais pedidos por segundo comparado com o Symfony. No entanto, a plataforma de depuração pode ser um pouco mais difícil com o Phalcon, pois precisa passar pelo código escrito em C. Logo, depurar com o Symfony é relativamente mais fácil.

Configurando Framework PHP Phalcon

Com Phalcon, você pode instalar uma extensão PHP, que ocupa pouquíssimo espaço. No entanto, você precisa ter acesso root para fazer isso. Por sua sorte, nós já temos isso instalado em nossos planos de hospedagem compartilhada, então a configuração inicial não vai ser difícil.

Nós também vamos abordar como configurar o Phalcon em uma VPS rodando em Ubuntu 16.04. Pra deixar um pouco mais fácil, nós vamos usar as ferramentas de desenvolvimento Phalcon em ambos os casos. Sem enrolação, vamos direto ao processo!

1º Opção – Configurando Phalcon em uma Hospedagem Compartilhada Hostinger

Primeiramente, nós vamos instalar o Phalcon developer tools. Para essa tarefa, nós vamos utilizar o Composer, que já está pré instalado em nosso plano de hospedagem compartilhada.

Para começar, Conecte sua Conta de Hospedagem via SSH. Utilize o comando “pwd” para verificar onde está. Nós recomendamos configurar um diretório acima do “public_html”. Isso manterá as coisas organizadas. Se o comando mostrar o seguinte resultado, significa que tudo está indo bem:

-bash-4.1$ pwd 
/home/YOUR_USERNAME

Agora, vamos criar um arquivo Composer.json com o seguinte conteúdo nele:

comando-tutorial-phalcon

Você pode fazer isso utilizando o gerenciador de arquivos ou escrevendo o seguinte comando no SSH:

nano composer.json

Isso irá criar um arquivo e abrir o editor de texto. Cole o conteúdo necessário e aperte CTRL+X para salvar o progresso. Para instalar Phalcon Developer Tools execute o seguinte comando:

composer install

Espere o processo terminar, o que pode levar alguns minutos. Depois, vamos criar um alias para que as ferramentas de desenvolvimento para certificar o seu funcionamento. Se você seguiu corretamente os passos deste tutorial, você foi capaz de cria-lo usando o seguinte sintaxe:

alias phalcon=/home/YOUR_USERNAME/vendor/phalcon/devtools/phalcon.php

Não se esqueça de substituir SEU_USERNAME pelo seu username real.

Agora que nós temos as ferramentas de desenvolvimento Phalcon inteiramente funcional, vamos verificar seu funcionamento digite o seguinte código:

phalcon

E você deve receber uma mensagem similar:

Phalcon DevTools (3.2.12)

Available commands:
info (alias of: i)
commands (alias of: list, enumerate)
controller (alias of: create-controller)
module (alias of: create-module)
model (alias of: create-model)
all-models (alias of: create-all-models)
project (alias of: create-project)
scaffold (alias of: create-scaffold)
migration (alias of: create-migration)
webtools (alias of: create-webtools)
serve (alias of: server)
console (alias of: shell, psysh)

Como os nossos servidores de hospedagem compartilhada possuem todos os ingredientes para que o Phalcon Framework execute, você não precisa de nenhuma extensão extra. Agora, Phalcon Framework está quase implantada, significando que você pode ter qualquer estrutura de diretório que você achar conveniente. Mas por motivos mais simples, nós vamos usar a estrutura que o Phalcon devtools nós dá. Navegue até public_html usando o seguinte código:

cd public_html

Assim que você acessar a estrutura public_htmluse o sintaxe Phalcon devtools para configurar todo o resto:

phalcon create-project example

Agora, se você for até o SeuDomínio.com/exemplo em seu navegador, você vai ver uma tela similar a essa:

phalcon-framework

2ª Opção – Configurando Phalcon em uma VPS

Agora, vamos aprender como configurar PHP Framework Phalcon em um servidor virtual privado Hostinger. Isso vai levar um tempo a mais, pois precisaremos instalar alguns componentes a mais. Vamos passar pelo processo juntos. Nessa parte do tutorial, vamos usar uma VPS rodando em Ubuntu 16.04.

Antes de tudo, nós vamos precisar dos seguintes componentes:

  • Apache
  • MySQL
  • PHP 5.5+ 
  • Composer

Apache, MySQL, e PHP estão inclusos por padrão na maioria dos modelos de VPS. Portanto você só precisa instalar o Composer para continuar. Quando terminar, você precisará configurar as extensões PHP Phalcon necessárias. Para isso execute o seguinte comando:

curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash

Agora que nós temos todos os componentes necessários, vamos configurar o Phalcon Framework. Vamos começar usando as ferramentas de desenvolvimento Phalcon, que vai simplificar o processo de uso Framework. Navegue um diretório acima do domínio root. Ele deve ficar assim:

cd /var/www

Use esse comando para criar um arquivo composer.json:

nano composer.json

Isso vai criar um arquivo e abri-lo na interface de um editor de texto. Cole o seguinte conteúdo:

tutorial-phalcon-VPS

Pressione Ctrl+X para salvar. Prossiga com a instalação das ferramentas de desenvolvimento entrando com esse comando:

composer install

Quando terminar, crie um alias para assegurar que as ferramentas de desenvolvimento Phalcon estão funcionais. Em nosso exemplo, o sintaxe se parece como isso:

alias phalcon=/var/www/vendor/phalcon/devtools/phalcon.php

Vamos ver se está funcionando executando esse comando:

phalcon

Após inserir esse comando, deve aparecer o resultado que mostra a imagem abaixo:

Phalcon DevTools (3.2.12)

Available commands:
info (alias of: i)
commands (alias of: list, enumerate)
controller (alias of: create-controller)
module (alias of: create-module)
model (alias of: create-model)
all-models (alias of: create-all-models)
project (alias of: create-project)
scaffold (alias of: create-scaffold)
migration (alias of: create-migration)
webtools (alias of: create-webtools)
serve (alias of: server)
console (alias of: shell, psysh)

Nós estamos prontos para criar um projeto. Este framework está quase implantado, o que te permite qualquer estrutura de diretório. Neste exemplo, nós vamos com a estrutura de diretórios padrão que as ferramentas de desenvolvimento nos oferece. Comece navegando para o diretório raíz de seu domínio. Exemplo:

cd /var/www/hostinger-tutorials.com/public_html

Agora use o próximo comando para criar uma estrutura de diretório e comece:

phalcon create-project example

Agora, abra seu domínio em um navegador (seudomínio.com/exemplo) e você deve ver um resutado similar:

Criando seu Primeiro Projeto com Phalcon PHP Framework

Agora, vamos criar uma aplicação básica. Imagine que você está criando um projeto e gostaria de juntar uma lista de usuários em potencial ou clientes antes de lançá-lo. Nós podemos fazer isso criando um formulário de registro que armazena as informações em um banco de dados MySQL.

Entendendo a Estrutura de Diretório Phalcon

Como começamos em nosso tutorial Phalcon, nosso framework está quase implantado. Lembrando que com isso você pode criar qualquer tipo de estrutura de diretórios. No entanto, para essa demonstração, nós usaremos a estrutura padrão criada pela ferramenta de desenvolvimento Phalcon. Vamos ver como funciona!

O diretório padrão para as aplicações conhecido como pasta raiz. Qualquer pasta que está fora do diretório raiz é inacessível pelo servidor de site e não se enquadra no âmbito do projeto Phalcon. Em nosso caso, é o diretório de exemplo.

Assim que o projeto estiver criado, as seguintes pastas podem ser vistas no sistema de arquivos:

  • App: a pasta do aplicativo consiste no ponto crucial de toda aplicação. Todas as pastas e arquivos do script estão contidos na pasta. Especificamente, consiste em:
    • Config: Como o nome indica, toda configuração necessária será adicionada dentro da subpasta. Se deseja adicionar uma nova biblioteca de terceiros ou estabelecer uma conexão de banco de dados, você pode conseguir colocando um código relevante nos arquivos nesta pasta.
    • Controllers: Os controles processam solicitações e formulários de respostas adequadas. Qualquer controlador que deseja definir se torna parte dessa pasta.
    • Library: Todas as bibliotecas externas de terceiros que deseja incluir devem ser adicionadas a esta pasta.
    • Migrations: Se você deseja realizar qualquer migração de dados, então você deve adicionar os arquivos dentro dessa pasta.
    • Models: A pasta consiste em qualquer coisa relacionada aos seus dados. Isso inclui a interação com o banco de dados para receber informação e apresentar dados.
    • Views: As visualizações em uma arquitetura MVC são responsáveis pela exibição de dados para o usuário. Todas as informações relacionadas a exibição, como conteúdo da página, estão presentes nesta pasta.
  • Cache: O armazenamento em cache desempenha um papel vital na manutenção dos benchmarks de desempenho e tudo o que está relacionado com isso vai nessa pasta.
  • Public: Contém pastas para CSS, JavaScript, metadata, imagens que serão carregadas, os arquivos que devem ser carregados e alguns dados temporários relacionados a aplicações.

Abaixo você confere um infográfico que vai ajudar você a entender melhor o sistema de arquivos:

Phalcon - estrutura de diretório

Configurando uma Conexão com Banco de Dados MySQL

Primeiramente, você vai precisar criar um banco de dados MySQL onde os dados do usuário serão armazenados. Você pode fazer isso através da seção Gerenciamento no painel de controle.

Quando terminar, você vai precisar criar uma mesa. Acesse o banco de dados criado através do phpMyadmin e vá para seção SQL.

tutorial-database

Então, execute os comandos abaixo:

database-phalcon

Isso vai criar uma estrutura de tabela:

estrutura-mesa-phalcon

Em seguida, navegue para /public_html/exemplo/app/configuração/config.php e configure a conexão do banco de dados. Você precisa editar os seguintes campos:

estrutura-codigos

Quando você preencher as informações MySQL, podemos prosseguir para o próximo passo.

Adicionando um Novo Modelo

Agora, precisamos criar um modelo. Ela vai mapear a tabela de usuários que você criou na etapa acima. A maneira mais fácil de cria-la é usando as ferramentas de desenvolvimento Phalcon. Usando o terminal, navegue até o diretório raiz do phalcon. Em nosso exemplo:

cd public_html/example

O comando que cria o modelo necessário é

phalcon model users

Você pode encontrar o novo arquivo em  public_html/exemplo/app/model/Users.php.

Adicionando um Novo Controle

Nesta demonstração, vamos criar páginas home e signup para inscrição. O controle da página inicial já foi criado, então, nós vamos precisar adicionar um novo para página de registro. Nós podemos utilizar as ferramentas de desenvolvimento Phalcon, para isso, utilize o comando para criar um novo controle:

phalcon controller Signup

Ele vai aparecer em public_html/example/app/controllers/SignupController.php. Vamos abrir o arquivo e adicionar novas linhas para que possa cooperar com o banco de dados. Nossa versão final do arquivo se apresentará assim:

versão-final-public_html

Criando Página de Conteúdo

O texto e conteúdo de suas páginas estão disponíveis no diretório public_html/example/app/views. Cada página tem seu próprio diretório. Você vê que a pasta index já está criada. Então, nós vamos criar somente a pasta de signup com um arquivo index.phtml vazio. O formato .phtml permite que você use ambos os códigos HTML e PHP.

Antes de tudo, vamos editar o arquivo index existente public_html/example/app/views/index/index.phtml. Aqui está o que fizemos:

pagina-conteudo-criacao

O código PHP presente no arquivo direciona os usuários para nova página de signup. Agora vamos editar public_html/example/app/views/signup/index.phtml. Nós queremos que os usuários inscrevam-se nessa página. Aqui está o código que nós adicionamos:

criacao-paginas-conteudo

Isso é tudo! Agora você está pronto para conferir sua criação Phalcon PHP Framework.

Testando Aplicações do Phalcon

No momento, a aplicação Phalcon está localizada no diretório public_html/exemplo. Isso significa que irá abrir pelo navegador SeuDomínio.com/exemplo. Para que carregue diretamente pelo SeuDominio.com, você pode mover os arquivos para public_html usando o Gerenciador de Arquivos.

A janela Mover no gerenciador de arquivos Hostinger

Agora, acesse seu domínio através de seu navegador e você verá uma página de início similar:

phalcon-homepage

Se você clicar no botão Sign Up Here / Inscreva-se Aqui, você será redirecionado para página que nós criamos:

phalcon-signup-exemplo

Quando um usuário emite seus dados, ele recebe uma tela de confirmação:

signup-sucesso

Caso entre algum dado incorreto, o framework irá informar que um problema ocorreu:

signup-erro1

Ele reconhecerá também se o endereço de email está no formato correto. Em caso de erro de digitação ou falta de algum símbolo, o usuário verá:

signup-erro2

Por último, todas as entradas corretas irão aparecer na tabela de usuários em seu banco de dados:

phalcon-database

Parabéns! Completando esse tutorial, você pode criar seu primeiro formulário de básico de inscrição.

montar-site-com-phalcon

Conclusão

Phalcon é um framework PHP relativamente novo, não chega ser tão popular quanto Laravel ou outros Frameworks, ele tem grande potencial e uma velocidade impressionante. Também configurá-lo não necessita de muito esforço. Se você gosta de criar e desenvolver sites, Phalcon certamente vale a pena tentar. Quem sabe ele possa se tornar seu framework favorito! Confira a documentação oficial se deseja conhecer mais.

Possui dicas, ideias, curiosidades que gostaria de compartilhar? Nos conte nos comentários abaixo!

Author
O autor

Andrei L.

Jornalista e conteudista SEO/Localização na Hostinger Brasil. Tem experiência em WordPress e na produção de conteúdos de tecnologia otimizados para conquistar as melhores posições no Google. É fã de games, adora vôlei, ama o inverno e está sempre buscando se aperfeiçoar no Inglês.