为何 Joomla!默认不支持自定义数据库端口?

2015-07-10 15:33:09 +08:00
 lshero
Joomla!安装的时候可以选择使用Postgresql作为Driver的时候发现居然没有填写数据库端口的选项
打开Driver的时候发现构造dsn里面果然没有定义端口



作为一款成熟的开源程序对这种偷懒的设计表示理解不能,难道是我使用的姿势有误嘛?
2179 次点击
所在节点    PHP
8 条回复
oott123
2015-07-11 11:01:02 +08:00
host=127.0.0.1:12345
不行吗?
lshero
2015-07-11 20:04:47 +08:00
@oott123 貌似用pg_connect的时候确实需要在DSN中单独指定端口
http://www.php.net/manual/zh/function.pg-connect.php
所以最后手动修改了一下构造DSN的方法
oott123
2015-07-12 11:06:23 +08:00
看了下
你可以 host="127.0.0.1 port=12345" 呀 23333
lshero
2015-07-12 11:20:53 +08:00
@oott123 是啊但是安装的UI那块只有填写Host的地方没有写端口所以需要自己去修改一下构造dsn的方法让dsn有port,现在就害怕万一到时候程序一更新然后无脑的覆盖文件了,只是好奇这些程序真心部署的时候都没有遇到非默认端口的情况嘛
oott123
2015-07-12 11:31:47 +08:00
@lshero 我的意思是,你填写的 host 可以是 "127.0.0.1 port=12345" 不就能构造出一个合理的 dsn 了么?
lshero
2015-07-12 11:39:55 +08:00
@oott123 咱讨论的不是pg_connect怎么使用而是为何joomla默认不支持其他数据库端口
你看一下 默认的 libraries\joomla\database\driver\postgresql.php 如果不做修改压根就没有port这回事
但是修改以后如果以后不注意的话一升级没准就覆盖了
oott123
2015-07-12 15:43:25 +08:00
@lshero 我看了,并且我说的也是 joomla 默认如何支持其他端口,请再仔细的看一遍我的回复:
请阅读 joomla 的这句代码: $dsn.="host={$this->options[host]}"
那么,我在安装的时候,在 host 这个表单中,填入:"127.0.0.1 port=12345"(不包括引号)
那么,$this->options["host"] 这个变量,将变为 "127.0.0.1 port=12345"
那么,最后 joomla 构造的 dsn 将会变为:"host=127.0.0.1 port=12345"
这不就达到目的了吗?
lshero
2015-07-12 15:49:47 +08:00
@oott123 好机智

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/204775

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX