给代码打上版本号
03-3
服务器突然发生了崩溃,老板开始找我了。
找了半天居然没找到问题在哪里,一咬牙,写了个性能和负载的记录工具,再出事我可有记录了-,-||
备注:只能在linux下用。
什么是框架:字典中框架指架构,骨架结构,框子,底座等,从字面意思,不难理解,框架指一个基础,而在程序开发中,框架指基于底层语言而逐步向上层应用进行的一些功能实现。其并没有实现具体的功能,而是简化了开发过程,任何模块中常用的功能都被框架进行封装或者扩充,给开发人员以最简的操作实现。
常用的PHP框架:Cakephp Flexphp Thinkphp
什么是脚手架:脚手架通常使用在框架的数据抽象层,数据脚手架可以很直观得给开发者或者使用者数据结构的表现。脚手架同样可以表现在一些具体应用上。但脚手架的功能只是把数据或者应用的最终结果能用简单的方式表现,但并没有达到最终的应用效果,常用在建模或结构设计的初期。脚手架的优势就是给最终用户一个直观的产品但中间并没有经过大量的开发,以减少需求变更所带来的反复开发。
常用脚手架:CI框架中数据脚手架
什么是应用资源包:应用资源包就是具体的应用了,比如bbs,blog,用户管理,资源管理等一些具体的应用。应用资源包侧重完成了一个完整的功能,而面向开发的应用资源包又提高了可迁移性,使一些项目的功能模块直接修改应用资源包的接口而达到快速开发。
常用案例:xoops中功能模块包。
从来没发现这个错误,今天突然想到。
数据库中时间,我习惯使用时间戳来保存,取某天或者某小时的数据时,采用 sql 的 between and 方法。
乍看这样是没有什么问题的,取某天的时间段。实践证明,在数据时间的分布比较疏松的时候,的确没什么问题,但如果数据分布十分密集,每秒都有若干数据的时候,问题就出来了。根据between的规则,实际的时间就是 $time[1]-$time[0]+1 = 86401
每条语句多算了一秒……汗
解决方案,时间段的计算一律 $time[0] + 60*60*24*x -1
PHP对变量的跟踪,其实是采用引用,比如 $a = “test” 那么就是在内存中开辟一个存储区,保存 test,$a 做为test的引用。
同时我们可以 $b = &$a,$b作为 $a的引用,他们同时指向test存储空间。
在文章 http://www.sunboyu.cn/2008/11/19/php%E4%B8%AD%E5%8F%98%E9%87%8F%E5%BC%95%E7%94%A8%E8%AF%A6%E8%A7%A3.shtml 中,我们做了一个应用的测试,当删除一个引用后,变量并不消失,是因为PHP使用一个引用计数的东东。当$a=”test”建立后,test的引用计数就是1,建立 $b=&$a后,test的引用计数就是2,删除任何一个引用后,引用计数为1.
只要是引用计数不为0的数据,则为当前有效的数据。然而,当数据的引用计数为0的时候,系统就会识别此数据为垃圾数据,需要回收,这也就形成了PHP的垃圾回收机制。
1.0不发布,1.1就不会出来,折腾了半月,终于写了个简单的框架,虽然只有简单的几个类,但基本实现了全OOP的操作。这个归功于网上众多的开源软件,没有这些资源的帮助,就不会有我的进步。
取名CentPHP,是因为我希望它像CentPHP一样强大稳定,而且免费开源。
最终把session的数据库保存方式给去了,因为太麻烦,模板引擎基本没什么功能,只有传值和显示,虽然进行了一些优化,但没有彻底跟踪排查资源调用情况,这个在以后版本要逐渐修正。
下边是相关文件列表,源码~~~~~~~~~等实现完一个项目后放出……
F:.
│ Index.php
│
├─lib
│ └─kernel
│ CentPHP.php
│ Class.Controller.php
│ Class.CP.php
│ Class.Mysql.php
│ Class.Router.php
│ Class.URI.php
│ Class.View.php
│ Common.php
│
├─usr
│ ├─config
│ │ Config.Mysql.php
│ │ Config.View.php
│ │
│ ├─controllers
│ │ welcome.php
│ │
│ ├─lib
│ │ Class.Session.php
│ │
│ └─views
│ welcome.php
│
└─var
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
|---|---|---|---|---|---|---|
| « 一 | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | ||||