13. Building web application
改善
更希望
Calling
命名清晰简洁
接口参数标准
Coupling
逻辑封装
调用有效
Debuging
I/O(数据库、缓存...)
问题定位 (嗯, 大家懂得:)
Log? Log!
BI 和 OPS 的各种要求
. . . . . .
14. Building web application
改善
更希望
Calling
命名清晰简洁
接口参数标准
Coupling
逻辑封装
调用有效
Debuging
I/O(数据库、缓存...)
问题定位 (嗯, 大家懂得:)
Log? Log!
BI 和 OPS 的各种要求
客服 MM 的各种问题
. . . . . .
15. Building web application
改善
更希望
Calling
命名清晰简洁
接口参数标准
Coupling
逻辑封装
调用有效
Debuging
I/O(数据库、缓存...)
问题定位 (嗯, 大家懂得:)
Log? Log!
BI 和 OPS 的各种要求
客服 MM 的各种问题
echo,var_dump 控
. . . . . .
16. Building web application
改善
更希望
Calling
命名清晰简洁
接口参数标准
Coupling
逻辑封装
调用有效
Debuging
I/O(数据库、缓存...)
问题定位 (嗯, 大家懂得:)
Log? Log!
BI 和 OPS 的各种要求
客服 MM 的各种问题
echo,var_dump 控
warn,info,error 们
. . . . . .
17. Building web application
NJR
NJR 来了!
NJR(NanJi Repository) 是构建 web 应用程序的基础类库。
它封装了操作系统和外部独立组件 (如数据库, 缓存等) 的
API,支撑业务应用层完成数据交换和传输。
. . . . . .
18. Building web application
NJR
NJR 来了!
NJR(NanJi Repository) 是构建 web 应用程序的基础类库。
它封装了操作系统和外部独立组件 (如数据库, 缓存等) 的
API,支撑业务应用层完成数据交换和传输。
.
NJ
. 是南方基地的简称, 被选择做当前版本的项目代号.
. . . . . .
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. Building web application
NJR Features
con?g
Con?gure with Array
.
数组式的初始化配置
.
$class = new NJ_Class(array $conf);
.
. . . . . .
43. Building web application
NJR Features
cache
APC Cache
PHP VirtueMachine Cache(lifecycle wihin httpd process)
. . . . . .
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. 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. 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. 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
.
./con?gure –enable-apc –enable-mmap –enable-apc-spinlocks
–disable-apc-pthreadmutex
.
. . . . . .
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
.
./con?gure –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. 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. Building web application
NJR Features
cache
Share Cache
cache in local memory (’memcache’ :p)
. . . . . .
51. Building web application
NJR Features
cache
Share Cache
cache in local memory (’memcache’ :p)
shared between processes
. . . . . .
52. Building web application
NJR Features
cache
Share Cache
cache in local memory (’memcache’ :p)
shared between processes
比文件系统更好
. . . . . .
53. Building web application
NJR Features
cache
Share Cache
cache in local memory (’memcache’ :p)
shared between processes
比文件系统更好
默认比 APC 可以存储更大的数据
. . . . . .
54. Building web application
NJR Features
cache
Share Cache
cache in local memory (’memcache’ :p)
shared between processes
比文件系统更好
默认比 APC 可以存储更大的数据
没有网络开销
. . . . . .
55. Building web application
NJR Features
cache
Share Cache
cache in local memory (’memcache’ :p)
shared between processes
比文件系统更好
默认比 APC 可以存储更大的数据
没有网络开销
. . . . . .
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();
. . . . . .