Re: [心得] 學了一陣子 PHP 之後
※ 引述《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)
推
07/24 22:13, , 1F
07/24 22:13, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章