Zend工具包含路径

问题描述:

是否可以安装并使用ZF(+其控制台工具)而无需访问include_path direcotory?我试着将... Zend/library direcotry添加到include_path中,但没有成功。Zend工具包含路径

我这样做的:

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

荷兰国际集团功能的结果上面,它返回旧的include_path这应该意味着成功后var_dump。但是下一次调用get_include_path()也会返回旧的路径。

我也试着设置环境变量:

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

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

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

编辑:
我加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文件夹下的库,和binzf.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 :)

+0

我刚试过你的解决方案,它似乎不工作。脚本随着包含路径错误而死亡。 – 2010-02-08 15:16:17

+0

更新:我忘了Zend目录。创建它之后。它不会因为一个错误而死去......它只是死去而没有任何事情:-( – 2010-02-08 15:21:15

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

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

+0

感谢您的回答,没有〜/ .zf文件夹。 Zend_tool总是退出并出错(“为了运行zf命令,你需要确保Zend Framework在你的include_path中。”)所以我认为它无法创建它。我直接将set_include_path()添加到zf.php文件中,但它似乎不起作用。 (查看问题编辑) – 2010-01-19 08:38:17