Zend Framework from Scratch

Zend Framework from Scratch:

Pronto para assumir suas qualificações em PHP para o próximo nível? Neste novo "From Scratch" série, vamos nos concentrar exclusivamente no Zend Framework , um full-stack framework PHP criado pela Zend Technologies. Primeiro lugar na nossa série de tutoriais, é "Introdução ao Zend Framework."


Introdução: O que é o Zend Framework?

Zend Framework é uma full-stack framework PHP criado pela Zend Technologies. Para aqueles que não estão familiarizados com a empresa, Zend Technologies fornece aos desenvolvedores web com diversas ferramentas para ajudá-los em seu trabalho. Exemplos notáveis ​​são Zend Server, um servidor de aplicações web para execução e gerenciamento de aplicações PHP e Zend Studio, uma IDE full-featured para PHP. Escusado será dizer que, Zend é muito investido em PHP, e é por isso Zend Framework é uma ótima ferramenta para adicionar ao arsenal de qualquer desenvolvedor.

Zend: A Companhia PHP

Zend: A Companhia PHP

Zend Framework é composto de muitas bibliotecas e classes. Esta é uma faca de dois gumes - por exemplo, torna mais fácil para os desenvolvedores cherry-pick bibliotecas se eles só precisam de alguns. A desvantagem é que a criação do quadro não é muito fácil no início, pois é apenas um monte de classes. Dito isto, Zend tem uma ferramenta de andaimes e um meio recomendado de configurar a sua estrutura de aplicação, o que vamos discutir neste tutorial particular.

Nesta série de tutoriais, iremos mergulhar como Zend Framework funciona e aprender a usar suas diferentes componentes. Até o final da série, nós vamos ter construído uma marca nova rede social - com perfil básico, rede, atualizações de status, e até mesmo a funcionalidade API. E agora, sem mais delongas, vamos começar!


Passo 1: Download Zend Framework

Em primeiro lugar, precisamos fazer o download do Zend Framework. Atualmente, a versão mais recente é 1.11.11 . Para começar, vá até o site do Zend Framework http://framework.zend.com e clique no Download Now botão.

Zend Framework Download Now ligação

Zend Framework Download Now ligação

Isto deve levar-nos a uma tela com uma lista de downloads diferentes para Zend Framework. No futuro, quando você atualiza o Zend Framework biblioteca, você deve baixar o Minimal versão, que contém apenas os arquivos ZF. Por ora, vamos baixar Zend Framework 1.11.11 Full , que contém a biblioteca com todas as demonstrações e testes. Ele também inclui a ferramenta de andaimes que vamos usar mais tarde no tutorial.

Zend Framework lista de download

Zend Framework lista de download

Passo 2: Configurar o ambiente Zend Framework

Após a conclusão do download, extraia os arquivos em seu desktop de modo a obter uma visão clara dos conteúdos. No interior, há um monte de pastas, mas para os fins do presente tutorial, vamos precisar apenas dois - o bin pasta e os library pasta.

Zend Framework 1.11.11 conteúdo completo

Pelo amor de organização, colocar o bin pasta dentro da pasta PHP e renomeá-lo para zend-bin . O meu é D:\Development\PHP , então o resultado final deve ser D:\Development\PHP\zend-bin .

localização da pasta bin

Vá para a library pasta e você deve encontrar um Zend pasta. Coloque este inside your PHP's include_path . Para mim, isso é D:\Development\PHP\includes , para movê-lo não deve resultar em D:\Development\PHP\includes\Zend . Lembre-se de copiar o Zend pasta dentro da library da pasta, não a library própria pasta.

Zend localização da pasta

Por último, precisamos configurar o Zend ferramenta CLI dentro do zend-bin pasta para trabalhar em qualquer diretório. Para fazer isso, temos de acrescentar o diretório para o Path variável do sistema, para que possamos chamá-lo via prompt de comando.

Clique direito no Computer link em Iniciar para abrir o System Information janela. Aqui, clique em Advanced System Settings .

Informações do Sistema do Windows

Na janela que se abre, clique no Environment Variables botão. Na nova janela, procure o Path da variável no System variables ​​lista. Clique em Edit e adicionar o seu zend-bin local do diretório no final.

Variáveis ​​do sistema do Windows

Quando estiver pronto, basta clicar em OK para salvá-lo.

Para garantir que a nossa configuração está trabalhando, abra um prompt de comando e executar o zf --help comando. Isso deve saída dos comandos que podemos usar com a ferramenta CLI Zend. Se não, tente reiniciar o computador para certificar-se as variáveis ​​do sistema são implementados.

Testando a ZF ferramenta CLI

Além disso, há uma zf.sh arquivo dentro do zend-bin pasta. Isto é para sistemas operacionais baseados em Unix como OSX ou Linux. Basta configurar as variáveis ​​de ambiente de acordo para obter o mesmo resultado.


Passo 3: Criar o seu primeiro Projeto de Zend Framework

Agora, começamos o trabalho de desenvolvimento real em nosso projeto Zend Framework. No prompt de comando, vá para o diretório onde você quer colocar seus arquivos de projeto (idealmente este deve ser o diretório onde os seus pontos de servidor local para web). Para mim, é D:\Development\htdocs\nettuts , então eu vou executar o cd D:\Development\htdocs\nettuts comando no meu prompt.

Vá para o diretório htdocs

Digite o seguinte comando para criar a nossa base de Zend Framework projeto: zf create project thenextsocial . No comando, thenextsocial é o nome do nosso projeto. Quando você começar a criar seus projetos próprios ZF, substitua isto com o nome do projeto apropriado.

Criar o seu projeto Zend Framework

Confira o conteúdo da pasta agora - você deve ver um novo thenextsocial pasta. Dentro da pasta, você verá vários arquivos de projeto. Mais importante, você deve ver um public pasta, que deve ser a única pasta publicamente acessível via browser. Para tornar isso acessível, agora precisamos configurar um VirtualHost para o projeto.

Em seguida o conteúdo social

Para configurar um VirtualHost, abra o Apache é httpd.conf arquivo. Dentro, adicione o seguinte código:

<VirtualHost *:80>
ServerName thenextsocial.local
DocumentRoot "D:/Development/htdocs/nettuts/thenextsocial/public/"
<Directory "D:/Development/htdocs/nettuts/thenextsocial/public/">
</Directory>
</VirtualHost>

Você também precisará adicionar o domínio para o seu local hosts arquivo. Para usuários do Windows, deve estar em C:\Windows\System32\Drivers\etc . Para os usuários baseado em Unix OS, ele deve estar em /etc/hosts . Abri-lo e adicionar thenextsocial.local e apontar para 127.0.0.1

Localização do arquivo Hosts
Editando o arquivo hosts local

Reinicie o seu servidor web. Quando você abre http://thenextsocial.local em seu navegador, que já deve apontar para o seu projeto de Zend Framework.

A home page Próxima Sociais

Parabéns Você criou com sucesso o seu projeto Framework Zend primeiro!


Passo 4: Saiba mais sobre Estrutura MVC do Zend Framework

O que é exatamente este padrão MVC?

Da introdução do Zend Framework quickstart:

O padrão modelo-visão-controlador

O modelo-visão-controlador (MVC)

Imagem cortesia de http://framework.zend.com

O MVC modelos padrão esta separação de preocupações também.

Assim que é exatamente este padrão MVC mantém todos falando, e por que você se importa? MVC é muito mais do que apenas uma sigla de três letras (TLA) que você pode sacar a qualquer momento você quiser som inteligente, tornou-se uma espécie de padrão no design de aplicações web moderna. E por boas razões. Código mais aplicação web está sob uma das seguintes três categorias: apresentação, lógica de negócios e acesso a dados. O MVC modelos padrão esta separação de preocupações também. O resultado final é que o seu código de apresentação podem ser consolidadas em uma parte do seu aplicativo, com sua lógica de negócio em si e seu código de acesso de dados em outra. Muitos desenvolvedores têm encontrado este indispensável separação bem definida para manter seu código organizado, especialmente quando mais de um desenvolvedor está trabalhando na mesma aplicação.

