如何在Windows上安装Zend Framework

Gal*_*Gal 24 php zend-framework

"安装Zend Framework非常简单!!!!" 是的,对...

好吧,我正在和一本初学者的书一起工作,而那个不太详细的东西是最重要的部分:安装这个小东西.浏览快速入门指南数小时后,它说:

"下载Zend [...]添加include目录(bla bla),你就完成了!"

对,我已经完成了使用Zend.

好吧,不是真的,不管怎样.我请求你们,我想上床睡觉,请告诉我如何(简单的6年级细节)安装框架.我在htdocs目录中有解压缩的文件夹,并将zf.bat + zf.php放在htdocs根目录中.

下一步是什么?

非常感谢.

Bil*_*win 19

看起来你PATH在Windows命令shell 中遇到了麻烦.这与Zend Framework无关.PATH在shell环境中理解这个概念是许多程序员必须克服的障碍,但是一旦你得到它,你就可以用它来提高你的工作效率.

您始终可以使用该程序的绝对路径从命令shell运行程序.例如:

C:\> c:\wamp\bin\php\php.exe
Run Code Online (Sandbox Code Playgroud)

您还可以使用相对路径运行命令.也就是说,您输入从当前工作目录到要运行的程序的位置的路径.

C:\> cd c:\wamp
C:\> bin\php\php.exe
Run Code Online (Sandbox Code Playgroud)

但是,如果在命令shell中运行命令而未命名可执行文件的完整路径,则shell会尝试在PATH环境变量中列出的某个目录中查找程序可执行文件.也就是说,路径是一个字符串,其目录名称以分号分隔.要运行可执行文件,shell会按顺序尝试该列表中的每个目录,就像您一样

C:\> type %PATH%
C:\WINDOWS\;C:\WINDOWS\SYSTEM32
C:\> php.exe
...error that it cannot find php.exe...
Run Code Online (Sandbox Code Playgroud)

特殊情况:php.exe如果您当前的工作目录恰好是该程序可执行文件的位置,则运行也有效.但这只是使用相对路径的一个示例,使用零目录级别的路径.

第二个问题是你正在运行的zf.bat是一个脚本,php.exe而脚本在没有指定路径的情况下又会调用.它假定您已经添加的位置,php.exe你的PATH环境变量.

C:\> SET PATH=%PATH%;C:\wamp\bin\php
C:\> php.exe -v
PHP 5.3.1 (cli) (built: Nov 29 2009 13:59:20) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
Run Code Online (Sandbox Code Playgroud)

zf.bat脚本本身也需要被发现.您可以通过添加它所在的目录来完成此操作PATH.假设你安装了Zend Framework C:\zf,例如:

C:\> type %PATH%
C:\WINDOWS\;C:\WINDOWS\SYSTEM32;C:\wamp\bin\php
C:\> zf.bat
...error that it cannot find zf.bat...
C:\> SET PATH=%PATH%;C:\zf\bin
C:\> zf.bat show version
Zend Framework Version: 1.10.0dev
Run Code Online (Sandbox Code Playgroud)

我也建议您安装Zend框架之外htdocs目录.在您的下面只需要一个PHP文件htdocs:这是Zend Framework用于实例化Front Controller并分派请求的单个引导程序文件.

当您使用zf.bat为您生成框架应用程序时,它会在该目录中创建一个public带有PHP脚本的index.php目录.此index.php文件是您需要在htdocs目录中的文件.您还需要CSS,Javascript和图像等资源htdocs.您的应用程序代码的其余部分以及整个Zend Framework本身应该您的外部htdocs.特别是存储敏感数据的任何配置文件,例如数据库密码等.

您可以编辑该index.php文件.它可以定义一个PHP常量APPLICATION_PATH,它是应用程序代码的其余部分的位置.

<?php

defined("APPLICATION_PATH")
    || define("APPLICATION_PATH", realpath(dirname(__FILE__) . "/../application"
));
Run Code Online (Sandbox Code Playgroud)

该默认定义APPLICATION_PATH假定您htdocs是该zf.bat工具生成的其余应用程序代码的姐妹目录.您当然可以将应用程序代码放在其他任何地方,但是您必须更改上面的代码以便index.php脚本找到它.

另外,index.php脚本可以添加库代码PHP的位置INCLUDE_PATH.如果您需要查找Zend Framework库,或者在应用程序中使用其他第三方PHP代码,这将非常有用.假设您安装了Zend Framework C:\zf,您应该将其library子目录添加到PHP中INCLUDE_PATH.

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    "C:/zf/library",
    realpath(APPLICATION_PATH . "/../library"),
    get_include_path()
)));
Run Code Online (Sandbox Code Playgroud)

zf.bat脚本生成的代码模板尝试对代码所在的位置进行合理的默认猜测,但您的环境是您自己的环境,并且可以轻松编辑这些脚本以指定安装代码和库的真实位置.