[請益] 功能開關設計

看板PHP作者 (ChaN)時間9年前 (2014/11/18 14:36), 編輯推噓4(4072)
留言76則, 5人參與, 最新討論串1/1
想請教一下各位會怎麼規劃自己的後台功能分開成為模組 在整包要給客戶的情況下加入以及抽離,假設今天基本的固定功能如下 會員系統 商品系統 購物車系統 新聞系統 報表系統 FAQ 聯絡我們 前台就不用講了,因為基本上都要套用美術的樣板做手動的修訂 因為要整包給別人,所以也不會是在 database 上選擇開關以及判斷 目前我想到的是將每個功能依照目錄置放,並且每個資料夾都有自己的 config 登入後 menu 會去掃所有的目錄抓出 config 後吐出對應連結 又或者是資料夾放入後直接寫一個 xml 放在跟目錄做連結 不管怎樣都不是很 module 的感覺,想請益各位會怎麼做 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.219.144.228 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1416292596.A.E5D.html

11/18 14:57, , 1F
去看看JOOMLA或是WORDPRESS XOOP之類的東西怎麼做,基本上
11/18 14:57, 1F

11/18 14:57, , 2F
就是你說的那樣
11/18 14:57, 2F

11/18 14:58, , 3F
還有,你是寫出核心把模組外包給別人,或是把整個核心叫別
11/18 14:58, 3F

11/18 14:58, , 4F
人寫?
11/18 14:58, 4F

11/18 15:07, , 5F
改用一個比較好的Framework來做你的網站
11/18 15:07, 5F

11/18 15:08, , 6F
不想帶framework 自己用python or ruby 寫工具,自己gen資料
11/18 15:08, 6F

11/18 15:10, , 7F
不然你這樣自幹好像沒有比較好
11/18 15:10, 7F

11/18 15:12, , 8F
接案久了,後台內容都大同小異,不想在用複製修改
11/18 15:12, 8F

11/18 15:13, , 9F
想嘗試抽離加入的方式弄新案子
11/18 15:13, 9F

11/18 15:16, , 10F
那我想你應該花個時間學點別得framework或許會有點靈感
11/18 15:16, 10F

11/18 15:16, , 11F
畢竟我沒你的source code 很難給你正確明確的建議
11/18 15:16, 11F

11/18 15:18, , 12F
有些知名的Framework玩一玩,可以學到不同的設計邏輯跟模式
11/18 15:18, 12F

11/18 15:19, , 13F
你可以考慮玩一下 Rails
11/18 15:19, 13F

11/18 15:28, , 14F
我 CI 跟 Laravel 很熟啊 0.0
11/18 15:28, 14F

11/18 15:29, , 15F
但我應付的一些客戶常常會有 server 上的限制
11/18 15:29, 15F

11/18 15:29, , 16F
O.O你本文沒寫你用啥framework啊
11/18 15:29, 16F

11/18 15:29, , 17F
所以還是會用自己的 code 來接一些小案子
11/18 15:29, 17F

11/18 15:30, , 18F
而且我覺得有時候不要只接觸自己領域的framework
11/18 15:30, 18F

11/18 15:30, , 19F
這是我自己的感觸辣
11/18 15:30, 19F

11/18 15:30, , 20F
有很多方式可以讓你啟發出更多玩法
11/18 15:30, 20F

11/18 15:30, , 21F

11/18 15:30, , 22F
我倒是客戶沒啥server限制就是了,都是以穩定為要求
11/18 15:30, 22F

11/18 15:31, , 23F
我客戶都小客戶,我也沒機器,都是去租虛擬空間
11/18 15:31, 23F

11/18 15:31, , 24F
有時候東西沒這麼好談
11/18 15:31, 24F

11/18 15:32, , 25F
有啊,我寫過 ASP 跟 C# 一陣子,前陣子也有玩一下 Rails
11/18 15:32, 25F

11/18 15:32, , 26F
但我還是愛 PHP
11/18 15:32, 26F

11/18 15:32, , 27F
XD
11/18 15:32, 27F

11/18 15:33, , 28F
最近可能會試一下 python
11/18 15:33, 28F

11/18 15:33, , 29F
C# .NET 抱歉
11/18 15:33, 29F

11/18 15:34, , 30F
C#我是走存應用程式開發,asp好久好久了
11/18 15:34, 30F

11/18 15:34, , 31F
我剛這樣看我覺得你會有這種困擾 我蠻能理解的
11/18 15:34, 31F

11/18 15:34, , 32F
對啊,是我程式的入門,你要我現在寫也忘得差不多了吧 哈
11/18 15:34, 32F

11/18 15:38, , 33F
如果不帶framework,我是覺得可以把
11/18 15:38, 33F

11/18 15:39, , 34F
你的Controller跟設定檔的部分先用資料夾隔開來
11/18 15:39, 34F

11/18 15:40, , 35F
然後像是第三方寫的class跟你自己的class都歸類另外的資料夾
11/18 15:40, 35F

