Zend工具包括路径

时间:2010-01-18 20:07:47

标签: php unix zend-framework zend-tool

是否可以在不访问include_path direcotory的情况下安装和使用ZF(+其控制台工具)?我已经尝试将... Zend / library direcotry添加到include_path但没有成功。

我是这样做的:

php -r 'set_include_path(get_include_path() . PATH_SEPARATOR . "/var/www/.../Zend/library")';

var_dump上面的函数结果之后,它返回了旧的include_path,这应该意味着成功。但是下一次调用get_include_path()也会返回路径。

我也试过设置环境变量:

ZF_INCLUDE_PATH_PREPEND="/var/www/.../Zend/library"

在旧的include_path目录中有我们的公司框架,所以我不能(即使我不能)在那里复制ZF库。

我认为一个合适的框架不应该像include_path那样依赖任何全局PHP设置。我认为应该可以在ZF内部配置文件中的某处设置包含路径。

修改
我将set_include_path('/var/www/.../Zend/library')添加到zf.php文件中,该工具停止抛出'错误的include_path'错误。实际上,它可以打印任何输出。执行命令zf create project test时,它什么都不做。没有创建〜/ .zf文件夹。

2 个答案:

答案 0 :(得分:4)

如果您无法在某些“全局”包含路径中复制zf库,例如/usr/share/php/,您仍然可以将其复制到项目所在的位置,然后从那里启动zf工具。文件夹结构如:

/var/www/zf_tool
                `/bin/
                      `zf.sh
                      `zf.php
                `/library
                      `/Zend

Zend文件夹复制到库下,将zf.shzf.php脚本复制到bin下,并将它们设置为可执行chmod a+x zf.sh zf.php(如果它们尚未存在) 。 接下来,如果您运行/var/www/project/bin/zf.sh,它将在include_path中查找zf文件,但如果它不在那里,它将上升到一个文件夹并进入library文件夹。只有在那里找不到zf库时,它才会因错误而死亡。最后,创建一个新的zf项目很简单:

$ pwd
/var/www/zf_tool/bin
$ ./zf.sh create project /var/www/test_project

就是这样。 HTH:)

答案 1 :(得分:1)

使用set / get include_path函数只会在“请求”的生命周期内设置它,所以一旦命令/ web请求完成,它就会恢复正常。至于为本地副本设置包含路径,您可以在尝试的环境变量中或在框中的~/.zf文件夹中执行此操作。那里有配置,有一个设置cor包括路径。

除此之外,您还可以将php -r ...中的内容添加到您直接执行的shell脚本中,尽管这不是推荐的方法。