A essência do que é esta: modelos contêm nossa lógica de negócios, exibições contêm o nosso HTML, e os controladores de manter tudo em linha e dizer tanto os pontos de vista e modelos o que fazer.

MVC em uma aplicação Zend Framework-powered

A coisa boa sobre como usar o ZF ferramenta CLI é que ele configura automaticamente o aplicativo para fazer uso das classes do Zend Framework MVC, que permite a você começar a trabalhar em seus projetos mais rapidamente.

Voltando ao nosso projeto, abrir o thenextsocial/application pasta e você deve ver - você adivinhou - models, views, and controllers pastas.

Pastas MVC

Dentro destas pastas, abra controllers/IndexController.php e views/scripts/index/index.phtml . Quando você olha para ambos os arquivos de perto, você verá que a página inicial vimos acima ( Welcome to Zend Framework ) é realmente executado por ambos os arquivos. Então, como chamar esses Zend Framework?

Aplicação explicando Zend Framework roteamento padrão

Por padrão, todas as URLs em seu projeto Zend Framework seguirá um determinado formato:

[url]/[controller]/[action]/[GET parameter 1 value]/.../[GET parameter x]/[GET parameter x value]

Outro padrão é que, se um controlador e / ou ação não é fornecido, ambos padrão para index . Então, chamando http://thenextsocial.local é realmente o mesmo que chamar http://thenextsocial.local/index/index ou mesmo http://thenextsocial.local/index .

Zend Framework ciclo padrão de roteamento

Zend Framework ciclo padrão de roteamento

Zend Framework, em seguida, toma o valor do controlador e olha para ele no controllers pasta, ou seja, a nossa IndexController.php arquivo. Dentro do arquivo do controlador, que leva o nosso valor de ação e executa esse método, que é indexAction . Após a ação ter sido executada no controlador, ZF, então, automaticamente torna o arquivo de visão dentro da pasta vistas no seguinte formato:

../application/views/scripts/[controller]/[action].phtml

É por isso que vemos o Welcome to Zend Framework página, desde index.phtml contém o código HTML para esta página.


Passo 5: passar dados de um controlador para o seu Ver

É relativamente simples para passar dados de um controlador para sua visualização. Cada objeto controlador é criado, por padrão, ter um objeto de exibição instanciar com ele. O acesso a este objeto de exibição é feita através do $this->view assessor.

Para enviar dados para o ponto de vista, nós simplesmente atribuir variáveis ​​para o objeto de vista e dar-lhes valores, assim:

$this->view->variable_name = "variable value";

Voltando ao nosso projeto, abra IndexController.php nos controllers pasta e na indexAction método, vamos passar a current date and time para a nossa visão.

public function indexAction()
{
//action body
$this->view->current_date_and_time = date('M d, Y - H:i:s');
}

Então precisamos editar nosso view para a saída desta variável. Para fazer isso, abra index.phtml na pasta vista, e adicione o seguinte código:

...
...
...
<div id="welcome">
<h1>Welcome to the <span id="zf-name">Zend Framework!</span></h1>

<hr /><h2>It is now <?php echo $this->current_date_and_time; ?></h2>

<h3>This is your project's main page</h3>
...
...
...

Como você pode ver, acessar a variável de dentro do arquivo de visão é tão simples como ecoando a variável através do comando PHP echo, echo $this->variable_name; .

Agora, atualize seu navegador, e você deve ver a data atual e tempo na página.

Passar dados de um controlador para o Ver

Passo 6: Criar um layout em Zend Framework

Você deve ter notado que os scripts html em nosso projeto são apenas fragmentos e não páginas HTML completas, por isso falta-lhes html, head, and body tags. Este não é realmente uma falha, mas foi feito por projeto - dessa forma, todas as ações retorno relativo de conteúdo somente para a ação em si, e não todo o aplicativo. Criando um layout global para o nosso site, nós vamos ser capazes de implementar um recipiente consistente HTML para todos os nossos scripts HTML.

