Zend工具包含path

是否可以安装和使用ZF(+其控制台工具),而无需访问include_path direcotory? 我尝试添加… Zend /库direcry到include_path但没有成功。

我这样做了:

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

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

我也试着设置环境variables:

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

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

我认为一个合适的框架不应该像include_path那样依赖于全局的PHP设置。 我认为应该可以在ZF内部configuration文件中的某处设置includepath。

编辑:
我在zf.php文件中添加了set_include_path('/var/www/.../Zend/library') /…/Zend/library set_include_path('/var/www/.../Zend/library')并且该工具停止了抛出'错误的include_path'错误。 事实上,它打印任何输出。 当执行命令zf create project test它什么都不做。 〜/ .zf文件夹没有被创build。

如果不能在某些“全局”包含路径中复制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如果它们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脚本的内容,尽管这不是推荐的方法。