PHP With NanJi

510 views

Published on

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

  • Be the first to like this

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

No notes for slide

PHP With NanJi

  1. 1. Building web application . Building web application NJR 的简单介绍 . Gaffey Eggzilla May 10, 2011 . . . . . .
  2. 2. Building web application 现状 混乱 Chaos / 混乱的代码/ 混乱的风格 . . . . . .
  3. 3. Building web application 改善 更希望 Calling . . . . . .
  4. 4. Building web application 改善 更希望 Calling 命名清晰简洁 . . . . . .
  5. 5. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 . . . . . .
  6. 6. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling . . . . . .
  7. 7. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 . . . . . .
  8. 8. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 . . . . . .
  9. 9. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 Debuging . . . . . .
  10. 10. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 Debuging I/O(数据库、缓存...) . . . . . .
  11. 11. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 Debuging I/O(数据库、缓存...) 问题定位 (嗯, 大家懂得:) . . . . . .
  12. 12. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 Debuging I/O(数据库、缓存...) 问题定位 (嗯, 大家懂得:) Log? Log! . . . . . .
  13. 13. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 Debuging I/O(数据库、缓存...) 问题定位 (嗯, 大家懂得:) Log? Log! BI 和 OPS 的各种要求 . . . . . .
  14. 14. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 Debuging I/O(数据库、缓存...) 问题定位 (嗯, 大家懂得:) Log? Log! BI 和 OPS 的各种要求 客服 MM 的各种问题 . . . . . .
  15. 15. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 Debuging I/O(数据库、缓存...) 问题定位 (嗯, 大家懂得:) Log? Log! BI 和 OPS 的各种要求 客服 MM 的各种问题 echo,var_dump 控 . . . . . .
  16. 16. Building web application 改善 更希望 Calling 命名清晰简洁 接口参数标准 Coupling 逻辑封装 调用有效 Debuging I/O(数据库、缓存...) 问题定位 (嗯, 大家懂得:) Log? Log! BI 和 OPS 的各种要求 客服 MM 的各种问题 echo,var_dump 控 warn,info,error 们 . . . . . .
  17. 17. Building web application NJR NJR 来了! NJR(NanJi Repository) 是构建 web 应用程序的基础类库。 它封装了操作系统和外部独立组件 (如数据库, 缓存等) 的 API,支撑业务应用层完成数据交换和传输。 . . . . . .
  18. 18. Building web application NJR NJR 来了! NJR(NanJi Repository) 是构建 web 应用程序的基础类库。 它封装了操作系统和外部独立组件 (如数据库, 缓存等) 的 API,支撑业务应用层完成数据交换和传输。 . NJ . 是南方基地的简称, 被选择做当前版本的项目代号. . . . . . .
  19. 19. Building web application NJR Features autoload Import class . 类库自动载入 . defined(NJR) or define(NJR,/usr/share/NJR/); require(NJR.NJ.php); //直接实例化相应的类 $class = new NJ_Class(); . . . . . . .
  20. 20. Building web application NJR Features config Configure with Array . 数组式的初始化配置 . $class = new NJ_Class(array $conf); . . . . . . .
  21. 21. Building web application NJR Features database MySQL API exec() . . . . . .
  22. 22. Building web application NJR Features database MySQL API exec() query() . . . . . .
  23. 23. Building web application NJR Features database MySQL API exec() query() setAlive() . . . . . .
  24. 24. Building web application NJR Features database MySQL API exec() query() setAlive() . . . . . .
  25. 25. Building web application NJR Features database MySQL API exec() query() setAlive() . example . $config = array(host => 127.0.0.1,db => mysql, port => 3306, username => user, password => pass); $db = new NJ_DBC($config,$debug = true, $profile = true); $db->exec(); $db->setAlive(false); . . . . . . .
  26. 26. Building web application NJR Features cache Cache API Origin API . . . . . .
  27. 27. Building web application NJR Features cache Cache API Origin API get() . . . . . .
  28. 28. Building web application NJR Features cache Cache API Origin API get() set() . . . . . .
  29. 29. Building web application NJR Features cache Cache API Origin API get() set() del() . . . . . .
  30. 30. Building web application NJR Features cache Cache API Origin API get() set() del() add() . . . . . .
  31. 31. Building web application NJR Features cache Cache API Origin API get() set() del() add() flush() . . . . . .
  32. 32. Building web application NJR Features cache Cache API Origin API get() set() del() add() flush() Array-like Retrieve . . . . . .
  33. 33. Building web application NJR Features cache Cache API Origin API get() set() del() add() flush() Array-like Retrieve Serialized Store . . . . . .
  34. 34. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 . . . . . .
  35. 35. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 同步/异步传输 . . . . . .
  36. 36. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 同步/异步传输 一致性 HASH 算法 . . . . . .
  37. 37. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 同步/异步传输 一致性 HASH 算法 memcached 服务管理 . . . . . .
  38. 38. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 同步/异步传输 一致性 HASH 算法 memcached 服务管理 key 匹配 . . . . . .
  39. 39. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 同步/异步传输 一致性 HASH 算法 memcached 服务管理 key 匹配 inc/des (++/–) . . . . . .
  40. 40. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 同步/异步传输 一致性 HASH 算法 memcached 服务管理 key 匹配 inc/des (++/–) append/prepend . . . . . .
  41. 41. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 同步/异步传输 一致性 HASH 算法 memcached 服务管理 key 匹配 inc/des (++/–) append/prepend . . . . . .
  42. 42. Building web application NJR Features cache Memcache 采用 libmemcached 作为连接驱动 同步/异步传输 一致性 HASH 算法 memcached 服务管理 key 匹配 inc/des (++/–) append/prepend . example . $config = array(servers => array(0 => array(host => 127.0.0.1, port => 11211, weight= 1),), compress => false,serilize => false); $mc = NJ_Memcache::Instance($config); $mc[test1] = foo; $mc[test1]++; . $mc->append(test1,push string into end); . . . . . .
  43. 43. Building web application NJR Features cache APC Cache PHP VirtueMachine Cache(lifecycle wihin httpd process) . . . . . .
  44. 44. Building web application NJR Features cache APC Cache PHP VirtueMachine Cache(lifecycle wihin httpd process) Apc_Compiler_Cache(Opcode lifecycle with apc.ttl) . . . . . .
  45. 45. Building web application NJR Features cache APC Cache PHP VirtueMachine Cache(lifecycle wihin httpd process) Apc_Compiler_Cache(Opcode lifecycle with apc.ttl) Apc_User_Cache . . . . . .
  46. 46. Building web application NJR Features cache APC Cache PHP VirtueMachine Cache(lifecycle wihin httpd process) Apc_Compiler_Cache(Opcode lifecycle with apc.ttl) Apc_User_Cache . . . . . .
  47. 47. Building web application NJR Features cache APC Cache PHP VirtueMachine Cache(lifecycle wihin httpd process) Apc_Compiler_Cache(Opcode lifecycle with apc.ttl) Apc_User_Cache . hint . ./configure –enable-apc –enable-mmap –enable-apc-spinlocks –disable-apc-pthreadmutex . . . . . . .
  48. 48. Building web application NJR Features cache APC Cache PHP VirtueMachine Cache(lifecycle wihin httpd process) Apc_Compiler_Cache(Opcode lifecycle with apc.ttl) Apc_User_Cache . hint . ./configure –enable-apc –enable-mmap –enable-apc-spinlocks –disable-apc-pthreadmutex apc.stat = 0 better performance in require(),but restart httpd when code updated apc.slam_defense=0 apc.write_lock=1 . . . . . . .
  49. 49. Building web application NJR Features cache File Cache . example . $config = array(fs_path => /var/tmp, fs_level => 1, gc_chance => 10000, serilize => false); $f = new NJ_Fscache($config); $f->add(test1,asdasdsa); $f->append(test1,sssssssssss); . . . . . . .
  50. 50. Building web application NJR Features cache Share Cache cache in local memory (’memcache’ :p) . . . . . .
  51. 51. Building web application NJR Features cache Share Cache cache in local memory (’memcache’ :p) shared between processes . . . . . .
  52. 52. Building web application NJR Features cache Share Cache cache in local memory (’memcache’ :p) shared between processes 比文件系统更好 . . . . . .
  53. 53. Building web application NJR Features cache Share Cache cache in local memory (’memcache’ :p) shared between processes 比文件系统更好 默认比 APC 可以存储更大的数据 . . . . . .
  54. 54. Building web application NJR Features cache Share Cache cache in local memory (’memcache’ :p) shared between processes 比文件系统更好 默认比 APC 可以存储更大的数据 没有网络开销 . . . . . .
  55. 55. Building web application NJR Features cache Share Cache cache in local memory (’memcache’ :p) shared between processes 比文件系统更好 默认比 APC 可以存储更大的数据 没有网络开销 . . . . . .
  56. 56. Building web application NJR Features cache Share Cache cache in local memory (’memcache’ :p) shared between processes 比文件系统更好 默认比 APC 可以存储更大的数据 没有网络开销 . example . $sc = new NJ_Shcache(); $sc[test1] = foo; . $sc->close(); . . . . . .
  57. 57. Building web application NJR Features network Remote Request 单接口访问 send() . . . . . .
  58. 58. Building web application NJR Features network Remote Request 单接口访问 send() 非阻塞请求 asend() . . . . . .
  59. 59. Building web application NJR Features network Remote Request 单接口访问 send() 非阻塞请求 asend() . . . . . .
  60. 60. Building web application NJR Features network Remote Request 单接口访问 send() 非阻塞请求 asend() . example . $stack = array(array(url => http://www.baidu.com,params => array(q=>test,lang=>zh-cn), timeout=>10), array(url => http://www.google.com,params => ?q=test,timeout=>10), ); NJ_Request::asend($stack); . . . . . . .
  61. 61. Building web application NJR Features log Log 还没写 . . . . . .
  62. 62. Building web application 路线图 更多功能 终端程序支持 (守护进程..) . . . . . .
  63. 63. Building web application 路线图 更多功能 终端程序支持 (守护进程..) 常用数据结构 . . . . . .
  64. 64. Building web application 路线图 更多功能 终端程序支持 (守护进程..) 常用数据结构 Queue . . . . . .
  65. 65. Building web application 路线图 更多功能 终端程序支持 (守护进程..) 常用数据结构 Queue Stack . . . . . .
  66. 66. Building web application 路线图 更多功能 终端程序支持 (守护进程..) 常用数据结构 Queue Stack Collection . . . . . .
  67. 67. Building web application 路线图 更多功能 终端程序支持 (守护进程..) 常用数据结构 Queue Stack Collection 安全相关 . . . . . .
  68. 68. Building web application 致谢 谢谢参与 NJR 需要配套的业务层代码 . . . . . .
  69. 69. Building web application 致谢 谢谢参与 NJR 需要配套的业务层代码 NJR 期待各位的贡献 . . . . . .
  70. 70. Building web application 致谢 谢谢参与 NJR 需要配套的业务层代码 NJR 期待各位的贡献 LTEX 是一个功能强大的排版工具 A . . . . . .

×