学习 CodeIgniter

603 views

Published on

CodeIgniter 中国社区的第一次线下活动的演讲,主要讲了学习的心态、CI 的技术架构特性和 CI 的生命周期。并没有涉及到 CI 的具体使用,适合对 CI 有一定了解的用户观看。
PPT 做得不是很好,最好和文稿一起看。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
603
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

学习 CodeIgniter

  1. 1. 学习 CodeIgniter ID & Email:BruceWolf@CodeIgniter.org.cn配套文稿: http://codeigniter.org.cn/forums/thread-13719-1-1.html 2012.07.14
  2. 2. 关于 CodeIgniter 一个叫 Ellis 的前摇滚乐手写的框架Page  2 CodeIgniter 中国社区
  3. 3. 学习 CodeIgniter  “ 不会 PHP 可以先学 CI 找份工作之后再找机会学习 PHP”  这是对 CI 的赞扬,但不是程序员该有的心态。Page  3 CodeIgniter 中国社区
  4. 4. 学习 CodeIgniter  How?  How can I?  How does it?Page  4 CodeIgniter 中国社区
  5. 5. How does it  造轮子说  学习造轮子  要去学习多大的轮子?Page  5 CodeIgniter 中国社区
  6. 6. CodeIgniter 的特性  免费  快速  轻量  功能强大Page  6 CodeIgniter 中国社区
  7. 7. CodeIgniter 的特性  文档丰富  社区活跃Page  7 CodeIgniter 中国社区
  8. 8. CodeIgniter 的技术特性  架构特性  程序的开发思想Page  8 CodeIgniter 中国社区
  9. 9. 架构特性  MVC  超级对象  按需加载  自身可扩展Page  9 CodeIgniter 中国社区
  10. 10. 架构特性 - MVC  CI 之根本  MVC 是理念约束  MVC 是基础架构Page  10 CodeIgniter 中国社区
  11. 11. 架构特性 - 超级对象  业务逻辑空间大部分都是在超级对象之下Page  11 CodeIgniter 中国社区
  12. 12. 架构特性 - 超级对象  业务逻辑空间大部分都是在超级对象之下 – 除了 HooksPage  12 CodeIgniter 中国社区
  13. 13. 架构特性 - 超级对象  业务逻辑空间大部分都是在超级对象之下 – 除了 Hooks  无处不在Page  13 CodeIgniter 中国社区
  14. 14. 架构特性 - 超级对象  业务逻辑空间大部分都是在超级对象之下 – 除了 Hooks  无处不在 – ControllerPage  14 CodeIgniter 中国社区
  15. 15. 架构特性 - 超级对象  业务逻辑空间大部分都是在超级对象之下 – 除了 Hooks  无处不在 – Controller – ModelPage  15 CodeIgniter 中国社区
  16. 16. 架构特性 - 超级对象  业务逻辑空间大部分都是在超级对象之下 – 除了 Hooks  无处不在 – Controller – Model • $CI =& get_instance(); return $CI->$key;Page  16 CodeIgniter 中国社区
  17. 17. 架构特性 - 超级对象  业务逻辑空间大部分都是在超级对象之下 – 除了 Hooks  无处不在 – Controller – Model • $CI =& get_instance(); return $CI->$key; – ViewPage  17 CodeIgniter 中国社区
  18. 18. 架构特性 - 按需加载  Load 是一个理念Page  18 CodeIgniter 中国社区
  19. 19. 架构特性 - 按需加载  Load 是一个理念  Load 是一个系统Page  19 CodeIgniter 中国社区
  20. 20. 架构特性 - 按需加载  Load 是一个理念  Load 是一个系统 – core/Loader.phpPage  20 CodeIgniter 中国社区
  21. 21. 架构特性 - 按需加载  Load 是一个理念  Load 是一个系统 – core/Loader.php • 30K , 1248 行Page  21 CodeIgniter 中国社区
  22. 22. 架构特性 - 按需加载  Load 是一个理念  Load 是一个系统 – core/Loader.php • 30K , 1248 行 – load_class() 、 config_get() 、 Lang 、 ConfigPage  22 CodeIgniter 中国社区
  23. 23. 架构特性 - 按需加载  Load 是一个理念  Load 是一个系统 – core/Loader.php • 30K , 1248 行 – load_class() 、 config_get() 、 Lang 、 Config  按需加载,资源复用Page  23 CodeIgniter 中国社区
  24. 24. 架构特性 - 按需加载  Load 是一个理念  Load 是一个系统 – core/Loader.php • 30K , 1248 行 – load_class() 、 config_get() 、 Lang 、 Config  按需加载,资源复用 – 按需Page  24 CodeIgniter 中国社区
  25. 25. 架构特性 - 按需加载  Load 是一个理念  Load 是一个系统 – core/Loader.php • 30K , 1248 行 – load_class() 、 config_get() 、 Lang 、 Config  按需加载,资源复用 – 按需 – 复用Page  25 CodeIgniter 中国社区
  26. 26. 架构特性 - 按需加载  Load 是一个理念  Load 是一个系统 – core/Loader.php • 30K , 1248 行 – load_class() 、 config_get() 、 Lang 、 Config  按需加载,资源复用 – 按需 – 复用 – 纠结Page  26 CodeIgniter 中国社区
  27. 27. 架构特性 - 自身可扩展  load 系统的支持  Hooks 机制的支持Page  27 CodeIgniter 中国社区
  28. 28. 架构特性 - 自身可扩展  load 系统的支持  Hooks 机制的支持 – 功能原型Page  28 CodeIgniter 中国社区
  29. 29. 架构特性 - 自身可扩展  Hooks 机制的功能原型Page  29 CodeIgniter 中国社区
  30. 30. 架构特性 - 自身可扩展  load 系统的支持  Hooks 机制的支持 – 功能原型 – 挂载点的名字Page  30 CodeIgniter 中国社区
  31. 31. 架构特性 - 自身可扩展  load 系统的支持  Hooks 机制的支持 – 功能原型 – 挂载点的名字  目录结构设计Page  31 CodeIgniter 中国社区
  32. 32. 架构特性 - 自身可扩展  load 系统的支持  Hooks 机制的支持 – 功能原型 – 挂载点的名字  目录结构设计 – system 和 application 的子目录结构有很多是相同的Page  32 CodeIgniter 中国社区
  33. 33. 架构特性 - 自身可扩展  load 系统的支持  Hooks 机制的支持 – 功能原型 – 挂载点的名字  目录结构设计 – system 和 application 的子目录结构有很多是相同的 – 便于文件管理Page  33 CodeIgniter 中国社区
  34. 34. 架构特性 - 自身可扩展  load 系统的支持  Hooks 机制的支持 – 功能原型 – 挂载点的名字  目录结构设计 – system 和 application 的子目录结构有很多是相同的 – 便于文件管理 – 便于 load 的实现Page  34 CodeIgniter 中国社区
  35. 35. 优雅的 CodeIginiter  超级对象  按需加载  自身可扩展Page  35 CodeIgniter 中国社区
  36. 36. 程序开发思想  安全Page  36 CodeIgniter 中国社区
  37. 37. 程序开发思想  安全 – Security, InputPage  37 CodeIgniter 中国社区
  38. 38. 程序开发思想  安全 – Security, Input – 安装指导Page  38 CodeIgniter 中国社区
  39. 39. 程序开发思想  安全 – Security, Input – 安装指导  性能Page  39 CodeIgniter 中国社区
  40. 40. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎Page  40 CodeIgniter 中国社区
  41. 41. PHP 本身就是一个模板语言 1994 年的 PHP [ 摘自 Rasmus Lerdorf 的 PPT]Page  41 CodeIgniter 中国社区
  42. 42. PHP 本身就是一个模板语言 1995 年的 PHP [ 摘自 Rasmus Lerdorf 的 PPT]Page  42 CodeIgniter 中国社区
  43. 43. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 includePage  43 CodeIgniter 中国社区
  44. 44. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 include evalPage  44 CodeIgniter 中国社区
  45. 45. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 include eval <?= 变成 <?php echoPage  45 CodeIgniter 中国社区
  46. 46. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 include eval <?= 变成 <?php echo 1.PHP 没有开启短标签Page  46 CodeIgniter 中国社区
  47. 47. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 include eval <?= 变成 <?php echo 1.PHP 没有开启短标签 2. 设置了 CI 的 rewrite_short_tags 为 truePage  47 CodeIgniter 中国社区
  48. 48. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 – BenchmarkPage  48 CodeIgniter 中国社区
  49. 49. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 – Benchmark  多环境支持Page  49 CodeIgniter 中国社区
  50. 50. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 – Benchmark  多环境支持  用户体验Page  50 CodeIgniter 中国社区
  51. 51. 程序开发思想  安全 – Security, Input – 安装指导  性能 – 模板引擎 – Benchmark  多环境支持  用户体验 – 伪静态Page  51 CodeIgniter 中国社区
  52. 52. CodeIgniter 的生命周期  index.php  system/core/CodeIgniter.phpPage  52 CodeIgniter 中国社区
  53. 53. CodeIgniter 的生命周期 - index.php  各种配置、参数定义  include("core/CodeIgniter.php")Page  53 CodeIgniter 中国社区
  54. 54. CI 的生命周期 - system/core/CodeIgniter.php  include(core/commons.php)  载入 config/constants.php  其他配置  load benchmark, hooks  hook: pre_system  load Config 、 Utf8 、 URI 、 Router 、 Output  hook: cache_override – output::_display_cache()Page  54 CodeIgniter 中国社区
  55. 55. CI 的生命周期 - system/core/CodeIgniter.php  load Security 、 Input 、 Lang  hook: pre_controller  $CI = new $class();  hook: post_controller_constructor  hook: post_controller  hook: display_override – Output::_display()  hook: post_system  清理数据库连接Page  55 CodeIgniter 中国社区
  56. 56. 谢 谢! CodeIgniter 中国社区

×