目录
1.开源协议
2.系统框架
3.系统重点
4.前台功能
5.扩展
6.文档
7.开发者
8.总结
我个人的选择建议:
期待
首页 后端开发 php教程 用户管理系统,PHP项目开发银弹?

用户管理系统,PHP项目开发银弹?

Jun 20, 2016 pm 12:28 PM

银弹 ,是针对狼人等超自然怪物的特效武器。后来也被比喻为具有极端有效性的解决方法,作为杀手锏、最强杀招、王牌等的代称。

作为一个在php开发岗位上小有几年经验的开发者,我的日常工作是从事基于TP框架的php项目开发。一直以来,我都执着于独立自主开发,包括最基本的用户管理和后台管理系统。最困扰我的东西就是权限管理、用户的登陆注册等等。每个项目的需求不一样,所以我采用的方式就是修修改改,维护自己的用户管理系统。然后应用到各种项目中。

直到有一天,我在OSC上看到一个新的开源项目——Open Center php用户管理系统。让我突然产生一种相见恨晚的感觉。

我为什么会有这种感觉呢?

首先,OC是遵循Apache2.0开源协议的,也就是和TP一样的协议。打消了我在版权方面的疑虑。

再者,它作为一款用户管理系统,提供了较为完善的用户注册流程,包括多种注册方式,如手机号注册、邮箱注册、用户名注册,同时还支持真实性验证,可见开发团队的诚意。

另外,它对用户权限管理方面所做的努力,也可见一斑,开发团队称继承自OneThink,我也曾经在项目中使用OneThink,发现OC还是有很大不同之处的,它还加入了前台权限的管理。

为了给广大tper一个参考,我特别拿OneThink和OC进行了一个比较。

1.开源协议

两者都是基于Apache2.0的,没什么好比较的。

2.系统框架

两者都是基于ThinkPHP的。不过OC基于OneThink,这一点让我很疑惑。因为从表面上,很难看出来两个系统的是同一个内核。不过研究之后,还是发现一些共同之处。OC有很浓重的OneThink基因。

前端方面,OC采用zui,算是一个比较大胆的尝试(据我所知,zui就是bootstrap的一个改进版本,学习成本比较低),OneThink比较传统,采用了bootstrap。

3.系统重点

OneThink着重于内容管理,从后台的结构也可以看出来。导航栏中可以很醒目地看到内容管理的部分,内容管理部分的功能也已经初具雏形。

OC着重于用户管理,所以后台导航完全没有内容管理的部分,比较有特色的是,导航部分把“模块”概念突出了,左侧栏位专门放置模块,同时也支持模块的安装卸载,这一点应该说是比较大的改进吧。

OC还有一个比较突出的特性,就是支持用Php构建后台管理页面,这对像我这样的,没有太多前端经验的后端开发人员来说,是最大的吸引力。通过AdminBuilder类库,可以纯php来构建管理页面。还有更牛的开发者自己改进了一套用于前台的AdminBuilder。

图一、OC后台局部截图

4.前台功能

这方面,两者均只提供了一个基础的demo,OneThink提供了一个博客形式的demo。而OC更加彻底,只提供了一个演示模块和一个演示首页。不过OC的默认风格更加小清新,可能和采用zui框架作为前端有一定关系吧。

OneThink注册登录方面,并没有提供完整的流程。在这方面,OC做得可圈可点。多种形式的注册登录、第三方登陆、同时还支持头像的裁剪、扩展字段,密码修改等功能。值得一提的是,OC还提供了一种消息机制,研究之后,发现是基于轮询技术实现的,这里,我觉得还有可改进的空间。不过基本都能满足我的需求。

图二、资料修改界面

图三、消息提醒菜单

5.扩展

说到扩展,我觉得OneThink还是做得比较赞的,OneThink有比较多的开发者贡献插件,算是一个比较大的竞争优势。而OC,因为刚出来,没有这方面的支持,不过我试着把OneThink的插件移植到OC上,发现还是比较好兼容的,毕竟父子关系摆在那里。

不过OC的官方也是比较努力的,提供了一些内置插件,比如图片水印,空间换肤等。值得一提的是,开发团队改进了一些OneThink的第三方插件之后仍然保留作者,比起某些所谓的“具有分享精神”的人高尚一点。

6.文档

文档这块,我个人感觉OC还不具备和OneThink比较的能力。首先,OC的文档不够齐全,这一点也算是OC的痛处吧。虽然开发团队提供了一个离线文档,但还是很不详细。比起OneThink还差很多。不过群里面每天都有更新进度,也算是不错的了。

7.开发者

其实这一项进行比较,对OC挺不公平的,毕竟一个年前才推出第一个版本,而OneThink已经发布有个把年头了。不过个人觉得,OC作为一款用户管理系统,还是大有可为的,毕竟不是每个开发人员都喜欢自己去开发维护一套用户管理系统的,有一个现成可以用的项目会方便很多。

8.总结

通过对两个开源项目的比较,不知道大家是不是了然了。从我个人的角度来说,不管黑猫白猫,能抓住老鼠就是好猫,看需求!

我个人的选择建议:

1.如果你是做CMS类的项目,那么首选OneThink,这个毫无疑问,毕竟OC,还没有这方面的模块扩展,而从OneThink中再整合这个部分,可谓难度不小。

2.如果你是做一些需要用户系统,并且用户交互比较多的新项目,那么选OC吧,OC的存在,无疑会让你如虎添翼,节省下大量的开发时间。

期待

通过两个开源项目的比较,很显然,OC目前尚达不到银弹的程度, 但最近我发现 OC在开源中国OSC@Git PHP类目排名是第一名, 无疑也是给了开发者一个不错的选择。

留在本文最后,容我发表一下自己对OC未来发展的期望。模块化的系统构建理念不错,如果OC的开发团队能够重视开发者,给开发者提供更多的支持,相信会有越来越多的php开发者采用OC,同时也希望用过OC的开发者能够积极分享功能扩展,这样OC才能够越走越远。

相关资料:

OneThink:项目主页   www.onethink.cn  

项目源码库: http://git.oschina.net/liu21st/onethink

OpenCenter:项目主页  www.ocenter.cn  

在线演示  demo.ocenter.cn  

项目源码库: http://git.oschina.net/yhtt2020/OpenCenter

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

解释PHP中晚期静态结合的概念。 解释PHP中晚期静态结合的概念。 Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

如何在系统重启后自动设置unixsocket的权限? 如何在系统重启后自动设置unixsocket的权限? Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

自定义/扩展框架:如何添加自定义功能。 自定义/扩展框架:如何添加自定义功能。 Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

See all articles