Codeigniter使用之进阶思考

CI是我非常喜欢的一个框架,他的轻量级与功能齐全并存,能够为开发功能丰富的中小型网站提供有利的帮助;他的结构组织合理优雅,能够让我们清晰的整理自己的思路;他的代码简洁有力,有利于提升我们的代码质量。下面就是我整理的CI使用过程中的一些心得体会。

CI帮助我们遵循MVC模式,但是并不限制我们对于MVC模式的理解以及使用。

CI的设计原则中包括:松耦合性、组件专一性。(这何尝不是公司组织架构中应当考虑的)

  1. 设计了 _remap 重定向函数,可以自由的对路由中的特殊规则和状态进行检查处理;
  2. 视图中指定Base,让我们易于进行资源文件不同版本见的测试和切换;
  3. 方便的进行输入检查。通常,不要相信任何用户的输入,必须检查确保传入的参数在语法和逻辑上都没有问题之后,才能够使用;
  4. CI很好的使用了extract函数,极大的方便了变量数组到视图页面变量见的转换;
  5. 一个控制器一般不会调用另外一个控制器,如果确实需要,那么调用的那个函数要有返回值;
  6. 使用safe_mailto来确保邮件地址的安全(不被机器人侵扰);
  7. 跨站脚本攻击、数据库注入、用户的输入,这三个安全的因素同样重要,不要忘记还有社会工程学上要注意的因素;
  8. 使用Active Record来节省操作数据库上所花费的时间,Ruby on Rails实际上也是AR模式,只是两者的实现方式上有些差别;
  9. 如果你怀念Smarty,可以考虑使用CI的模板语法分析器类;
  10. 视图组合的两种方法:
    第一种是在一个主视图中直接调用其他的视图;
    第二种是在一个主视图中埋下变量,在控制器中调用其他视图返回的变量,并赋予主视图;这一种似乎更正确一些,因为我们共用相同的主视图,但可以根据情况调用不同类型的header、footer或其他部分;
  11. PHP中的命名空间的概念?get_declared_classes;
  12. 不要让CI的单元测试功能闲置;
    测试有两种类型,一种是单元测试,采取“自下而上”的方法;一种是端到端测试,这种是“由上而下”的,他们把重心集中在某件事上。
  13. 更为有效的CRUD模型;(Glossopteris、CodeCrafter、SuperModel)

参考资料:

1、David Upton,PHP敏捷开发框架Codeigniter-快速Web应用开发详解

cocowool

A FULL STACK DREAMER!