Para começar, vamos abrir novamente o nosso prompt de comando e digite o seguinte comando. Verifique se você está dentro do thenextsocial pasta.

zf enable layout
Permitindo um layout em nosso projeto de Zend Framework

Permitindo um layout em nosso projeto de Zend Framework

A saída após a execução do comando sugere que um arquivo de layout chamado layout.phtml foi criado dentro da application/layouts/scripts pasta. Vamos abri-lo e dar uma olhada no que está dentro:

conteúdo layout.phtml

conteúdo layout.phtml

O comando echo $this->layout()->content; é realmente o arquivo de layout repetindo todo o conteúdo do ponto de vista. Para criar nosso layout global então, precisamos quebrar esse comando com o nosso HTML:

<!DOCTYPE html>
<html>
<head>
<title>The Next Social</title>
<!-- Load Twitter Bootstrap and jQuery -->
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/1.3.0/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
</head>
<body>
<div id="site_container">
<div id="header">
<p>This is the header!</p>
</div>
<div id="content">
<!-- Echo our content here! -->
<?php echo $this->layout()->content; ?>
</div>
<div id="footer">
<p>This is the footer!</p>
</div>
</div>
</body>
</html>

Agora, atualize o navegador novamente e você deve ver as alterações:

Nossa action index com layout que acompanha

Nossa action index com layout que acompanha

Passo 7: Criar novos controladores e Ações

Usando o ZF ferramenta CLI, podemos criar novos controladores e ações muito rapidamente. Para isso, basta executar o seguinte comando:

zf create controller About

About nosso controlador é o nome novo. Se você verificar no interior do controllers pasta, você deverá ver um AboutController.php arquivo, indicando que a nossa geração controlador foi bem sucedida. Você também pode verificar o conteúdo das views pasta e ver que um novo about/index.phtml arquivo foi criado para o nosso About controlador!

Criar nosso controlador Sobre

Criar nosso controlador Sobre

Devemos, então, ser capaz de acessar este controlador, indo para http://thenextsocial.local/about

Por padrão, a ZF ferramenta CLI cria uma ação para o nosso controlador, o indexAction . Mas o que se queria acrescentar outras ações para o controlador?

Criando uma nova ação

Criando uma nova ação é como é fácil criar um novo controlador. Para isso, basta executar o seguinte comando:

zf create action us About

Isso efetivamente cria uma nova ação chamada us dentro da About do controlador. Verificando o AboutController.php arquivo, você deve ver um novo usAction() método, bem como um novo us.phtml arquivo dentro da about pasta vista.

Criando nossa ação nos Sobre o controlador

Criando nossa ação nos Sobre o controlador

Como você pode ver, nós dependem fortemente a ferramenta CLI ZF para gerar ações e controladores. Criá-los manualmente funciona da mesma maneira, a ZF ferramenta CLI só torna mais simples e automaticamente faz o trabalho pesado para nós.


Conclusão

Depois de ler este tutorial, você já deve saber o seguinte:

  • Onde baixar os arquivos mais recentes Zend Framework
  • Onde e como configurá-lo localmente
  • Criando seu projeto Framework Zend primeira ea criação de um VirtualHost no seu servidor web
  • Como exatamente Zend Framework implementa o padrão MVC e sua aplicação de roteamento padrão
  • Passando dados de um controlador para seu ponto de vista
  • Criação de um layout de todo o site para a sua aplicação Zend Framework
  • Criação de novos controladores e ações

A partir deste conhecimento, você deve facilmente ser capaz de criar páginas web estáticas. Mas todos nós sabemos isso não é suficiente!

No nosso próximo tutorial, vamos aprender tudo sobre como criar a parte mais crucial de qualquer aplicação web, o model , e fazendo The Next Social um site dinâmico!

Até então, fique atento!

PS Eu tenho registrado thenextsocial.com para os fins deste projeto. Basta visitar o site regularmente e você vai vê-lo transformar a partir de um site simples para o site de redes full-featured sociais que pretendemos ter no final desta série. Além disso, todo o código fonte criado na série estará disponível em este repositório GitHub também!