「白熊原创」PHP开源产品二次开发 iWebshop(一)

二次开发

二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能,一般来说都不会改变原有系统的内核。一般的来说,一些大公司如IBM开发了一个大型的软件系统平台,根据不同的客户的需要,一些其它的中小公司为客户根据需求在该平台上进行第二次有针对性的开发。是否提供相应的接口,有的软件公司只提供软件,但也有小公司连代码一起出售,如是后者,就更方便进行二次开发。比如售票系统,车站里面弄好了,提供几个储存过程给银行,银行就可以代理售票了,这也是一种,还有一种如我们利用delphi,C#等操作word等。

开源系统

开源,(Open Source)全称为开放源代码。市场上层出不穷,很多人可能认为最明显的特点是免费,但实际上并不是这样的,最大的特点应该是开放,也就是任何人都可以得到的,加以修改学习,甚至重新发放,当然是在范围之内。[1-3]

对象

开源系统其实面向的用户有两个群体,一是,他们最关心,能不能进行二次开发利用;二是普通终端用户,他们只关心功能够不够强。开源系统的重点应该是在"开放",是接纳、包容和发展,求同存异,互利共赢,才是开源的本质。[4-5] [3] [1-2]

版权

用户在使用开源产品时,不但需表明产品来自开源和注明编写者姓名,而且还应把所修改产品返回给,否则所修改产品就可视为侵权。现在,国内的盗版很泛滥,即便的软件,都会被肆意盗版甚至篡改版权,就更别说了,篡改版权就是个查找替换的简单操作而已。版权意识的淡漠才是国内开源发展的最大障碍。

电子商务模式

电子商务模式是指企业运用互联网开展经营取得营业收入的基本方式,也就是指在网络环境中基于一定技术基础的商务运作方式和盈利模式。目前,常见的电子商务模式主要有B2B、B2C、C2B、C2C、O2O等几种

1. B2B模式

B2B (Business to Business), 是指商家与商家建立的商业关系。 例如我们在麦当劳中只能够买到可口可乐是因为麦当劳与可口可乐中的商业伙伴的关系。 商家们建立商业伙伴的关系是希望通过大家所提供的东西来形成一个互补的发展机会,大家的生意都可以有利润。例子:阿里巴巴、慧聪。

B2B模式是电子商务中历史最长、发展最完善的商业模式,能迅速的带来利润和回报。它的利润来源于相对低廉的信息成本带来的各种费用的下降,以及供应链和 价值链整合的好处。它的贸易金额是消费者直接购买的10倍。企业间的电子商务成为电子商务的重头。它的应用有通过EDI网络连接会员的行业组织,基于业务 链的跨行业交易集成组织,网上及时采购和供应营运商。

B2B电子商务模式主要有降低采购成本、降低库存成本、节省周转时间、扩大市场机会等优势,目前常见的B2B运营模式主要有垂直B2B(上游和下游,可以形成销货关系)、水平B2B(将行业中相近的交易过程集中)、自建B2B(行业龙头运用自身优势串联整条产业链)、关联行业的B2B(整合综合B2B模式和垂直B2B模式的跨行业EC平台)。B2B的主要盈利模式是:会员收费、广告费用、竞价排名费用、增值服务费、线下服务费、商务合作推广、安询盘付费等。

B2C模式

B2C (Business to Consumer), 就是我们经常看到的供应商直接把商品卖给用户,即"商对客"模式,也就是通常说的商业零售,直接面向消费者销售产品和服务。例如你去麦当劳吃东西就是B2C,因为你只是一个客户。例子:当当、卓越、优凯特。

B2C网站类型主要有综合商城(产品丰富的传统商城EC化)、百货商店(自有库存,销售商品)、垂直商店(满足某种特定的需求)、复合品牌店(传统品牌商的复合)、服务型网店(无形商品的交易)、导购引擎型(趣味购物、便利购物)、在线商品定制型(个性化服务、个性化需求)等。B2C的盈利模式主要是服务费、会员费、销售费、推广费等。

C2B模式

