Zend Framework 2 - Desenvolvimento Ágil Competente

Preview:

Citation preview

um tour pelo mundo ágil

Zend Framework 2 desenvolvimento web ágil competente

Por Michael Cardoso | michael@codigointerno.com

Como Aprenderemos

Um passo para cada etapa do caminho

Revisão e Conceitos

Ferramentas e Instalação

Prática

Revisão e conceitos

O que precisamos saber antes de ir a caçada

é um framework para:

• Aplicações Web de código aberto

• Fortemente orientado a objetos

(encapsulado)

• Implementado para roda a partir do

PHP 5.3

• O ZF2 foi lançado em 2012

• Modular

• Extensível

• Grande performance

• Seguro

• Possui uma comunidade ativa de

desenvolvimento

• Suportado para grandes aplicações

O Zend Framework 2

O ZF 2 é um framework de alto nível, possibilitando execução de projetos de grande escalabilidade e desempenho. Para isso, a linha de aprendizagem exige um profissional que se aprimore sempre usufruindo do seu PowerUser.

O que é preciso saber para programar com o Zend Framework 2?

Lógica de Programação

PHP Orientado Objeto

Namespaces

Conhecimento de um SGBD

Ferramentas Auxiliares

Namespaces

• O que é?

– Possibilita o agrupamento de Classes, interfaces, funções e constantes,

– Evita o conflito entre seus nomes, atuando como um encapsulador para estes itens,

Namespaces

• O que é?

– Seu funcionamento é equivalente ao de diretórios em sistemas operacionais, onde dois arquivos de mesmo nome não podem existir em um único diretório, mas nada impede a existência de dois arquivos de mesmo nome localizados em diretórios distintos, este mesmo princípio é aplicado no PHP através de namespaces.

Namespaces

• Conexao.php

