Zend Framework - 创建应用程序

  • 简述

    让我们使用 Zend Framework MVC 层和模块系统创建一个 Framework 应用程序。
  • 使用 Composer 进行安装

    创建新的 Zend Framework 项目的最简单方法是使用 Composer 。它的定义如下 −
    
    $ cd /path/to/install 
    $ composer create-project -n -sdev zendframework/skeleton-application myapp
    
    您会在屏幕上看到以下结果 -
    
    Installing zendframework/skeleton-application (dev-master 
       941da45b407e4f09e264f000fb537928badb96ed)
       - Installing zendframework/skeleton-application (dev-master master)
       Cloning master
    Created project in myapp
    Loading composer repositories with package information
    Installing dependencies (including require-dev) from lock file
       - Installing zendframework/zend-component-installer (0.3.0)
       Loading from cache
      
       - Installing zendframework/zend-stdlib (3.0.1)
       Loading from cache
       
       - Installing zendframework/zend-config (2.6.0)
       Loading from cache
       
       - Installing zendframework/zend-loader (2.5.1)
       Loading from cache
       
       - Installing zendframework/zend-eventmanager (3.0.1)
       Loading from cache
       
       - Installing zendframework/zend-view (2.8.0)
       Loading from cache
       
       - Installing container-interop/container-interop (1.1.0)
       Loading from cache
       
       - Installing zendframework/zend-servicemanager (3.1.0)
       Loading from cache
       
       - Installing zendframework/zend-validator (2.8.1)
       Loading from cache
       
       - Installing zendframework/zend-escaper (2.5.1)
       Loading from cache
       
       - Installing zendframework/zend-uri (2.5.2)
       Loading from cache
       
       - Installing zendframework/zend-http (2.5.4)
       Loading from cache
       
       - Installing zendframework/zend-router (3.0.2)
       Loading from cache
       
       - Installing zendframework/zend-modulemanager (2.7.2)
       Loading from cache
       - Installing zendframework/zend-mvc (3.0.1)
       Loading from cache
       
       - Installing zendframework/zend-skeleton-installer (0.1.3)
       Loading from cache
       
       - Installing zfcampus/zf-development-mode (3.0.0)
       Loading from cache
    zendframework/zend-config suggests installing zendframework/zend-filter
       (Zend\Filter component)
    zendframework/zend-config suggests installing zendframework/zend-i18n
       (Zend\I18n component)
    zendframework/zend-config suggests installing zendframework/zend-json
       (Zend\Json to use the Json reader or writer classes)
    zendframework/zend-view suggests installing zendframework/zend-authentication
       (Zend\Authentication component)
    zendframework/zend-view suggests installing zendframework/zend-feed
       (Zend\Feed component)
    zendframework/zend-view suggests installing zendframework/zend-filter
       (Zend\Filter component)
    zendframework/zend-view suggests installing zendframework/zend-i18n
       (Zend\I18n component)
    zendframework/zend-view suggests installing zendframework/zend-json
       (Zend\Json component)
    zendframework/zend-view suggests installing zendframework/zend-navigation
       (Zend\Navigation component)
    zendframework/zend-view suggests installing zendframework/zend-paginator
       (Zend\Paginator component)
    zendframework/zend-view suggests installing zendframework/zend-permissions-acl
       (Zend\Permissions\Acl component)
    zendframework/zend-servicemanager suggests installing ocramius/proxy-manager
       (ProxyManager 1.* to handle lazy initialization of services)
    zendframework/zend-validator suggests installing zendframework/zend-db
       (Zend\Db component)
    zendframework/zend-validator suggests installing zendframework/zend-filter
       (Zend\Filter component, required by the Digits validator)
    zendframework/zend-validator suggests installing zendframework/zend-i18n
       (Zend\I18n component to allow translation of validation error messages as well as
       to use the various Date validators)
    zendframework/zend-validator suggests installing zendframework/zend-i18nresources
       (Translations of validator messages)
    zendframework/zend-validator suggests installing zendframework/zend-math
       (Zend\Math component)
    zendframework/zend-validator suggests installing zendframework/zend-session
       (Zend\Session component)
    zendframework/zend-router suggests installing zendframework/zend-i18n
       (^2.6, if defining translatable HTTP path segments)
    zendframework/zend-modulemanager suggests installing zendframework/zend-console
       (Zend\Console component)
    zendframework/zend-mvc suggests installing zendframework/zend-json ((^2.6.1 ||
       ^3.0) To auto-deserialize JSON body content in AbstractRestfulController
       extensions, when json_decode is unavailable)
    zendframework/zend-mvc suggests installing zendframework/zend-mvc-console
       (zend-mvc-console provides the ability to expose zend-mvc as a console application)
    zendframework/zend-mvc suggests installing zendframework/zend-mvc-i18n
       (zendmvc-i18n provides integration with zend-i18n, including a translation bridge
       and translatable route segments)
    zendframework/zend-mvc suggests installing zendframework/zend-mvc-pluginfileprg
       (To provide Post/Redirect/Get functionality around forms that container
       file uploads)
    zendframework/zend-mvc suggests installing zendframework/zend-mvc-pluginflashmessenger
       (To provide flash messaging capabilities between requests)
    zendframework/zend-mvc suggests installing zendframework/zend-mvc-pluginidentity
       (To access the authenticated identity (per zend-authentication) in controllers)
    zendframework/zend-mvc suggests installing zendframework/zend-mvc-plugin-prg
       (To provide Post/Redirect/Get functionality within controllers)
    zendframework/zend-mvc suggests installing zendframework/zend-psr7bridge
       ((^0.2) To consume PSR-7 middleware within the MVC workflow)
    zendframework/zend-mvc suggests installing zendframework/zend-servicemanager-di
       (zend-servicemanager-di provides utilities for integrating zend-di and
       zendservicemanager in your zend-mvc application)
    Generating autoload files
       Removing optional packages from composer.json
       Updating composer.json
    Removing zendframework/zend-skeleton-installer...
       - Removing zendframework/zend-skeleton-installer (0.1.3)
       Removed plugin zendframework/zend-skeleton-installer.
       Removing from composer.json
       Complete!
    > zf-development-mode enable
    You are now in development mode.
    
    现在应用程序已经安装完毕,您可以使用PHP的内置Web服务器立即对其进行测试 -
    
    $ cd path/to/install/myapp 
    $ composer serve
    
    然后你会看到以下响应 -
    
    > php -S 0.0.0.0:8080 -t public/ public/index.php 
    
    这将在端口 8080 上启动 PHP 内置 CLI 服务器。启动开发服务器后,您可以在 (http://localhost:8080/) 处访问站点。内置 CLI 服务器仅用于开发。
    界面服务器
  • 单元测试

    要运行 Framework 单元测试,请在终端中键入以下命令。
    
    $ composer require --dev zendframework/zend-test
    
    它将产生以下响应 −
    
    Using version ^3.0 for zendframework/zend-test 
       ./composer.json has been updated 
    Loading composer repositories with package information 
    Updating dependencies (including require-dev) 
       - Installing zendframework/zend-dom (2.6.0) 
       Loading from cache  
       
       - Installing zendframework/zend-console (2.6.0) 
       Loading from cache  
       
       - Installing sebastian/version (2.0.1) 
       Loading from cache 
       
       - Installing symfony/yaml (v3.2.1)
       Downloading: 100%           
       
       - Installing sebastian/resource-operations (1.0.0) 
       Loading from cache  
       
       - Installing sebastian/recursion-context (2.0.0) 
       Loading from cache  
       
       - Installing sebastian/object-enumerator (2.0.0) 
       Loading from cache  
       
       - Installing sebastian/global-state (1.1.1) 
       Loading from cache  
       
       - Installing sebastian/exporter (2.0.0) 
       Loading from cache  
       
       - Installing sebastian/environment (2.0.0) 
       Loading from cache  
       
       - Installing sebastian/diff (1.4.1) 
       Loading from cache  
       
       - Installing sebastian/comparator (1.2.2) 
       Loading from cache  
       
       - Installing phpunit/php-text-template (1.2.1) 
       Loading from cache  
       
       - Installing doctrine/instantiator (1.0.5) 
       Loading from cache  
       
       - Installing phpunit/phpunit-mock-objects (3.4.3) 
       Downloading: 100%          
       
       - Installing phpunit/php-timer (1.0.8)
       Loading from cache  
       
       - Installing phpunit/php-file-iterator (1.4.2) 
       Loading from cache  
       
       - Installing sebastian/code-unit-reverse-lookup (1.0.0) 
       Loading from cache  
       
       - Installing phpunit/php-token-stream (1.4.9) 
       Loading from cache  
       
       - Installing phpunit/php-code-coverage (4.0.4) 
       Downloading: 100%           
       
       - Installing webmozart/assert (1.2.0) 
       Loading from cache  
       
       - Installing phpdocumentor/reflection-common (1.0) 
       Loading from cache  
       
       - Installing phpdocumentor/type-resolver (0.2.1) 
       Loading from cache  
       
       - Installing phpdocumentor/reflection-docblock (3.1.1) 
       Loading from cache  
       
       - Installing phpspec/prophecy (v1.6.2) 
       Loading from cache  
       
       - Installing myclabs/deep-copy (1.5.5) 
       Loading from cache  
       
       - Installing phpunit/phpunit (5.7.4) 
       Downloading: 100%          
       
       - Installing zendframework/zend-test (3.0.2) 
       Loading from cache
    zendframework/zend-console suggests installing zendframework/zend-filter 
       (To support DefaultRouteMatcher usage) 
    symfony/yaml suggests installing symfony/console (For validating YAML files 
       using the lint command) 
    sebastian/global-state suggests installing ext-uopz (*) 
    phpunit/phpunit-mock-objects suggests installing ext-soap (*) 
    phpunit/php-code-coverage suggests installing ext-xdebug (>=2.4.0) 
    phpunit/phpunit suggests installing phpunit/php-invoker (~1.1) 
    phpunit/phpunit suggests installing ext-xdebug (*) 
    zendframework/zend-test suggests installing zendframework/zend-mvc-console 
       (^1.1.8, to test MVC <-> console integration) 
    Writing lock file 
    Generating autoload files
    
    现在启用了测试支持,因此可以使用以下命令运行测试。
    
    $ ./vendor/bin/phpunit
    
  • Apache 网络服务器

    在生产环境中托管基于Zend Framework 的应用程序非常简单明了。只需在 Apache 配置文件中创建一个虚拟主机,然后将文档根指向 Zend Framework 应用程序的公用文件夹
    下面给出了一个示例配置 (myapp) −
    
    <VirtualHost *:80> 
       ServerName myapp.localhost 
       DocumentRoot /path/to/install/myapp/public 
       <Directory /path/to/install/myapp/public> 
          DirectoryIndex index.php 
          AllowOverride All 
          Order allow,deny 
          Allow from all 
          <IfModule mod_authz_core.c> 
             Require all granted 
          </IfModule> 
       </Directory> 
    </VirtualHost>