作者chan15 (ChaN)
看板PHP
标题[请益] 功能开关设计
时间Tue Nov 18 14:36:33 2014
想请教一下各位会怎麽规划自己的後台功能分开成为模组
在整包要给客户的情况下加入以及抽离,假设今天基本的固定功能如下
会员系统
商品系统
购物车系统
新闻系统
报表系统
FAQ
联络我们
前台就不用讲了,因为基本上都要套用美术的样板做手动的修订
因为要整包给别人,所以也不会是在 database 上选择开关以及判断
目前我想到的是将每个功能依照目录置放,并且每个资料夹都有自己的 config
登入後 menu 会去扫所有的目录抓出 config 後吐出对应连结
又或者是资料夹放入後直接写一个 xml 放在跟目录做连结
不管怎样都不是很 module 的感觉,想请益各位会怎麽做
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.219.144.228
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1416292596.A.E5D.html
1F:推 LaPass: 去看看JOOMLA或是WORDPRESS XOOP之类的东西怎麽做,基本上 11/18 14:57
2F:→ LaPass: 就是你说的那样 11/18 14:57
3F:→ LaPass: 还有,你是写出核心把模组外包给别人,或是把整个核心叫别 11/18 14:58
4F:→ LaPass: 人写? 11/18 14:58
5F:→ alog: 改用一个比较好的Framework来做你的网站 11/18 15:07
6F:→ alog: 不想带framework 自己用python or ruby 写工具,自己gen资料 11/18 15:08
7F:→ alog: 不然你这样自干好像没有比较好 11/18 15:10
8F:→ chan15: 接案久了,後台内容都大同小异,不想在用复制修改 11/18 15:12
9F:→ chan15: 想尝试抽离加入的方式弄新案子 11/18 15:13
10F:→ alog: 那我想你应该花个时间学点别得framework或许会有点灵感 11/18 15:16
11F:→ alog: 毕竟我没你的source code 很难给你正确明确的建议 11/18 15:16
12F:→ alog: 有些知名的Framework玩一玩,可以学到不同的设计逻辑跟模式 11/18 15:18
13F:→ alog: 你可以考虑玩一下 Rails 11/18 15:19
14F:→ chan15: 我 CI 跟 Laravel 很熟啊 0.0 11/18 15:28
15F:→ chan15: 但我应付的一些客户常常会有 server 上的限制 11/18 15:29
16F:→ alog: O.O你本文没写你用啥framework啊 11/18 15:29
17F:→ chan15: 所以还是会用自己的 code 来接一些小案子 11/18 15:29
18F:→ alog: 而且我觉得有时候不要只接触自己领域的framework 11/18 15:30
19F:→ alog: 这是我自己的感触辣 11/18 15:30
20F:→ alog: 有很多方式可以让你启发出更多玩法 11/18 15:30
22F:→ alog: 我倒是客户没啥server限制就是了,都是以稳定为要求 11/18 15:30
23F:→ chan15: 我客户都小客户,我也没机器,都是去租虚拟空间 11/18 15:31
24F:→ chan15: 有时候东西没这麽好谈 11/18 15:31
25F:→ chan15: 有啊,我写过 ASP 跟 C# 一阵子,前阵子也有玩一下 Rails 11/18 15:32
26F:→ chan15: 但我还是爱 PHP 11/18 15:32
27F:→ alog: XD 11/18 15:32
28F:→ chan15: 最近可能会试一下 python 11/18 15:33
29F:→ chan15: C# .NET 抱歉 11/18 15:33
30F:→ alog: C#我是走存应用程式开发,asp好久好久了 11/18 15:34
31F:→ alog: 我刚这样看我觉得你会有这种困扰 我蛮能理解的 11/18 15:34
32F:→ chan15: 对啊,是我程式的入门,你要我现在写也忘得差不多了吧 哈 11/18 15:34
33F:→ alog: 如果不带framework,我是觉得可以把 11/18 15:38
34F:→ alog: 你的Controller跟设定档的部分先用资料夹隔开来 11/18 15:39
35F:→ alog: 然後像是第三方写的class跟你自己的class都归类另外的资料夹 11/18 15:40
36F:→ alog: 像後台介面的目录只要保留controller跟initialize档案 11/18 15:41
37F:→ alog: 剩下物件、设定都归类在其他资料夹 11/18 15:41
38F:→ alog: 你画面用到的view都另外独立一个资料夹 11/18 15:42
39F:→ alog: 总之先把你的资料夹跟php改用一个比较统一的归类方式 11/18 15:43
40F:→ alog: 然後整理好之後,再把你的模组功能分别拆出来 11/18 15:44
41F:→ alog: 例如一个基本的管理介面,我们命名个basic-panel 11/18 15:44
42F:→ alog: 新闻就叫news什麽都好 把每个程式模组拆好 个别放在资料夹 11/18 15:45
43F:推 alog: 我讲的资料夹不是网站目录,而是一个专门放你程式码片段 11/18 15:47
44F:→ alog: 的资料夹位置 11/18 15:47
45F:→ alog: 然後你案子进来,拿到前端的网站稿子,就把basic-panel 11/18 15:48
46F:→ alog: 复制进网站的资料夹位置, 11/18 15:48
47F:→ alog: 至於sql schema汇入什麽的,你就按照你最简便的方式处理 11/18 15:49
48F:→ alog: 然後这个网站有news有产品目录什麽的,就把程式直接复制 11/18 15:50
49F:→ alog: basic-panel资料夹,而网站前端用的controller你也可以顺便 11/18 15:50
50F:→ alog: 复制过去,主要概念是把你常用的程式让他可以独立出来 11/18 15:51
51F:→ alog: 然後把它归纳成一个个的程式码片段或档案, 11/18 15:52
52F:→ alog: 要用的时候再直接复制过去就好 11/18 15:52
53F:→ alog: 至於选单或设定档案,就按照你自己想的方式做 11/18 15:53
54F:→ alog: 应该是不会太过麻烦 11/18 15:53
55F:→ alog: 像一些常用的东西,如果不走全自动化 11/18 15:56
56F:→ alog: 这个方式也没有占用很多时间 11/18 15:57
57F:→ alog: 3小时全部接完或半天解决 11/18 15:57
58F:→ alog: 至於核心的物件运作、功能测试可以另外写脚本 11/18 15:58
59F:→ alog: 另外之前接触一间外包公司的作法 11/18 16:02
60F:→ alog: 他是整个全部模组牵进去,设定完後网站就OK了 11/18 16:02
61F:→ alog: 至於其他被disabled的功能,他就用程式自动砍掉 11/18 16:03
62F:→ alog: 而程式的资料夹配置跟上述差不多 11/18 16:03
63F:→ chan15: 研究一下,感谢热心回答 11/18 16:07
64F:→ alog: 不会 11/18 16:07
65F:→ alog: 然後3小时的全部接完是指网站直接可以交案的状况 11/18 16:08
66F:→ alog: **件 11/18 16:08
67F:→ noxhsu: 目前作法跟上面一样,所以有时要作品集都会脑袋一下转不过 11/18 17:14
68F:→ noxhsu: 来;大专案签NDA不可能给你看,小专案你拿样张马上套给你 11/18 17:14
69F:→ noxhsu: 基本上功能都是类似的修改,顶多ajax+node.js的差异 11/18 17:16
70F:→ noxhsu: 所以看使用技术的习惯,个人习惯用资料库所以用DB管理 11/18 17:18
71F:推 InDer5566: 不用一定要python吧 php js就可以做很多事情 11/20 20:41
72F:→ InDer5566: 我觉得你这个... 应该用简单的mySQL+PHP就能全部完成 11/20 20:42
73F:→ InDer5566: framework不就是 把php物件导向 弄得很整齐好用那样吗 11/20 20:43
74F:→ InDer5566: codeigniter之类咚咚 不就在搞这种东西吗 11/20 20:44
75F:推 InDer5566: alog大大的方法不错 笔记 反正我觉得也许就是用最熟悉 11/20 20:50
76F:→ InDer5566: 的语言 自己建一个自专属平台 花点时间整理罢了 11/20 20:51