<?php namespace MeuProjeto; function connect() { // Faz a sua conexão com o banco de dados }

?>

<?php // Inclui o arquivo com a função include("conexao.php"); // Chama a função dentro do namespace MeuProjeto/connect(); ?>

• Index.php

Namespaces

• Uso de classe com Namespaces

// Example - Namespace scope namespace Project\Model; class User {} $var = new User; // Resultado: Project\Model\User

// Example - Global scope class User {} $var = new User; // Resultado: User

• Uso de classe sem Namespaces (global)

Namespaces

• Aliasing / Importing – Uma característica importante ao trabalhar com namespaces é a

possibilidade de importar e atribuir apelidos;

– A palavra-chave use é utilizada para importar classes, interfaces ou namespaces através de seus nomes;

*não é possível importar funções ou constantes.

– Para adicionar apelidos, utilizamos a palavra-chave as, escolhendo um nome mais acessível, ou seja, um apelido, existem duas maneiras de realizar importações:

use Project\Model\User; // É o mesmo que: use Project\Model\User as User; $var = new User; // Resultado: Project\Model\User

Namespaces

• Aliasing / Importing – O PHP oferece um atalho para realizar múltiplas importações na

mesma linha, onde cada importação é separada através de uma virgula.

use Project\Model\User, Project\Model\Post as Article; $var = new Article; // Resultado: Project\Model\Post

Arq

uit

etu

ra d

o Z

F 2

Entendo o paradigma MVC Model, View, Controller

Cada um assume sua tarefa , demando, respondo e exibindo ao usuário o resultado do que foi requisita.

Arq

uit

etu

ra d

o Z

F 2

Entendo o paradigma MVC reusabilidade de código e separação de conceitos

• Model (modelo) – consiste nos dados da aplicação, regras de negócios, lógica e

funções;

• View (visão) – pode ser qualquer saída de representação dos dados, como

uma tabela ou um diagrama

• Controller (controlador ) – faz a mediação da entrada, convertendo-a em comandos

para o modelo ou visão

Arq

uit

etu

ra d

o Z

F 2

Entendo o paradigma MVC reusabilidade de código e separação de conceitos

1. Usuário faz uma requisição clicando em um link, enviando um formulário, etc.

2. Controller recebe essa requisição.

3. Controller solicita informações ao Model.

4. Model retorna para o Controller os dados solicitados.

5. Controller envia informações para View.

6. View solicita dados ao Model.

7. Model retorna para View os dados solicitados.

8. A página é exibida para o usuário.

Ferramentas e instalação

O que é preciso e como instalar

WAMP Server

• O que é?

– É usado para instalar rapidamente no computador os softwares PHP 5, MySQL e Apache, disponibilizando suporte ao uso de scripts PHP localmente no Windows.

• Apache • PHP • SQLBuddy • MySQL

• PhpMyadmin • XDebug • webGrind

Eclipse

• O que é?

– Eclipse é um IDE para desenvolvimento Java, porém suporta várias outras linguagens a partir de plugins como C/C++,PHP,ColdFusion, Python, Scala e plataforma Android.

– Para desenvolver em Zend PHP, temos que baixar a perspectiva PHP.

GIT

• O que é? – É um sistema de controle de versão distribuído e um sistema de

gerenciamento de código fonte, com ênfase em velocidade.

– Foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do kernel Linux, mas foi adotado por muitos outros projetos.

– Cada diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central.

Composer

• O que é?

– O Composer é um gerenciador de dependências para o PHP. Com ele você define a lista de bibliotecas (e versões) das quais o seu projeto depende, e ele cuida da instalação, organização e “inclusão”.

“Instalação” do ZF2

• Vamos instalar o Zend Skeleton

Skeleton?

“Instalação” do ZF2

• Instalando o Zend Skeleton

1. Abra o GitBash

2. Entra na pasta do projeto c:/wamp/www

“Instalação” do ZF2

• Instalando o Zend Skeleton

1. Abra o Executar > cmd

2. Entra na pasta do projeto (cd) c:/wamp/www

Instalação do ZF2

• Instalando o Zend Skeleton 3. Entre no site:

https://github.com/zendframework/ZendSkeletonApplication

4. Verifique logo abaixo os procedimentos de instalação na própria página do diretório

Opção 2

Instalação do ZF2

• Instalando o Zend Skeleton

5. Após digitar os comandos de clonagem do diretório essa deve ser a mensagem de retorno “done”.

Instalação do ZF2

• Atualizando dependência do composer no Zend Skeleton

1. Renomeia a pasta da aplicação para “sinform”

2. Entre dentro da pasta da aplicação via GitBash -> cd sinform/

3. Digite o comando para atualizar o composer -> php composer.phar self-update

4. Digite o comando para instalar as atualizações -> php composer.phar install

* Path do windows

Instalação do ZF2

• Identificando o esqueleto do projeto (Skeleton)

– Acessando o diretório raiz, além dos arquivos do composer e do autoloader, temos os seguintes diretórios: • config: aqui ficam configurações da aplicação como um todo;

• data: local para armazenar os seus arquivos que não fazem parte do código da aplicação, como diagramas, dumps do banco de dados;

• module: O diretório onde ficam os módulos de sua aplicação;

• public: o Zend Framework trabalha com FrontController, ou seja, tudo que você acessar, estará acessando através de um caminho apenas. As imagens, arquivos CSS e JS entre outros devem ficar aqui neste diretório;

• vendor: diretório dedicado à bibliotecas de terceiros;

Instalação do ZF2

• Configurando o host no Windows

1. Abra o caminho abaixo no Explorer c:/windows/system32/drivers/etc

2. Abra o arquivo host com o notepad (Bloco de Notas)

3. Adicione a linha 127.0.0.1 sinform

4. Salve o arquivo e feche

Instalação do ZF2

• Configurando o VirtualHost no Apache (WampS) 1. Ative o rewrite_modulo no apache

2. No arquivo httpd.conf do Apache, descomete a linha: # Virtual hosts #Virtual hostsInclude conf/extra/httpd-vhosts.conf

Instalação do ZF2

• Configurando o VirtualHost no Apache (WampS)

3. Abra o arquivo httpd-vhost.conf e insira as seguintes linhas C:\wamp\bin\apache\apache2.4.9\conf

4. Reinicie seu servidor web, caso esteja online, e acesso o endereço http://sinform

<VirtualHost *:80> ServerName sinform DocumentRoot C:/wamp/www/sinform/public SetEnv APPLICATION_ENV "development" <Directory C:/wamp/www/sinform/public> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>

Instalação do ZF2

Essa é a nossa tela do sucesso!

twitter.com/MichaelHCardoso