Laminas - Laminas
Autor (es) original (is) | Zend Technologies |
---|---|
Desenvolvedor (s) | Linux Foundation |
lançamento inicial | 3 de março de 2006 |
Versão estável | 3.0.0 / 28 de junho de 2016
|
Repositório | Repositório Zend |
Escrito em | PHP 7 |
Sistema operacional | Plataforma cruzada |
Licença | Nova licença BSD |
Local na rede Internet |
getlaminas |
Lâminas Projeto (anteriormente Zend Framework ou ZF ) é uma fonte aberta , orientada a objeto framework de aplicações web implementado em PHP 7 e licenciado sob a Licença New BSD . O framework é basicamente uma coleção de pacotes profissionais baseados em PHP . A estrutura usa vários pacotes pelo uso do Composer como parte de seus gerenciadores de dependência de pacote; alguns deles são PHPUnit para testar todos os pacotes, Travis CI para serviços de integração contínua. O Laminas fornece aos usuários um suporte do modelo-visão-controlador(MVC) em combinação com a solução Front Controller. A implementação do MVC em Laminas tem cinco áreas principais. O roteador e o despachante funcionam para decidir qual controlador executar com base nos dados da URL , e as funções do controlador em combinação com o modelo e a visualização para desenvolver e criar a página da web final.
Em 17 de abril de 2019, foi anunciado que o framework está em transição para um projeto de código aberto hospedado pela Linux Foundation a ser conhecido como Laminas.
Licença
O Laminas está licenciado sob a Nova Licença BSD aprovada pela Open Source Initiative (OSI) . Para ZFv1 todos os contribuintes de código devem assinar um Acordo Contributor License (CLA) com base na Apache Software Foundation ‘s CLA . As políticas de licenciamento e contribuição foram estabelecidas para evitar problemas de propriedade intelectual para usuários comerciais da ZF, de acordo com Andi Gutmans da Zend. O ZF2 e posterior não contém CLA. Há também um suporte de longo prazo disponível para a estrutura (suporte de longo prazo ou LTS) por uma duração total de 3 anos.
Componentes e controle de versão
A partir do Zend Framework versão 2.5, os componentes são divididos em pacotes com versão independente e zendframework / zendframework é convertido em um meta-pacote Composer. Os componentes da estrutura introduzidos após a divisão não são adicionados ao meta-pacote.
Embora a versão de lançamento do meta-pacote zendframework / zendframework permaneça em 3.0.0, ele instruirá o Composer a instalar as versões compatíveis mais recentes dos componentes do framework, de acordo com o controle de versão semântico. De forma que o componente zend-mvc seja instalado em sua versão 3.1.1 atual, zend-servicemanager na versão 3.3.0 e zend-form na versão 2.10.2.
As lâminas incluem os seguintes componentes:
Componente | Descrição |
---|---|
Autenticação | Autentique usuários por meio de uma variedade de adaptadores e forneça a identidade autenticada ao seu aplicativo. |
Código de barras | Crie e processe códigos de barras programaticamente como imagens ou em PDFs. |
Cache | Implementação de cache com uma variedade de opções de armazenamento, bem como estratégias de cache codificadas para retornos de chamada, classes e saída. |
CAPTCHA | Gere e valide CAPTCHAs usando Figlets, imagens, ReCaptcha e muito mais. |
Código | Extensões para PHP Reflection API, varredura de código estático e geração de código. |
Instalador de componentes | Plugin do Composer para injetar módulos e provedores de configuração na configuração do aplicativo. |
Config | Leia e grave arquivos de configuração. |
Agregador de configuração | Agregue e mescle a configuração de uma variedade de fontes. |
Console | Crie aplicativos de console usando a sintaxe getopt ou roteamento, completos com prompts |
Cripta | Fortes ferramentas de criptografia e hashing de senha. |
DB | Camada de abstração de banco de dados, abstração SQL, abstração de conjunto de resultados e implementações de RowDataGateway e TableDataGateway. |
Depurar | Despeje com segurança as informações de depuração em HTML. |
DI | Injeção automatizada de dependências e gerenciador de instâncias. |
Diactoros | Implementações de mensagem HTTP PSR-7. |
DOM | Consulte documentos HTML e XML usando seletores XPath ou CSS. |
Escaper | Escape de HTML, atributos HTML, JavaScript, CSS e URLs de forma segura e segura. |
Gerente de eventos | Implemente eventos, slots de sinal, aspectos e observadores! |
Expressivo | Middleware PSR-7 em minutos. |
Alimentação | Consuma e gere feeds Atom e RSS e interaja com o Pubsubhubbub. |
Arquivo | Localize os arquivos de classe do PHP. |
Filtro | Filtre e normalize programaticamente os dados e arquivos. |
Forma | Valide e exiba formulários simples e complexos, lançando formulários para objetos de negócios e vice-versa. |
HAL para PSR-7 | Hypertext Application Language (HAL) para PSR-7. |
HTTP | Mensagem HTTP e abstrações de cabeçalho e implementação de cliente HTTP. (Não é uma implementação PSR-7.) |
Hidratante | Serialize objetos em matrizes e vice-versa. |
InputFilter | Normalize e valide conjuntos de entrada da web, APIs, CLI e muito mais, incluindo arquivos. |
Internacionalização | Forneça traduções para seu aplicativo e filtre e valide valores internacionalizados. |
JSON | Des / serializar JSON em PHP, incluindo expressões JavaScript. |
Servidor JSON-RPC | Implementação JSON-RPC para PHP. |
LDAP | Execute operações LDAP, incluindo vinculação, pesquisa e modificação de entradas em um diretório LDAP. |
Carregador | Estratégias de carregamento automático e carregamento de plugins. |
Registro | Logger robusto e composto com filtragem, formatação e suporte para PSR-3. |
Correspondência | Analise, crie, armazene e envie mensagens de e-mail, usando uma variedade de protocolos de armazenamento e transporte. |
Matemática | Crie números pseudo-aleatórios criptograficamente seguros e gerencie números inteiros grandes. |
Memória | Gerencie dados em um ambiente com memória limitada. |
MIME | Crie e analise mensagens e partes MIME. |
Gerente de Módulo | Sistema de aplicativo modular para aplicativos zend-mvc. |
MVC | Camada MVC orientada a eventos do Laminas, incluindo aplicativos MVC, controladores e plug-ins. |
Integração MVC-Console | Integração entre zend-mvc e zend-console. |
Integração MVC-i18n | Integração entre zend-mvc e zend-i18n. |
plugin fileprg () | Post / Redirect / Get plugin com manipulação de upload de arquivo para controladores zend-mvc. |
plugin flashmessenger () | Plug-in para criar e expor mensagens flash por meio de controladores zend-mvc. |
plugin de identidade () | Plug-in para recuperar a identidade autenticada atual nos controladores zend-mvc. |
plugin prg () | Post / Redirect / Get plugin para controladores zend-mvc. |
Navegação | Gerencie árvores de ponteiros para páginas da web para construir sistemas de navegação. |
Paginator | Pagine coleções de dados de fontes arbitrárias. |
ACL | Crie, gerencie e consulte listas de controle de acesso. |
RBAC | Fornece e consulta controles de acesso com base em funções para o seu aplicativo. |
Detalhes do problema | Detalhes do problema PSR-7 para respostas e middleware da API HTTP. |
Barra de progresso | Crie e atualize barras de progresso em diferentes ambientes. |
Ponte PSR-7 | PSR-7 <-> conversões de mensagens zend-http. |
Roteador | Sistema de roteamento flexível para HTTP e aplicativos de console. |
Serializador | Serialize e desserialize estruturas PHP para uma variedade de representações. |
Servidor | Crie servidores RPC baseados em Reflection. |
ServiceManager | Recipiente de injeção de dependência orientado pela fábrica |
Integração ServiceManager-Di | Integração zend-di para zend-servicemanager |
Sessão | Interface orientada a objetos para sessões e armazenamento de PHP. |
SABÃO | Crie, atenda e acesse aplicativos SOAP e analise e gere WSDL. |
Stdlib | Extensões SPL, utilitários de array, manipuladores de erros e muito mais. |
Estratigilidade | Base de middleware PSR-7 para construir e despachar pipelines de middleware. |
Marcação | Manipule e pondere itens etiquetáveis e crie nuvens de marcas. |
Teste | Ferramentas para facilitar o teste de unidade de aplicativos zend-mvc. |
Texto | Crie FIGlets e tabelas baseadas em texto. |
URI | Interface orientada a objetos para URIs, com facilidades para validação. |
Validador | Classes de validação para uma ampla gama de domínios e a capacidade de validar em cadeia para criar critérios de validação complexos. |
Visualizar | Camada de visualização flexível com suporte e fornecimento de várias camadas de visualização, auxiliares e muito mais. |
XML-RPC | Totalmente caracterizado servidor XML-RPC e implementações de cliente. |
XML2JSON | Converta documentos XML em JSON. |
Instalação
O método de instalação oficialmente suportado é por meio do gerenciador de pacotes Composer .
O Laminas fornece um meta-pacote que inclui 61 componentes, mas a maneira recomendada é instalar os componentes necessários da estrutura individualmente. O Composer resolverá e instalará todas as dependências adicionais.
Por exemplo, se você precisa do pacote MVC, pode instalar com o seguinte comando:
$ composer require zendframework/zend-mvc
A lista completa de componentes está disponível na documentação do Zend Framework.
Anatomia da estrutura
O Laminas segue a abordagem de configuração sobre convenção e não impõe nenhuma estrutura de aplicação particular. Os aplicativos básicos para zend-mvc e zend-expressive estão disponíveis e fornecem tudo o que é necessário para executar os aplicativos e servir como um bom ponto de partida.
Estrutura de diretório de aplicativo MVC recomendada
ZendSkeletonApplication, aplicativo de esqueleto usando sistemas de módulos e camadas MVC do Laminas, pode ser instalado com:
$ composer create-project zendframework/skeleton-application <project-path>
Ele criará uma estrutura de arquivo semelhante a esta:
<project name>/
├── config/
│ ├── autoload/
│ │ ├── global.php
│ │ └── local.php.dist
│ ├── application.config.php
│ └── modules.config.php
├── data/
│ └── cache/
├── module/
├── public/
│ └── index.php
├── vendor/
├── composer.json
├── composer.lock
└── phpunit.xml.dist
O diretório config / possui configurações de todo o aplicativo. módulo / diretório contém módulos locais que são confirmados junto com o aplicativo. vendor / contém o código do fornecedor e outros módulos gerenciados independentemente do aplicativo, o conteúdo da pasta é normalmente gerenciado pelo Composer.
O módulo Laminas tem apenas um requisito: a classe de módulo existe em um namespace de módulo e pode ser carregada automaticamente. A classe de módulo fornece configuração e lógica de inicialização para o aplicativo. A estrutura do módulo recomendada é a seguinte:
<modulename>
├── config/
│ └── module.config.php
├── src/
│ └── Module.php
├── test/
├── view/
├── composer.json
└── phpunit.xml.dist
O diretório config / contém as configurações do módulo, o diretório src / contém o código-fonte do módulo, conforme definido no padrão de carregamento automático PSR-4 , o diretório test / contém testes de unidade para o módulo e os scripts de exibição / diretório contêm scripts de exibição.
Criando a estrutura do projeto
O Laminas suporta entrada de linha de comando para criar estrutura de diretórios. Usaremos a interface de linha de comando para começar a criar a estrutura de diretório para nosso projeto. Isso lhe dará uma compreensão estrutural completa dos diretórios. A interface oferece suporte e fornece a interface Zend_Tool, oferecendo uma série de funcionalidades de comando.
- Abra a interface da linha de comando e altere o diretório hellozend.
- Os usuários do Windows digitam: bin \ zf \ bat criar projeto
- Os usuários de Linux / Mac digitam: bin \ zf.sh criar projeto
Este procedimento criará o projeto Laminas em um local especificado por você. Depois de executar Zend_Toll, ele criará o esqueleto básico do aplicativo. Isso não apenas criará uma estrutura de diretório, mas também todos os elementos básicos da estrutura MVC . Para obter as funcionalidades do Apache , as configurações do host virtual serão as seguintes:
Listen 8080
<VirtualHost *: 8080>
DocumentRoot /User/keithpope/Sites/hellozend/public
</VirtualHost>
A estrutura de diretório básica criada será semelhante à mencionada na estrutura de diretório mencionada anteriormente do Zend Framework com explicação semelhante. Há outro aspecto do Zend-Tool que é inicializado automaticamente durante a instalação é a inicialização. Aqui, o objetivo básico é inicializar a solicitação da página pelo desenvolvedor. A entrada principal aqui criada pelo Zend Framework é o arquivo de índice. O arquivo de índice fornece função para lidar com a solicitação do usuário. Este é o principal ponto de entrada para todas as solicitações. A seguir mostra as funcionalidades.
- Caminho do aplicativo: define o caminho para o diretório do aplicativo
- Application_Env: altera o comportamento do aplicativo dependendo de vários fatores, como a forma como o aplicativo é usado.
- getenv (): verifica o ambiente do sistema.
- Inicializar o aplicativo Zend-Application: inclui o Zend-Application e cria uma instância dele.
- Chame o método bootstrap () junto com o método run () iniciando o MVC .
Em geral, o Zend-Tool cria muitas estruturas de diretório importantes. Este sistema é construído com base na tecnologia de desenvolvimento rápido de aplicativos . Como regra geral de suporte, a estrutura se concentra na codificação e nas estruturas do projeto, em vez de se concentrar em partes menores.
- Estrutura do diretório do projeto
- Controladores
- Ações
- Visualizações
- Arquivo de bootstrap
Controladores
O controlador é a principal entrada para o aplicativo Laminas. O front controller handler é o principal hub para aceitar solicitações e executar as ações precisas conforme solicitado pelos comandos. Todo o processo de solicitação e reação é roteamento e despacho (o que basicamente significa chamar métodos corretos em uma classe) que determina a funcionalidade do código. Isso é implementado pela Interface Zend_Controller_Router_-. A funcionalidade do roteador é descobrir quais ações precisam ser executadas e, caso contrário, o despachante executa essas ações solicitadas. O controlador no Laminas está conectado em uma ampla variedade de diretórios estruturais, que fornecem um suporte para um roteamento eficiente. O principal ponto de entrada e controlador de comando é o Zend_Controller_Front, que funciona como uma base que delega o trabalho recebido e enviado. A solicitação é formada e encapsulada com uma instância do Zend Controller Request HTTP , como um provedor de acesso a solicitações HTTP . O HTTP contém todas as superglobais da estrutura ($ _GET, $ _POST, $ _COOKIE, $ _SERVER e $ _ENV) com seus caminhos relevantes. Além disso, o controlador também fornece funções getParam () que permitem a coleção de variáveis solicitadas.
Ações
Ações são funcionalidades importantes. Os controladores não funcionam sem ações. Para este propósito, criamos outro método que tem ação anexada ao seu nome e automaticamente o front controller irá reconhecê-lo como uma ação. O Action possui o método init () que mostra sua natureza privada e não pode ser acessado por ninguém. Os comandos a seguir são executados para que Zend_Tool possa criar ações para nós. Através do uso do despachante padrão, todas as funções são nomeadas após o nome da ação e seguidas pela palavra "Ação" anexada. Isso leva à classe de ação do controlador contendo métodos como indexAction (), viewAction (), editAction () e deleteAction ().
Usuários do Windows:
bin\zf.bat create actions about index
bin/zf.sh create action about index
Um exemplo de formulários e ações:
namespace Album\Form;
use Zend\Form\Form;
class AlbumForm extends Form
{
public function __construct($name = null)
{
// we want to ignore the name passed
parent::__construct('album');
$this->add(array(
'name' => 'id',
'type' => 'Hidden',
));
$this->add(array(
'name' => 'title',
'type' => 'Text',
'options' => array(
'label' => 'Title',
),
));
$this->add(array(
'name' => 'artist',
'type' => 'Text',
'options' => array(
'label' => 'Artist',
),
));
$this->add(array(
'name' => 'submit',
'type' => 'Submit',
'attributes' => array(
'value' => 'Go',
'id' => 'submitbutton',
),
));
} // source: Zend Framework Guide
}
Roteador padrão
O roteador padrão é uma ferramenta importante do Front Controller. Aqui, as principais decisões são tomadas em ordem de módulo, controlador e ação que estão sendo solicitados. Tudo isso é processado aqui. A seguir estão a estrutura padrão.
- Módulo
- Controlador
- Ações
A solicitação segue um padrão, as primeiras informações são obtidas do ponto de extremidade da URL de HTTP . URI é o ponto final da solicitação. A estrutura do URL segue: http://domain.com/moduleName/controllerName/actionName
O exemplo de código do roteador padrão:
// Assuming the following:
$ctrl->setControllerDirectory(
array(
'default' => '/path/to/default/controllers',
'news' => '/path/to/news/controllers',
'blog' => '/path/to/blog/controllers'
)
);
Módulo apenas:
http: // example / news
module == news
Módulo inválido mapeia para o nome do controlador:
http: // example / foo
controller == foo
Module + controller:
http: // example / blog / archive
module == blog
controller ==
Módulo de arquivo + controlador + ação:
http: // exemplo / blog / arquivo /
módulo de lista ==
controlador de blog ==
ação de arquivo ==
Módulo de lista + controlador + ação + parâmetros:
http: // exemplo / blog / arquivo / list / sort / alpha / date / desc
module == blog
controller == archive
action == list
sort == alpha
date == desc
Métodos utilitários
O Projeto Laminas também fornece alguns métodos utilitários. A seguir estão alguns métodos utilitários fornecidos na estrutura.
- _frente()
- é usado para chamar a ação
-
_forward{$action, $controller = null, $module = null, array $params = null}
- $ ações
- string, ação necessária
- $ controlador
- parâmetro de string opcional e é o local onde o controlador está.
- $ módulo
- string, possui módulo no qual temos o controlador.
- $ params
- array, parâmetro do usuário
Outro método é o método do utilitário de redirecionamento. Isso é o oposto do método _forward () mencionado anteriormente. _redirect () executa HTTP no redirecionamento na criação de uma nova solicitação. Os métodos _redirect () aceitam dois argumentos, a saber $ url e $ options.
Além disso, os Action Helpers também são uma forma de fornecer funcionalidades extras dentro do framework. Os ajudantes de ação são úteis quando há necessidade de fornecer funcionalidade entre os controladores.
//application/controllers/IndexController.php
public function init()
{
$this->_helper->viewRenderer->setNoRender();
}
Durante a fase de inicialização de IndexController e ContactController, viewReader é chamado e o sinalizador noRender é chamado no objeto de exibição. A falta desse processo cria um erro em nosso aplicativo.
Ver diretórios
O Laminas fornece a estrutura de visualização para nosso projeto e controlador e as ações são fornecidas automaticamente para nosso aplicativo. Dentro da pasta Laminas, observamos as seguintes pastas.
- Visualizar
- Ajudantes
- Scripts
- Contatos
- erros
- índice
Para criar uma visão, nós seguimos:
<!-- application/views/scripts/index/index.phtml -->
<html>
<head>
<title><Hello Zend</title>
</head>
<body>
<hi>Hello Zend</hi>
<p>Hello from Zend Framework</p>
</body>
</html>
Ver amostra:
// https://framework.zend.com/manual/2.4/en/modules/zend.view.quick-start.html
namespace Foo\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class BazBatController extends AbstractActionController
{
public function doSomethingCrazyAction()
{
$view = new ViewModel(array(
'message' => 'Hello world',
));
$view->setTemplate('foo/baz-bat/do-something-crazy');
return $view;
}
}
Patrocinador e parceiros
A Zend Technologies , co-fundada pelos contribuidores principais do PHP Andi Gutmans e Zeev Suraski , foi o patrocinador corporativo original do Zend Framework. Os parceiros de tecnologia incluem IBM , Google , Microsoft , Adobe Systems e StrikeIron .
Recursos
As características de laminas incluem:
- Todos os componentes são totalmente orientados a objetos PHP 5 e são compatíveis com E_STRICT, o que ajuda no desenvolvimento de testes de construção e escrita de códigos de uma maneira de aplicação livre de bugs e à prova de falhas.
- Arquitetura de uso à vontade com componentes fracamente acoplados e interdependências mínimas
- Implementação de MVC extensível com suporte a layouts e modelos baseados em PHP por padrão
- Suporte para vários sistemas de banco de dados e fornecedores, incluindo MariaDB , MySQL , Oracle , IBM DB2 , Microsoft SQL Server , PostgreSQL , SQLite e Informix Dynamic Server
- Composição e entrega de e-mail, recuperação via mbox , Maildir , POP3 e IMAP4
- Subsistema de cache flexível com suporte para muitos tipos de back-ends, como memória ou sistema de arquivos .
- Com a ajuda dos serviços de chamada de procedimento remoto (RPC) e REST ( Representational State Transfer ), o Zend Apigility ajuda os desenvolvedores a criar APIs, autenticação de APIs , documentação de APIs, Modificação fácil
Desenvolvimento de aplicações
Os aplicativos do Laminas podem ser executados em qualquer pilha PHP que atenda aos requisitos técnicos. A Zend Technologies fornece uma pilha PHP, Zend Server (ou Zend Server Community Edition), que é anunciada para ser otimizada para executar aplicativos Laminas. Zend Server inclui Zend Framework em seus instaladores, junto com PHP e todas as extensões necessárias. De acordo com a Zend Technologies, o Zend Server fornece desempenho aprimorado para PHP e, especialmente, aplicativos Zend Framework por meio de aceleração de opcode e vários recursos de cache, e inclui monitoramento de aplicativos e recursos de diagnóstico. Zend Studio é um IDE que inclui recursos especificamente para integração com o Zend Framework. Ele fornece uma visão MVC, geração de código MVC baseada em Zend_Tool (um componente do Zend Framework), um formatador de código, autocompletar código, assistente de parâmetro e muito mais. Zend Studio não é software livre, enquanto Zend Framework e Zend Server Community Edition são gratuitos. O Zend Server é compatível com ferramentas de depuração comuns, como o Xdebug . Outros desenvolvedores podem querer usar uma pilha PHP diferente e outro IDE, como o Eclipse PDT, que funciona bem com o Zend Server. Uma versão gratuita pré-configurada do Eclipse PDT com Zend Debug está disponível no site da Zend.
Código, documentação e padrões de teste
As contribuições de código para o Laminas estão sujeitas a códigos, documentação e padrões de teste rigorosos. Todo o código deve atender aos padrões de codificação do projeto e os testes de unidade devem atingir 80% de cobertura de código antes que o código correspondente possa ser movido para o branch de lançamento.
API de nuvem simples
Em 22 de setembro de 2009, Zend Technologies anunciou que estaria trabalhando com parceiros de tecnologia como Microsoft , IBM , Rackspace , Nirvanix e GoGrid juntamente com a comunidade Zend Framework para desenvolver uma API comum para cloud serviços de aplicativos chamado de Simples Cloud API . Este projeto é parte do Zend Framework e será hospedado no site Zend Framework, mas um site separado chamado simplecloud.org foi lançado para discutir e baixar as versões mais atuais da API. A API Simple Cloud e vários serviços em nuvem estão incluídos no Zend Framework. Os adaptadores para serviços de nuvem populares alcançaram qualidade de produção.
Hello World: arquivo por arquivo
Para criar o programa Hello World, existem várias etapas, incluindo:
- Primeiro crie quatro arquivos dentro da estrutura de diretório. Esses arquivos são um arquivo de bootstrap, um arquivo de controle do Apache ( .htaccess ), um arquivo de controlador e um controlador de visualização para a visualização.
- Em segundo lugar, uma cópia do Zend Framework precisa ser desenvolvida. Com o crescimento da complexidade, é necessário código adicional que fornecerá a funcionalidade e que seja relativamente pequeno e se concentre nos benefícios do sistema MVC . Quanto ao processo em mais detalhes, o arquivo de bootstrap é a inicialização de uma forma ou de outra.
Em seguida, é necessário garantir que o ambiente esteja correto e que não haja erros, seguido pela configuração de data e hora para a funcionalidade de rastreamento. Para definir a data e a hora, muitos procedimentos podem ser seguidos; por exemplo, o método data_default_timezone_set () pode ser chamado e Zend assume que o diretório padrão incluirá o caminho phd. O Zend Framework não depende de nenhum arquivo específico, mas as classes auxiliares são úteis neste caso. A seguir estão alguns exemplos:
- Zend_Loader :: loadClass () o objetivo principal aqui é corrigir o arquivo para o nome de classe fornecido.
- Em seguida, os sublinhados são convertidos em estruturas específicas de diretório. Como resultado, as linhas de código Zend_Loader :: loadClass ('Zend_Controller_Front'); e include_once 'Zend / Controller / Front.php'; mostram resultados semelhantes.
- Zend_Debug :: dump () funciona em termos de informações de depuração e é focado na saída var_dump () formatada. Finalmente, o bootstrap executa o front controller e o inicializa. O padrão de design usado por Zend_Controller_Front é o design Singleton e getInstance () é usado para obter a instância única.
Desenvolvimento atual
Zend Framework 3.0 foi lançado em 28 de junho de 2016. Inclui novos componentes como um servidor JSON RPC, um conversor XML para JSON, funcionalidade PSR-7 e compatibilidade com PHP 7. Zend Framework 3.0 é executado até 4 vezes mais rápido que Zend Framework 2, e os pacotes foram desacoplados para permitir uma maior reutilização. Os contribuidores do Zend Framework estão incentivando ativamente o uso do Zend Framework versão 3.x. O fim da vida útil declarado para Zend Framework 1 é 2016-09-28, e para Zend Framework 2 é 2018-03-31. A primeira versão de desenvolvimento do Zend Framework 2.0 foi lançada em 6 de agosto de 2010. As alterações feitas nesta versão foram a remoção das instruções require_once , migração para namespaces PHP 5.3, um conjunto de testes refatorado, um Zend \ Session reescrito e a adição do novo Zend \ Stdlib . A segunda versão de desenvolvimento foi em 3 de novembro de 2010. A primeira versão estável do Zend Framework 2.0 foi lançada em 5 de setembro de 2012.