Php 如何在没有包含路径的虚拟主机上生成推进ORM对象?
我有一个dev服务器,上面有几个虚拟主机。 每个人都需要能够运行命令:propel gen./creole 该脚本执行一些php,对数据库进行反向工程。。。 但需要包含它执行的php才能执行此操作 php.ini中没有设置include_路径,因为它对所有虚拟主机都是全局的。 我需要每个vhost的include_路径都是唯一的 如何在命令行上执行此工作? (注意:htaccess不起作用,因为命令行不经过apache) 这个问题还有别的解决办法吗? 也许传递一个命令行参数来设置包含路径? 也许在里面放点什么吧。bashrc? :(Php 如何在没有包含路径的虚拟主机上生成推进ORM对象?,php,orm,build,propel,phing,Php,Orm,Build,Propel,Phing,我有一个dev服务器,上面有几个虚拟主机。 每个人都需要能够运行命令:propel gen./creole 该脚本执行一些php,对数据库进行反向工程。。。 但需要包含它执行的php才能执行此操作 php.ini中没有设置include_路径,因为它对所有虚拟主机都是全局的。 我需要每个vhost的include_路径都是唯一的 如何在命令行上执行此工作? (注意:htaccess不起作用,因为命令行不经过apache) 这个问题还有别的解决办法吗? 也许传递一个命令行参数来设置包含路径? 也许
另外,该脚本在我的mac上运行良好,它有一个硬编码的include路径。当从命令行运行PHP时,您可以使用
-d
开关定义配置选项,这些选项通常在PHP.ini
有关在CLI中运行PHP时可以执行哪些操作的更多信息,请查看
在您的情况下,假设您正在运行此命令,它只显示当前的include\u路径
:
$ php -r 'var_dump(get_include_path());'
默认输出如下(在我的机器上,顺便说一句):
现在,使用-d
覆盖include_path
,方法如下:
$ php -dinclude_path='.:/usr/local/lib/php:/var/my/directory/lib' -r 'var_dump(get_include_path());'
你会得到:
string(42) ".:/usr/local/lib/php:/var/my/directory/lib"
我承认,这很无聊/打字时间很长,有时你会忘记
-dblahblah
之类的东西
因此,您可以定义一个别名,有点像这样:
$ alias myphp='php -dinclude_path=".:/usr/local/lib/php:/var/my/directory/lib"'
现在,如果您使用的是myphp
命令而不是php
,则无需再指定include\u路径
:
$ myphp -r 'var_dump(get_include_path());'
string(42) ".:/usr/local/lib/php:/var/my/directory/lib"
这不会在shell会话之间持续存在…因此您可以将alias
命令放在~/.bashrc
的末尾,以便在每次登录时执行:-)
$ myphp -r 'var_dump(get_include_path());'
string(42) ".:/usr/local/lib/php:/var/my/directory/lib"