11/18 15:41, , 36F
像後台介面的目錄只要保留controller跟initialize檔案
11/18 15:41, 36F

11/18 15:41, , 37F
剩下物件、設定都歸類在其他資料夾
11/18 15:41, 37F

11/18 15:42, , 38F
你畫面用到的view都另外獨立一個資料夾
11/18 15:42, 38F

11/18 15:43, , 39F
總之先把你的資料夾跟php改用一個比較統一的歸類方式
11/18 15:43, 39F

11/18 15:44, , 40F
然後整理好之後,再把你的模組功能分別拆出來
11/18 15:44, 40F

11/18 15:44, , 41F
例如一個基本的管理介面,我們命名個basic-panel
11/18 15:44, 41F

11/18 15:45, , 42F
新聞就叫news什麼都好 把每個程式模組拆好 個別放在資料夾
11/18 15:45, 42F

11/18 15:47, , 43F
我講的資料夾不是網站目錄,而是一個專門放你程式碼片段
11/18 15:47, 43F

11/18 15:47, , 44F
的資料夾位置
11/18 15:47, 44F

11/18 15:48, , 45F
然後你案子進來,拿到前端的網站稿子,就把basic-panel
11/18 15:48, 45F

11/18 15:48, , 46F
複製進網站的資料夾位置,
11/18 15:48, 46F

11/18 15:49, , 47F
至於sql schema匯入什麼的,你就按照你最簡便的方式處理
11/18 15:49, 47F

11/18 15:50, , 48F
然後這個網站有news有產品目錄什麼的,就把程式直接複製
11/18 15:50, 48F

11/18 15:50, , 49F
basic-panel資料夾,而網站前端用的controller你也可以順便
11/18 15:50, 49F

11/18 15:51, , 50F
複製過去,主要概念是把你常用的程式讓他可以獨立出來
11/18 15:51, 50F

11/18 15:52, , 51F
然後把它歸納成一個個的程式碼片段或檔案,
11/18 15:52, 51F

11/18 15:52, , 52F
要用的時候再直接複製過去就好
11/18 15:52, 52F

11/18 15:53, , 53F
至於選單或設定檔案,就按照你自己想的方式做
11/18 15:53, 53F

11/18 15:53, , 54F
應該是不會太過麻煩
11/18 15:53, 54F

11/18 15:56, , 55F
像一些常用的東西,如果不走全自動化
11/18 15:56, 55F

11/18 15:57, , 56F
這個方式也沒有占用很多時間
11/18 15:57, 56F

11/18 15:57, , 57F
3小時全部接完或半天解決
11/18 15:57, 57F

11/18 15:58, , 58F
至於核心的物件運作、功能測試可以另外寫腳本
11/18 15:58, 58F

11/18 16:02, , 59F
另外之前接觸一間外包公司的作法
11/18 16:02, 59F

11/18 16:02, , 60F
他是整個全部模組牽進去,設定完後網站就OK了
11/18 16:02, 60F

11/18 16:03, , 61F
至於其他被disabled的功能,他就用程式自動砍掉
11/18 16:03, 61F

11/18 16:03, , 62F
而程式的資料夾配置跟上述差不多
11/18 16:03, 62F

11/18 16:07, , 63F
研究一下,感謝熱心回答
11/18 16:07, 63F

11/18 16:07, , 64F
不會
11/18 16:07, 64F

11/18 16:08, , 65F
然後3小時的全部接完是指網站直接可以交案的狀況
11/18 16:08, 65F

11/18 16:08, , 66F
**件
11/18 16:08, 66F

11/18 17:14, , 67F
目前作法跟上面一樣,所以有時要作品集都會腦袋一下轉不過
11/18 17:14, 67F

11/18 17:14, , 68F
來;大專案簽NDA不可能給你看,小專案你拿樣張馬上套給你
11/18 17:14, 68F

11/18 17:16, , 69F
基本上功能都是類似的修改,頂多ajax+node.js的差異
11/18 17:16, 69F

11/18 17:18, , 70F
所以看使用技術的習慣,個人習慣用資料庫所以用DB管理
11/18 17:18, 70F

11/20 20:41, , 71F
不用一定要python吧 php js就可以做很多事情
11/20 20:41, 71F

11/20 20:42, , 72F
我覺得你這個... 應該用簡單的mySQL+PHP就能全部完成
11/20 20:42, 72F

11/20 20:43, , 73F
framework不就是 把php物件導向 弄得很整齊好用那樣嗎
11/20 20:43, 73F

11/20 20:44, , 74F
codeigniter之類咚咚 不就在搞這種東西嗎
11/20 20:44, 74F

11/20 20:50, , 75F
alog大大的方法不錯 筆記 反正我覺得也許就是用最熟悉
11/20 20:50, 75F

11/20 20:51, , 76F
的語言 自己建一個自專屬平台 花點時間整理罷了
11/20 20:51, 76F
文章代碼(AID): #1KQkZqvT (PHP)