繁体   English   中英

Zend工具包含路径

[英]Zend tool include path

是否可以在不访问include_path目录的情况下安装和使用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文件夹。

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

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

复制库下的Zend文件夹,以及bin下的zf.shzf.php脚本,并将它们设置为可执行的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 :)

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

除此之外,您也可以将类似于php -r ...到您直接执行的shell脚本中,尽管这不是推荐的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM