PHP单例模式的必要性

  多数人都是从单例模式的字面上的意思来理解它的用途, 认为这是对系统资源的节省, 可以避免重复实例化, 是一种"计划生育".  而PHP每次执行完页面都是会从内存中清理掉所有的资源. 因而PHP中的单例实际每次运行都是需要重新实例化的, 这样就失去了单例重复实例化的意义了. 单单从这个方面来说, PHP的单例的确有点让各位失望. 但是单例仅仅只有这个功能和应用吗? 答案是否定的,我们一起来看看.

1.
php的应用主要在于数据库应用, 所以一个应用中会存在大量的数据库操作, 在使用面向对象的方式开发时(废话), 如果使用单例模式, 则可以避免大量的new 操作消耗的资源.

2.
如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现. 这个可以参看zend Framework的FrontController部分.

3.
在一次页面请求中, 便于进行调试, 因为所有的代码(例如数据库操作类db)都集中在一个类中, 我们可以在类中设置钩子, 输出日志.避免到处var_dump, echo.

cygwin导入windows用户

系统重装后,发现cygwin许多不能用了,进入系统path设置,添加 {%cygwinroot%}/bin ,其中{%cygwinroot%}是cygwin的安装目录.
发现可以用了, 由于之前很多设置都是和帐户有关的, 所以需要再导入之前的用户. cygwin没有adduser命令, 只能通过先windows添加用户, 然后通过如下命令来实现:
mkpasswd -l [-d] > /etc/passwd
mkgroup  -l [-d] > /etc/group
-d 用于导入域用户.
 

设置body高度为浏览器页面高度

在ie6下直接设置

body {height: 100%;}   

以上代码在ie7和ff下无效, 需如下设置:
html, body {height:100%; overflow:hidden;}  

overflow:hidden是为了避免ff下可能出现的竖向滚动条(在使用frame的情况下)