Ter um ambiente de desenvolvimento adequando é muito importante para a produtividade durante um projeto, nesse capítulo vamos ensinar a instalar e configurar as ferramentas que iremos utilizar durante a leitura desse e-book e fazer um bootstrap do projeto.
A instalação do PHP é relativamente fácil, tanto no Linux como no Windows.
O uso de uma IDE de desenvolvimento é recomendado, para escrever esse e-book utilizamos o PhpStorm, https://www.jetbrains.com/phpstorm/
, mas você pode escolher a IDE de sua preferência ou simplesmente utilizar um editor de texto.
Eu vou desmontar com a instalação do PHP utilizando o apt-get que é um recurso desenvolvido para distribuições Debian e permite a instalação e a atualização de pacotes.
No terminal execute o seguinte comando:
sudo apt-get update
sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
Para usar o PHP é necessário instalar um servidor web, nesse caso instalamos o Apache, http://httpd.apache.org/
.
A maneira mais indicada para instalação do PHP no Windows é utilizar um ambiente de desenvolvimento como XAMPP ou WampServer, essas ferramentas possuem um instalador e já deixam o PHP configurado e executando com um servidor web sem muito esforço.
Nesse post http://www.johnidouglas.com.br/category/programacao/php-programacao/
é possível encontrar uma lista de ambientes de desenvolvimento para Windows.
O uso de ferramentas que fazem a gestão de dependências é fantástico, com pouco esforço você consegue configurar e usar bibliotecas de terceiros em seus projetos.
O Composer é uma ferramenta indispensável quando vamos criar um projeto em PHP, ele faz a gestão de dependências de bibliotecas e frameworks de forma prática e simples. O arquivo composer.json
possui as informações dos pacotes, e no diretório vendor
estão armazenados os arquivos dasbibliotecas.
Para instalar o Composer no Linux é necessário apenas executar o comando curl -sS https://getcomposer.org/installer | php
Execute o comando sudo mv composer.phar /usr/local/bin/composer
para tornar a instalação do Composer global.
Após finalizar a instalação execute o comando composer
, se esse comando não funcionar tente php composer.phar
.
Para instalar o Composer no Windows a maneira mais fácil e utilizar o Composer-Setup.exe
. Faça o download nesse link https://getcomposer.org/Composer-Setup.exe
e execute o instalador.
Após a instalação você deve verificar no shell se o comando composer
está sendo executado.
Importante: Para instalar o Composer é necessário que o OpenSSL esteja habilitado no PHP. No arquivo
php.ini
remova o comentário da linhaextension=php_openssl.dll
.
Vamos utilizar uma estrutura de diretório para organizar melhor os arquivos do projeto. Isso é uma boa prática e deve ser adotada em todos os seus projetos.
Se você está acostumado a utilizar frameworks como Zend, Laravel Yii, etc. já deve estar familiarizado com uma estrutura definida e bem organizado de diretórios. No caso do nosso projeto não existe uma definição formal de como essa estrutura deve ficar, o Slim não define isso, dessa forma vamos utilizar a estrutura abaixo, por entender que se encaixa melhor no nosso objetivo.
<nome do projeto>
configs\
views\
partials\
forms\
library\
data\
cache\
logs\
uploads\
public\
css\
js\
images\
tests\
Crie essas pastas no diretório raiz do projeto.
No shell através de linha de comando acesse a raiz do diretório do projeto, cd <diretório do projeto>
, e digite a seguinte linha de comando:
composer require slim/slim
Dessa forma estamos definindo a dependência do Slim em nosso projeto, no caso acima não informamos a verso do Slim ele irá utilizar a versão estável mais atual.
O Composer cria o arquivo composer.json
que é utilizado para configurar as dependências, esse arquivo possui os seus elementos no formato json
. Abra esse arquivo que está no diretório raiz do projeto e veja como foi configurado a dependência do Slim.
require": {
"slim/slim": "~2.6"
}
Veja que a verão configurada foi a 2.6 que no momento da escrita desse e-book e a verão atual mais estável, observe também o uso do operador ~
compondo o número da versão, dessa forma o Composer está configurado para utilizar versões maiores ou iguais a 2.6, isso é equivalente a >=2.6 e <3.0.0
.
Vamos criar primeiro exemplo de uso do Slim. Crie o arquivo index.php
e inclua o seguinte código dentro desse arquivo.
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/', function () {
echo "Esse é o meu primeiro exemplo usando o micro framework Slim";
});
$app->run();
Ao longo desse e-book, por ser mais prático, nós vamos utilizar o servidor web embutido do PHP, disponível a partir da versão 5.4.0, É importante ressaltar que ele deve ser utilizado somente em ambientes de desenvolvimento.
O leitor pode ficar a vontade em escolher do servidor web que preferir, Apache ou nginx.
Acesse a raiz do projeto, local onde está o arquivo index.php
, e digite o seguinte comando no shell, php -S localhost:8000
, para iniciar o servidor web do PHP.
Acesse a URL http://localhost:8000/
e repare que o seguinte texto ira ser impresso no browser.
No arquivo index.php
nós primeiramente declaramos a dependência do arquivo autoload.php
que especifica informações de autoload das bibliotecas gerenciadas pelo Composer permitindo a importação dessas bibliotecas no arquivo fonte. Na sequencia criamos a variável $app
que possui uma instancia da classe Slim
na sequência é registrada uma rota $app->get
e vinculado um callback que tem com saída o texto Esse é o meu primeiro exemplo usando o micro framework Slim
.
Mais detalhes sobre como declarar rotas veremos no capitulo 2. Em seguida inicializados o Slim através do comando $app->run()
.
Vamos aprimorar um pouco o nosso projeto e utilizar uma biblioteca chamada Twig, essa biblioteca é utilizada para renderizar nossas páginas HTML, isso vai facilitar muito o nosso trabalho pois não vamos misturar código PHP com HTML deixando as declarações de nossos tempates mais claras.
Primeiramente vamos configurar a dependência do Twig no projeto, no shell digite o seguinte comando composer require twig/twig:~1.0
, dessa forma já podemos utilizar o Twig em nosso projeto.
No arquivo index.php
vamos criar uma rota para renderizar a uma página HTML através do Twig.
Digite o seguinte código logo após a rota que já está criada.
$app->get('/ola', function () {
$loader = new Twig_Loader_Filesystem('views/');
$twig = new Twig_Environment($loader, array());
$template = $twig->loadTemplate('ola.twig');
$interesses = array('Lua', 'Java', 'PHP');
$nome = 'Johni Douglas Marangon';
echo $template->render(array(
'nome' => $nome,
'interesses' => $interesses));
});
Observe que nós criamos uma rota que tem como identificador /ola
, nesse exemplo nós estamos definindo na primeira linha da função o diretório onde as nossas views estão criadas, /views
através da função Twig_Loader_Filesystem
, na sequência o método Twig_Environment
devolve uma instancia das configurações do Twig que são utilizadas para redendizar um template. O método loadTemplate
carrega um passando o seu nome como parâmetro. e o método render
renderiza o template.
No diretório views
crie o arquivo ola.twig
com o seguinte conteúdo.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Olá</title>
</head>
<body>
<h3>Olá {{ nome }}, esses são os seus interesses</h3>
<ul>
{% for item in interesses %}
<li>{{ item }}</a></li>
{% endfor %}
</ul>
</body>
</html>
Esse é o arquivo de template que será utilizado para rederizar o conteúdo HTML ao invocar a rota /ola
. Nesse arquivo temos código HTML junto com a elementos, {{ nome }}
e {% for item in linguagens %}
por exemplo, que são utilizados pelo Twig para associas atributos e variáveis do PHP.
Acesse o endereço http://localhost:8000/ola
e veja o resultado no seu browser.
Veja como é simples e prático utilizar o Twig, ao longo desse e-book nos vamos explorar outros recursos dele.
composer.json
O arquivo de configuração do Composer, composer.json
, possui algumas configurações extras que podem ser inclídas, veja o exemplo:
{
"description": "Breve descrição sobre o projeto",
"version": "1.0-dev",
"license": "MIT",
"authors": [
{
"name": "Seu nome",
"email": "[email protected]"
}
],
"require": {
"php": ">=5.5"
}
}
Inclua essas informações no projeto.
Na documentação do Composer, https://getcomposer.org/doc/04-schema.md
., tem mais detalhes do schema utilizado pelo composer.json
.
falta fazer
Nesse capitulo nós montamos o ambiente de desenvolvimento do nosso projeto e escrevemos os primeiros códigos, dessa forma já temos o bootstrap do projeto que será utilizado nos próximos capítulos.
É importante ressaltar que o leitor deve ter algum conhecimendo da linguagem de programação PHP, mesmo que for básico pois não serão tratados detalhes da linguagem ao longo desse e-book.
Para fixar o que vimos até agora, crie uma nova rota chamada linguagens
e liste todas as linguagens de programação que você tem conhecimento junto com uma URL vinculada a linguagem de programação, não se esqueça de criar um novo template dentro da pasta views
.
Veja o exemplo de array:
$linguagem = array(
array("linguagen" => "PHP", "url" => "http://php.net/") );
Para acessar um atributo no tempate você deve utilizar a chamada dessa forma {{ item.nome }}
.
Utilize como base a listagem de interesses
realizada na rota /ola
.
Veja mais detalhes dos recursos do Slim em http://docs.slimframework.com/
, ao longo desse e-book nós vamos explorar com mais detalhes alguns desse recursos.
Se você ficou curioso com relação ao uso de pacotes no PHP de uma olhada no site https://packagist.org/
que possui uma lista vários pacotes e de como eles podem ser utilizados em seus projetos.
Acesse a documentação do Twig em http://twig.sensiolabs.org/documentation
, lá você vai encontrar mais detalhes de como utilizar os recursos oferecidos por ele.
Não se esqueça de dar uma olhada na documentação do Composer https://getcomposer.org/doc/
.