C2B (Customer to Business),比较本土的说法是要约,由客户发布自己要些什么东西,要求的价格是什么,然后由商家来决定是否接受客户的要约。假如商家接受客户 的要约,那么交易成功;假如商家不接受客户的要约,那么就是交易失败。C2B模式的核心,是通过聚合分散分布但数量庞大的用户形成一个强大的采购集团,以此来改变B2C模式中用户一对一出价的弱势地位,使之享受到以大批发商的价格买单件商品的利益。例子:U-deals、当家物业联盟。

C2B模式的一般运行机制是需求动议的发起、消费者群体自觉聚集、消费者群体内部审议、制定出明确的需求计划、选择合适的核心商家或者企业群体、展开集体议价谈判、进行联合购买、消费者群体对结果进行分配、消费者群体对于本次交易结果的评价、消费者群体解散或者对抗。

C2C模式

C2C (Customer to Consumer) ,客户之间自己把东西放上网去卖,是个人与个人之间的电子商务。例子:淘宝、拍拍、易趣。C2C的主要盈利模式是会员费、交易提成费、广告费用、排名竞价费用、支付环节费用等。C2C的一般运作流程是:卖方将欲卖的货品登记在社群服务器上、买方透过入口网页服务器得到二手货资料、买方透过检查卖方的信用度后选择欲购买的二手货、透过管理交易的平台分别完成资料记录、买方与卖方进行收付款交易、透过网站的物流运送机制将货品送到买方。

O2O模式

O2O即Online To Offline,也即将线下商务的机会与互联网结合在了一起,让互联网成为线下交易的前台。这样线下服务就可以用线上来揽客,消费者可以用线上来筛选服务,还有成交可以在线结算,很快达到规模。该模式最重要的特点是:推广效果可查,每笔交易可跟踪。O2O模式的优势有:充分挖掘线下资源、消费行为更加易于统计、服务方便、优势集中、促使电子商务朝多元化方向发展。

开源协议

1. LGPL许可证

LGPL许可证,也是自由软件联盟GNU开源软件许可证的一种,大部分的 ,包括一些函数库,是受到原来的 GPL许可证保护的。而LGPL许可证,适用于特殊设计的函数库,且与原来的通用公共许可证有很大的不同,给予了被许可人较为宽松的权利,所以叫"较宽松公共许可证"。在特定的函数库中使用它,以准许非自由的程序可以与这些函数库连结。

MPL

MPL是The Mozilla Public License的简写,是1998年初Netscape的 Mozilla小组为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因就是,Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益。同著名的GPL许可证和BSD许可证相比,MPL在许多权利与义务的约定方面与它们相同(因为都是符合OSIA认定的开源软件许可证)。

BSD

BSD许可证原先是用在加州大学柏克利分校发表的各个4.4BSD/4.4BSD-Lite版本上面(BSD是Berkly Software Distribution的简写)的,后来也就逐渐沿用下来。1979年加州大学伯克利分校发布了BSD Unix,被称为开放源代码的先驱,BSD许可证就是随着BSD Unix发展起来的。BSD许可证被和BSD操作系统等开源软件所采纳。

相较于许可证和MPL许可证的严格性,BSD许可证就宽松许多了,一样是只需要附上许可证的原文,不过比较有趣的是,它还要求所有进一步开发者将自己的版权资料放上去,所以拿到以BSD许可证发行的软件可能会遇到一个小状况,就是这些版权资料许可证占的空间比程序还大。

AL2.0

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

· 需要给代码的用户一份Apache Licence

· 如果你修改了代码,需要在被修改的文件中说明。

· 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

· 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

GPL

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为的发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的了。

安装iWebShop

执行install目录下的index.php文件开始安装

「白熊原创」PHP开源产品二次开发 iWebshop(一)

安装过程——第1步(许可协议)

输入域名

「白熊原创」PHP开源产品二次开发 iWebshop(一)

输入上述域名,回车后,进入安装页面

「白熊原创」PHP开源产品二次开发 iWebshop(一)

安装过程——第2步(系统检测)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

安装过程——第3步(系统配置)

「白熊原创」PHP开源产品二次开发 iWebshop(一)「白熊原创」PHP开源产品二次开发 iWebshop(一)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

安装流程——第4步(安装完成)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

访问首页

「白熊原创」PHP开源产品二次开发 iWebshop(一)

安装演示测试数据图片包

