作者HuangJC (吹笛牧童)
看板PHP
标题Re: [心得] 学了一阵子 PHP 之後
时间Thu Jul 24 20:51:26 2008
※ 引述《ronmi (Love.みけ)》之铭言:
: 你的同事想必对C的十分的熟悉吧
: 选择自已习惯的东西去做事,是人之常情
: 弃php选perl则是办公室现实上的方便
: 如此而已,不用想那麽多:)
我接受这个讲法
不过大量使用 perl 的同事是同时熟 perl & php 的 :P
这使我比较会参考他的想法
大家都在比弹性的
比如,他其实很熟 linux,很爱命令列
但我们只熟 win os,他一样找了一堆 win tool 给我们用
所以比如 putty,winscp,我们都用了
一时心血来潮 google 'perl php'
找到一堆文章
原来 php 是'大量采用 C & Perl 语法'
如果是这样,那认为它是进化并无不可,就用 PHP 吧~
就好像我其实把 C 当 Pascal 用
两者都有学之下,我看到两者的特性在混合了
#define,前置处理器,造成 C 强大的可携性
但 Turbo Pascal 也有了它
既然两者那麽相近,那就不用去区分,只是手上拿到什麽,顺手就用
写 BCB 时,它核心函式库是 delphi,也是种 Pascal
那时我都很努力的跨两种语言 :)
有一段话,"PHP 没有命名空间,必需努力避免模块的名称冲突"
这就是语言特性的考量了,和所谓'目前没有对应函式库'的层次不一样
毕竟函式库可以再写出来
虽然命名时可以用模组名等等前饰,但可读性就渐渐消失
double dbAdd(double a,double b);
float fAdd(float a,float b);
int iAdd(int a,int b);
以上是不能凭型别多载前的 C,可以多载的 C++ 可以表达成函式名全都是 ADD
这就是语言工具的根本差异,而不是函式库支援与否的差异
我想所谓'命名空间',应该是指 namespace 吧?
如果没有这个,所有函式生而平等
那真的要很努力避
不过 class 事实上就是一种 namespace
所以我想这个缺点大概是指没支援 class 之前的 PHP,现在已被改进了
再来是我在合并 Cake & PhpBB 两个专案时的问题
全域变数用太多,如果在同一个 session 里就会冲全域变数
这也类似於'模块内的名称冲突'
这应该真的是个问题,当我引入两个专案时不能当黑盒子用
必需真的爬进去了解内容
(注)
惨的是我们 PM 是理工出身,也写过 PhpBB
当时我东西改不出来,他就一句'那不是改 page_header.php 吗?'
...对
那意思是我做不出来在混什麽
只好一加班就到早上五点了
想想我们之间有点不同
因为我写程式,是掌握 source code,公司机密
回家就不能写 (无法和 CVS 互动)
但他的商业决策是回家可以做的
所以我半夜两点收到他的需求,感觉他好认真,只好拼了
但可能他是在家,我是在公司呀 *_*
(还没洗澡,也没宵夜)
有些地方他需被体谅,有些地方我需被体谅
所以我们一直在互动,打造公司内的制度..
注:
本来我们就打算把 PhpBB 当黑盒子用,修改极少而马上上线
所以 user account 的做法,一个是完全了解後,PhpBB 去参考 Cake 端的登入
共用 DB
但我们想出另一个方法,就是 Cake 端一注册,就同步去注册 PhpBB 端
这样就可以有两个独立的模组,虽然浪费 DB 但可以用更短的时间产出成品
不过事实上,我现在对 PhpBB 愈来愈了解,已经几乎是由 Cake 端取出帐号来用了 ~^_^~
不然有一个 BUG 很难解:
Cake 端登入,但 PhpBB 端在关闭 IE 後就自动登出,形成两边不同步
这问题发生时我就渐渐把两边的帐号 DB 给融合了 :P
现在运作得还不错 XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.219.65.16
※ 编辑: HuangJC 来自: 61.219.65.16 (07/24 20:53)
1F:推 aquarianboy :听说,php5.3就会把namespace弄进来了 :) 07/24 22:13