设为首页 收藏本站
查看: 902|回复: 0

[经验分享] PHP框架CodeIgniter的六大优势与五大劣势

[复制链接]

尚未签到

发表于 2017-4-7 10:43:03 | 显示全部楼层 |阅读模式
  最近开始忙着名册网的开发,这个网站的前台是PHP,后台是基于JVM的Groovy。PHP做的是大部分展示层的工作,而后台的消息,数据计算,还有即将上线的很多功能,大多由Groovy实现。因为以“先运行起来”为思路,有很多的业务代码也存在于PHP这一层。在选择PHP框架的时候,由于大量业务都由Groovy实现,因此没必要动用Symfony之类的大框架,因此选择了CodeIgniter这个相对简单的MVC框架。从最初需求调研到现在已经整整一个月了,对于CodeIgniter的理解也深入了很多,下面就来介绍一下在实际应用中CodeIgniter的七大优势与五大劣势,以期抛砖引玉。
  优势一:简单。
  CodeIgniter的确是简单,因为在PHP的世界里往往以数据表作为模型,因此CodeIgniter甚至只需要编写View和Controller包里的文件,而在必须的地方再使用Model,这就是说在学习CodeIgniter的过程中,非常愉快,非常简单,只是二十分钟就可以轻松开始编写CodeIgniter的程序。
  优势二:文档。
  CodeIgniter的文档组织非常了,也许就因为作者受够了文档组织不好的框架才写的CodeIgniter并以很优雅的方式组织了文档。无论是中文文档还是英文文档,都组织得非常好,翻译质量也很高。
  优势三:Helper类。
  CodeIgniter集成了很多的Helper类,这些内置的Helper可以节省大量的开发时间。过去在编写程序的时候,在PHP项目中很难像Java下那样一个Jar包丢过来就什么都有了,而CodeIgniter内置的Helper类可以实现基础的很多东西,不需要自己再去实现。
  优势四:良好的目录结构
  由于CodeIgniter的目录结构组织得很好,所以很容易在这个框架的基础上定制适合自己的框架,无论是以plugin, 库或者Helper的形式,甚至定位框架本身的代码,都很容易。
  优势五:大量的第三方Plugin,Helper
  这里包括大量优秀的Plugin,Helper等,可以说包括了开发网站的方方面面。这些东西,都可以很方便地进行复用。
  优势六:替你管理生命周期
  似乎拿着PHP谈生命周期,意义不如用Java去谈生命周期这么大,但实际上,CodeIgniter在这方面的确简化了很多的开发工作,让事情变得更简单的。
  下面说一说它的劣势:
  劣势一:社区不够活跃
  什么叫社区不够活跃呢?当然不是说用户少,而是说,它没有一个邮件列表,而论坛的方式,对于框架的高级使用者来说,吸引力还是相对要少一些。
  劣势二:代码不够漂亮
  得承认,CodeIgniter的设计并不优雅,在很多的地方都是有很多的反模式,虽然,它的确是可以工作的。
  劣势三:更新不够及时
  它已经很久没有更新了,虽然trunk中的代码还算稳定,但对于产品来说,Issue List中的问题需要自己去解决,这是一个问题。
  劣势四:Bug太多
  虽然不能说CodeIgniter的Bug太多,因为这里也包括了很多来自第三方的库或者Helper的Bug,但的确有很多低级Bug,比如Email类无法正确读取SMTP配置,VCard的类库带着filename属性却不支持,Email不支持vcard附件,base64编码存在问题等等。
  劣势五:日志与报错信息不友好
  这是PHP的问题,但如果处理得好,框架应该可以提供优雅的日志和报错信息。因此CodeIgniter在这方面还是需要大量改进。
  以上就是简单的总结,总体来说对于小项目或者多语言编程的项目,用CodeIgniter做前端还是不错的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-361439-1-1.html 上篇帖子: PHP下文字输出中字符集转换的解决 下篇帖子: 为Freelancer API写了个PHP的library
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表