PhalconPHP é um framework full-stack escrito em C ANSI e compilado na forma de uma extensão do PHP. Isso quer dizer que todos os sources do framework foram convertidos em código nativo de cada sistema operacional. Perfomance.
Segue a estrutura Model-View-Controller (MVC). Na perfomance é 8x mais rápido comparado com o CodeIgniter.
Depois de conhecer o PhalconPHP e para que serve, podemos seguir os procedimentos de configuração no ambiente de desenvolvimento PHP com PhalconPHP na distribuição Linux Debian e/ou CentOS/RHEL/Fedora.
Procedimentos de configuração do PhalconPHPDebian:
#apt-get install git-core gcc autoconf make apache2 php5 php5-dev php5-mysql mysql-server libpcre3-dev
CentOS/RHEL/Fedora: Antes deve ser instalados os pré-requisitos descritos em: Instalando e configurando ambiente de desenvolvimento web no CentOS
#yum install php-devel pcre-devel gcc make
Download do cphalcon e phalcon-devtools via Git
cphalcon é a extensão PhalconPHP que será compilada e adicionada o phalcon.so no Apache
phalcon-devtools é uma ferramenta que permite executar comandos para criar projetos, controlles e modelos de forma rápida. Opcional:
#mkdir /opt/phalcon
#cd /opt/phalcon
git clone https://github.com/phalcon/cphalcon.git
git clone https://github.com/phalcon/phalcon-devtools.git
Após a finalização da clonagem do repositório cphalcon e phalcon-devtools Execute:
#cd cphalcon/build
#./install
#cd /opt/phalcon/phalcon-devtools
#./phalcon
#ln -s /opt/phalcon/phalcon-devtools/phalcon.php /usr/bin/phalcon
#chmod +x /usr/bin/phalcon
Debian: criar o arquivo 30-phalcon.ini no diretório /etc/php5/apache2/conf.d e adicionar a extensão phalcon.so
#vim /etc/php5/apache2/conf.d/30-phalcon.ini
extension=phalcon.so
CentOS/RHEL/Fedora: criar o arquivo phalcon.ini no diretório /etc/php.d/ e adicionar a extensão phalcon.so
#vim /etc/php.d/phalcon.ini
extension=phalcon.so
ESC +x (salva e sai do editor Vim)
Reinicie o Apache
Debian:
#service apache2 restart
CentOS/RHEL/Fedora:
#service httpd restart
Checar a instalação do PhalconPHP
#vim /var/www/checkphalcon.php
<?php
print_r(get_loaded_extensions());
?>
No browser acesse http://IP/checkphalcon.php
Deve aparecer algo semelhante, mas o foco nesse caso é phalcon
Array ( [0] => Core
[1] => date
[2] => ereg
[3] => libxml
[4] => openssl
[5] => pcre
[6] => zlib
[7] => bcmath
[8] => bz2
[9] => calendar
[10] => ctype
[11] => dba
[12] => dom
[13] => hash
[14] => fileinfo
[15] => filter
[16] => ftp
[17] => gettext
[18] => SPL
[19] => iconv
[20] => json
[21] => mbstring
[22] => session
[23] => posix
[24] => Reflection
[25] => standard
[26] => shmop
[27] => SimpleXML
[28] => soap
[29] => sockets
[30] => Phar
[31] => exif
[32] => sysvmsg
[33] => sysvsem
[34] => sysvshm
[35] => tokenizer
[36] => wddx
[37] => xml
[38] => xmlreader
[39] => xmlwriter
[40] => zip
[41] => apache2handler
[42] => PDO
[43] => mysql
[44] => mysqli
[45] => pdo_mysql
[46] => pdo_pgsql
[47] => pdo_sqlite
[48] => pgsql
[49] => sqlite3
[50] => phalcon
[51] => mhash )
Outro é verificar no phpinfo();
#vim /var/www/info.php
<?php
phpinfo();
?>
No browser, acesse http://IP/info.php
Note se o Phalcon foi habilitado.
Com o PhalconPHP habilidado no Apache, podemos começar a desenvolver projetos PHP com framework PhalconPHP.
O PhalconPHP não impõe uma estrutura fixa para desenvolvimento de projetos. Devido o fato do baixo acoplamento, você pode desenvolver projetos PhalconPHP com a estrutura de arquivos que for mais conveniente para você.
Para fins deste howto será adotado a estrutura base
projetoPhalconapp/
controllers/
models/
views/
public/
css/
js/
img/
#cd /var/www/projetoPhalcon
#mkdir app/ public/
#mkdir app/controllers/ app/models/ app/views/
#mkdir public/css/ public/js/ public/img/
Note que não é necessário o diretório library relacionado ao PhalconPHP. A estrutura está disponível na memória, pronto para usar.
URLs amigáveisURLs amigáveis são melhores para SEO, além de ser fácil para os usuários lembrarem. PhalconPHP suporta o módulo rewrite fornecido nos servidores web mais populares (Apache, Nginx).
Não é obrigatório usar URLs amigáveis no projeto com PhalconPHP, use se quiser apenas. Se preferir, crie o .htaccess no diretório do projeto.
#vim /var/www/projetoPhalcon/.htaccess
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
Dessa forma todas as solicitações do projeto serão redirecionadas para o diretório public/, tornando a raiz do projeto. Esta etapa garante que os diretórios internos do projeto permanecem ocultos da visão pública, eliminando ameaças deste tipo de segurança.
O segundo conjunto de regras irá verificar se o arquivo solicitado existe e, se isso acontecer, ele não tem que ser reescrito pelo módulo do servidor web.
#vim /var/www/projetoPhalcon/public/.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
Criar um VirtualHost para o projeto OBS: O projetoPhalcon é o diretório deste projeto exemplo, em outros projetos defina o nome de acordo com o projeto que está desenvolvendo.
#vim /etc/apache2/sites-available/projetoPhalcon
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Habilitar o VirtualHost do projeto
# a2ensite projetoPhalcon
Reinicie o Apache
Debian:
#service apache2 restart
CentOS/RHEL/Fedora: #service httpd restart
Autoinicialização do projeto
O arquivo de inicialização serve de base da aplicação, o que lhe dá o controle de todos os apectos do mesmo. Nesse arquivo é implementado a inicialização dos componentes, bem como o comportamento da aplicação.
#cd /var/www/projetoPhalcon/
#vim public/index.php
Source: index.php
Criação do primeiro Controller
#vim app/controllers/IndexController.php
Source: IndexController.php
ESC +x (salva e sai do editor Vim)
Após testar o controller no browser http://IP/projetoPhalcon, faça o teste no app/views.
Esse foi um exemplo de controller, mas no modelo MVC, a parte visual é implementada no view, nesse caso será mostrado a mesma mensagem no app/views/index.phtml
No app/controllers/IndexController.php deixe a function indexAction() vazia.
#vim app/views/index/index.phtml
Source: index.phtml
No browser, acesse http://IP/projetoPhalcon/
Referência
[1] https://docs.phalconphp.com/en/latest/index.html
Feito!
Nenhum comentário:
Postar um comentário