将"演示测试数据图片包"文件夹下的所有文件复制到"upload"文件夹下。

「白熊原创」PHP开源产品二次开发 iWebshop(一)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

访问商品详情页

「白熊原创」PHP开源产品二次开发 iWebshop(一)

可能出现的问题:

如果访问首页时出现无css样式问题,请删除/views目录下的.htaccess文件。

· 问题:

「白熊原创」PHP开源产品二次开发 iWebshop(一)

· 解决方法

「白熊原创」PHP开源产品二次开发 iWebshop(一)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

· 再次访问,问题解决

「白熊原创」PHP开源产品二次开发 iWebshop(一)

目录结构

「白熊原创」PHP开源产品二次开发 iWebshop(一)

|--backup 数据备份目录.

|--classes 扩展类(自定义)文件目录.

|--config 配制文件目录.

|--controllers 控制器目录

|--docs 软件版本目录

|--install 软件安装目录

|--lib 内核目录

|--plugins 插件目录

|--runtime 编译运行目录

|--upload 上传目录

|--views 视图

|--index.php 统一入口文件

|--.htaccess 伪静态配置文件

对于用户二次开发,重点了解的几个目录是controllers、views、classes 及config 目录。

controllers 目录是二次开发必须要熟悉的目录,这里是存放所有控制器类,用户开发自己的控制类一定要继承IController 类。

配置文件

config:配置文件目录,包括config , config_default, site_config这三个文件。

· config

主要包含日志目录、数据库连接信息、系统模板、时区、备份目录等等。

· config_default

config的默认配置信息,用于恢复config至默认状态。

· site_config

后台网站设置的信息保存,支持扩展属性。

1. 主配置文件

「白熊原创」PHP开源产品二次开发 iWebshop(一)「白熊原创」PHP开源产品二次开发 iWebshop(一)

站点配置文件

「白熊原创」PHP开源产品二次开发 iWebshop(一)

iWebShop处理流程(运行机制)

iWebShop 是建立的iWebCore 内核的基础之上开发出来的,是一款现代MVC 模式的产品,处理流程可通过下述两幅图理解:

「白熊原创」PHP开源产品二次开发 iWebshop(一)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

1. 请求到达统一入口文件,系统先做应用初始化的动作,此时会加载网站配置文件,初始化iWebCore的一些核心类;

2. 读取用户的请求,之后URLManager会对URL进行分析,找到指定控制器(controller)中的一个Action,执行其中代码;

3. 控制器通过调用Model(模型),执行完成之后跳转至视图,由视图完成数据渲染;

4. 在视图的渲染过程中会调用Layout、标签等。

iWebShop不仅支持Web运行方式,还支持php-cli命令支行方式。

控制器

PHP框架都是基于MVC架构的(yii,tp,ci,laravel),学习这些构架都可以先从控制器入手,先学习控制器、视图、模型。

1. url解析

下面以访问地址为例,进行解析。

Index.php是统一入口文件

Controller=site&action=products表示请求site控制器下的products方法

Id=1是传递的参数,由products方法接收

· Site控制器

「白熊原创」PHP开源产品二次开发 iWebshop(一)

· Site控制器下的products方法

「白熊原创」PHP开源产品二次开发 iWebshop(一)

· 使用get方式接收参数

「白熊原创」PHP开源产品二次开发 iWebshop(一)

· 过滤前台特殊字符,防止SQL注入

「白熊原创」PHP开源产品二次开发 iWebshop(一)

· 访问结果

「白熊原创」PHP开源产品二次开发 iWebshop(一)

控制器规则

· 控制器文件放在根目录下的controller文件下;

· 控制器文件名小写;

· 控制器必须继承IController类,首字母大写;

· 类名和文件名一致;

· 每个控制器都有一个init方法,在对象初始化时执行。

「白熊原创」PHP开源产品二次开发 iWebshop(一)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

控制器实例

1) 在controller目录中创建test.php文件(控制器文件)

「白熊原创」PHP开源产品二次开发 iWebshop(一)

2) 在Test控制器中编写方法index

展开阅读全文

页面更新:2024-04-18

标签:白熊   产品   视图   控制器   群体   许可证   消费者   模式   商家   代码   客户   电子商务   文件   目录   用户   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top