首页 > 新闻动态 >  

新闻动态
NEWS

LotusPhp进修一:初识LotusPhp

添加时间:2013-5-3 点击量:

  接触LotusPhp是从淘宝开放平台开端的,最早是为本身的网店做一个商品添加的法度,最初是用的荡子的TaoApi,然则这个法度根蒂根基不更新了,加上淘宝开放平台老是变来变去,官方的SDK默认包含的就是LotusPhp。

  进修LotusPhp是有必然难度的,没有文档,只有一些组件的典范,感触感染更像是一些类库的凑集,而不像一个框架,缺乏一个管辖全部类库的典范,固然example里有一个通信人接洽的典范,然则没有效到所有的组件,比HelloWorld强点罢了,对于其框架的懂得和应用感触感染还是用处不太大。

     不过我还是斗劲喜好这个框架的,这个框架是最初淘宝的员工覃健祥开辟的,后来一群爱好者参加了开辟小组,总体来说在开源社区里存眷度斗劲低,斗劲冷门些。不过瑕不掩瑜,LotusPhp在我看来,是一个斗劲优良的框架,此中一些亮点如下:

  1.各个组件彼此自力,你可以自行雄厚LotusPhp的组件到本身的项目中。很多框架的组件接洽关系度斗劲高,根蒂根基上是牵一发而动全身,一般是很难对框架做批改的,你可以用,然则合适不合适你的项目请求,那就是别的事了。LotusPhp很好的避免了如许的题目,在设计的时辰就是按自力的类库来进行设计构思,最后用浇水代码Lotus.php来进行粘合,形成完全的框架。你可以自力批改某个类库来更合适本身的项目需求,也可以用一些斗劲好的类库,甚至是其他的一些框架的,比如ZF,Symfony等这些设计上也相对自力的类库直接拿来补充雄厚LotusPhp的组件。

  2.LotusPhp可以和其他php框架搭配应用,用LotusPhp的Autoloader直接加载懈弛存其他类库即可,并且还不消再费神的调用路径之类的了,不过这个不是我进修LotusPhp的目标。

  3.Db组件支撑多种数据库,支撑多半据库,支撑主从数据库,在数据库的操纵上,LotusPhp可谓是桂林一枝。今朝LotusPhp支撑MySql、SQLite、PostgreSQL这三种常用的数据库,当然你可以遵守Db组件的规范添加其他数据库的支撑。应用LotusPhp的Db组件在体系腻滑进级上会有优良的发挥解析,起码不消到了瓶颈再去换框架或者再去从头设计构架重写代码,只要进级体系构架,添加多半据库的支撑即可,批改很小。值得称道的一点就是Db组件的SqlMap,这个可以集中经管所有的Sql,便于DBA进行经管和进级,而不是不绝的在源代码中翻Sql语句,利于大公司中不合的岗亭协作。想着DBA改下Sql语句,机能就大幅提拔的感触感染必然很爽吧!

   4.优良的角色安然机制也是一大亮点,用户可以具备多种用户角色,可以按照须要进行角色组合。比如前台是通俗用户,后台是编辑,设置两个用户角色就够了。

  5.缓存支撑也发挥解析优良,今朝支撑Apc、EAccelerator、Memcache、Memcached、Xcache以及文件缓存,可以按照需求进行设备进级。

  6.Autoloader是LotusPhp最首要的一个组件,也是他的很是首要的一个长处。只要声了然Lotus组件,就可以主动加载所有缓存的类库,不消愁闷路径,不消推敲调用的题目,直接应用类库和函数即可。我有很多Php法度员的伴侣拿到我写的LotusPhp项目标代码感觉无从下手,找不到调用的路径,不知道调用的是哪个文件和类库,是不是很的啊?O(∩_∩)O哈哈

  7.进级快速,多半框架因为接洽关系性斗劲强,所以不太轻易大幅度进级。即便进级了,可能和本来的框架兼容性不好,很多老框架写的应用导致没有办法用新框架腻滑进级。LotusPhp不存在这个题目,每个组件彼此自力,只要某个组件进级了,你就可以进级,并且对象接口在构架的时辰就已经规定下来了,根蒂根基是框架内部进级,应用内调用没有任何不合,所以应用LotusPhp几天进级一次都不是神马奇怪事。

  不过LotusPhp也有很多自身的题目,是无法躲避的,首要有以下几点:

  1.没有文档和完全的典范,对于初学者极其不友爱,入门不太轻易。LotusPhp开辟组的成员貌似都斗劲忙,抑或是生成不怎么会写文档,框架出了N年了,至今没有一个杰出的文档,和斗劲完全的典范。对于不懂设计模式,没有接触过框架的法度员,进修LotusPhp会斗劲艰苦,我就是一行一行注释代码,把所有代码通读了一遍才算入的门。

  2.组件不是很完美,很多需求只能靠本身完美,比如上传组件、邮件、多说话、WebService、搜刮等还是须要本身来进行构建。我和开辟组沟经由过程,后续还是会增长诸如搜刮,付出等组件的。

  3.个别已有组件功能还不敷完美,有的不克不及满足个性化的需求。比如session组件今朝就斗劲鸡肋,临时只支撑SQLite存储和文件存储,Mysql存储session已经在构建中,不过临时还没有实现。还有Captcha组件无法实现客户端Ajax验证,因为验证码只能验证一次,验证完就失效,客户端验证了,办事器端就不克不及验证了,所以临时客户端没有办法实现验证码的验证。当然其他组件也或多或少存在一些题目,今后的文章中会有表述。

  4.RBAC今朝只能经由过程多角色来实现用户权限的组合,没有办法实现加倍错杂的权限自定义,若是要实现自定义权限,想来就得把验证内容存储到数据库中去了,在初始化组件的时辰调用验证用户权限,还有种办法,就是放弃RBAC组件,用本身的办法构建用户权限验证办法,然后在MVC中加载。

  5.每个组件都是经由过程设备文件是进行初始化并规范的,这也制约了LotusPhp在快速更新设备的体式格式上只能经由过程FTP或者更错杂的编程体式格式来实现。这就注定了LotusPhp更合适一些稳定请求高,法度进级频繁的中型法度应用。一些小应用用这个只能感触感染不太顺手。

  6.可能还是因为文档的原因,人气始终不高,在一众Php框架中感触感染斗劲冷门,斗劲非主流一些,社换始终不敷热烈。作者覃健祥今朝在一淘工作,旺旺群里一般都在线,会解答一些关于LotusPhp的题目。

  最后附上一些LotusPhp的资料


  LotusPhp 旺旺群:109954293


  LotusPhp QQ群:273709480


  LotusPhp 谷歌Code Wiki:http://code.google.com/p/lotusphp/w/list  今朝已经迁徙到Github,不过谷歌上的Wiki上很多组件的应用还是斗劲有参考价值的


  LotusPhp Github项目:https://github.com/qinjx/lotusphp


  LotusPhp 法度构架:http://www.yylog.net/lotusphp/doc/index.html 该网站站长也是 LotusPhp 开辟构成员之一


  LotusPhp 法度构架解读:http://www.yylog.net/lotusphp/api/

更多学习资料:http://www.gjprj.cn/news_jc.asp?id=6

分享到: