zend framework如何安装?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zend framework如何安装?相关的知识,希望对你有一定的参考价值。
我在zend framework的官网下载了最新版,解压到我本机的虚拟主机的文件夹里,无奈的是我找不到那个是安装文件,无论我访问那个php文件都出错?我在网上找的安装教程都是一笔带过,没有详细的说明,我希望给我回答的人能详细告诉我如何安装的步骤,不要发链接,
1、下载 ZF;
2、解压将其库类放到项目的根目录中;如:/var/www/nbaplayers/library/Zend......
3、创建项目的基本目录:
4、实例:
4.1、新建文件 /var/www/nbaplayers/index.php:
<?php
error_reporting(E_ALL|E_STRICT);//语句打开了错误输出开关,用于代码调试,正式发布的代码应该屏蔽错误信息。
date_default_timezone_set(\'Asia/Shanghai\');//设定时区
set_include_path(\'.\'.
PATH_SEPARATOR.\'./library\'. //用于设定类库的包含路径,ZF的系统类库就是在这里指定的。
PATH_SEPARATOR.\'application/models/\'. //包含自定义类文件。
PATH_SEPARATOR. get_include_path()
);
require_once \'Zend/Loader.php\';
Zend_Loader::registerAutoload(); //自动加载类
$frontController = Zend_Controller_Front::getInstance();//取得Zend_Controller_Front类实例
$frontController->setControllerDirectory (array(
"default" => \'application/controllers\',
)); // 指定一组控制器文件路径,参数是数组。设置前端控制器,主要是让控制器知道我们的的控制器类在哪里
$frontController->throwExceptions(true);//让前端控制器抛出所有的异常。 默认情况下,前端控制器将捕获这些异常并将其人传递到 ErrorController 控制器,在开发过程,这样错误容易发现。但在实际运行中,不能将这些错误直接显示给前端用户。
$frontController->setParam(\'noViewRenderer\', true);// 指明不使用视图,false 是默认值。
$frontController->setParam(\'noErrorHandler\', false);
$frontController->dispatch(); //程序执行分发
?>
注意:如果你用的ZF是之前的版本的话,会出现以下提示:
Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /usr/local/zend/share/ZendFramework/library/Zend/Loader.php on line 207
那么将:
require_once \'Zend/Loader.php\';
Zend_Loader::registerAutoload(); // 自动加载类
修改为:
require_once \'Zend/Loader/Autoloader.php\'; // 自动加载类
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
$loader->suppressNotFoundWarnings(false);
就好了。具体可以看看ZF的官方说明。在Autoloader.php文件中,有一方法:
protected function __construct()
spl_autoload_register(array(__CLASS__, \'autoload\'));
$this->_internalAutoloader = array($this, \'_autoload\');
用来实现自动加载类文件。
* spl_autoload_register — Register given function as __autoload() implementation
//设置对象的自动载入
参考技术A 额。貌似zend framework是一个开源的 框架 不用安装的。 你直接吧 library 考出来使用就okZend Framework / Skeleton-Application / Composer 安装问题
【中文标题】Zend Framework / Skeleton-Application / Composer 安装问题【英文标题】:Zend Framework / Skeleton-Application / Composer install issue 【发布时间】:2015-09-22 20:45:33 【问题描述】:我正在尝试使用 NetBeans 中的骨架创建 Zend Framework 应用程序。当我运行 Composer 安装时,我收到以下错误消息:
"C:\php\php.exe" "C:\composer\composer.phar" "--ansi" "--no-interaction" "update" "--dev"
You are using the deprecated option "dev". Dev packages are installed by default now.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- This package requires php >=5.5 but your PHP version (5.4.42) does not satisfy that requirement.
Problem 2
- Installation request for zendframework/zendframework 2.5.1 -> satisfiable by zendframework/zendframework[2.5.1].
- zendframework/zendframework 2.5.1 requires php >=5.5 -> your PHP version (5.4.42) does not satisfy that requirement.
Done.
显然,Zend Framework only needs PHP 5.3+ 与上述内容相矛盾。我需要使用 PHP 5.4。
我的composer.json
如下:
"name": "zendframework/skeleton-application",
"description": "Skeleton Application for ZF2",
"license": "BSD-3-Clause",
"keywords": [
"framework",
"zf2"
],
"homepage": "http://framework.zend.com/",
"require":
"php": ">=5.5",
"zendframework/zendframework": "2.5.1"
如何使用骨架创建 PHP 5.4 / ZendFramework 2 应用程序?有解决方法吗?我是 ZendFramework 和作曲家的新手。
【问题讨论】:
面对事实:PHP 5.4 现在已经严重过时了。所有主要框架都继续只支持积极维护的 PHP 版本。这排除了 5.4,它只会在另外两个月内获得安全修复。 Symfony 在他们即将发布的 3.0 版本中移动到 >=5.5.9。 Zend 在他们的 2.5.0 版本中切换到 >=5.5,承诺在一段时间内(直到 2018-03-31)维护他们的 2.4 版本(宣布为 LTS - 长期支持)。但是,如果使用的 PHP 已经过时,这对任何人都没有帮助。更新 PHP 的压力越来越大。 【参考方案1】:一个简单易行的解决方案: 安装 Bitnami Lamp Stack 它有你需要的一切,包括一个完整的 zendframework。
拥有 Lamp Stack (linux) 或 Wamp Stack (windows) 后,转到位于以下路径的配置目录:/home/user/lampstack-5.6.29-1/apache2/conf/bitnami
并编辑文件 bitnami-apps-prefix.conf
,您会发现其中有一行注释为
#Include "/home/user/lampstack-5.6.29-1/frameworks/zendframework/conf/httpd-prefix.conf"
// uncomment it deleting the character "#"
// let it:
Include "/home/user/lampstack-5.6.29-1/frameworks/zendframework/conf/httpd-prefix.conf"
// save changes and exit.
如果服务器正在运行,请重新启动它。现在你已经运行了zend、php、apache和mysql。
问候
【讨论】:
【参考方案2】:您链接到的页面已过期。 Zend Framework 2.5 需要 PHP 5.5 或更高版本。你可以在你的 PHP 版本上运行 ZF 2.4.x,但是PHP 5.4 reaches end of life in a couple of months,所以如果可以的话,你最好安装一个更新的 PHP 版本。
【讨论】:
【参考方案3】:我引用你放在这里的代码sn-p:
"php": ">=5.5",
删除该行,一切正常。
顺便说一句,从不在您的 composer.json
文件中有锁定版本。锁定版本由 Composer 在运行 composer update
时自动在 composer.lock
中完成。相反,请使用类似^2.5.1
(意思是>=2.5.1,<3.0-dev)
或~2.5.1
(意思是>=2.5.1,<2.6-dev
)的版本约束。
【讨论】:
骨架将需要 Zendframework 2.5.1 版本,而这确实也需要 PHP 5.5。从骨架包中删除需求并不能解决问题。更新 PHP 将解决它。或者,下载旧版本的骨架也可以。 我已经尝试删除你提到的那一行,但是 Sven 是对的,我仍然有一个 php 版本的问题...以上是关于zend framework如何安装?的主要内容,如果未能解决你的问题,请参考以下文章
Xampp / Composer / Zend Framework 2 安装问题
如何在Zend Framework3中更新composer更新时集成simplesamlphp库和更新配置
在 Zend Framework 2 项目中没有从作曲家安装 TCPDF