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
文件夹下的库,和bin
下zf.sh
和zf.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脚本中,但这不是推荐的方式。
感谢您的回答,没有〜/ .zf文件夹。 Zend_tool总是退出并出错(“为了运行zf命令,你需要确保Zend Framework在你的include_path中。”)所以我认为它无法创建它。我直接将set_include_path()添加到zf.php文件中,但它似乎不起作用。 (查看问题编辑) – 2010-01-19 08:38:17
我刚试过你的解决方案,它似乎不工作。脚本随着包含路径错误而死亡。 – 2010-02-08 15:16:17
更新:我忘了Zend目录。创建它之后。它不会因为一个错误而死去......它只是死去而没有任何事情:-( – 2010-02-08 15:21:15