天行健,君子以自强不息;
      地势坤,君子以厚德载物;

预览模式: 普通 | 列表

PHP 5.3新版特性浅析

  一、mysql驱动mysqlnd

  一直以来,php都是通过mysql客户端连接mysql,而现在mysql官方已经推出php版的mysql客户端,而这个mysqlnd有效降低内存的使用以及提高性能。具体可以看:

  http://dev.mysql.com/downloads/connector/php-mysqlnd/

  http://forge.mysql.com/wiki/PHP_MYSQLND
attachments/200912/3185075243.jpg

  从图中可以看出,使用mysqlnd少了从mysql驱动中复制数据到php扩展这一步。mysqlnd使用copy-on-write,也就是写时复制,读引用。

  mysqlnd已经内置在php

[阅读全文]

标签: PHP

mysqlnd成为php 5.3中的默认mysql驱动

mysqlnd成为php 5.3中的默认mysql驱动,它有如下优点:

  • mysqlnd更容易编译: 因为它是php源码树的一个组成部分
  • mysqlnd和php内部机制结合更紧密,是优化过的mysql驱动
  • mysqlnd更节省内存,从测试结果来看,比传统的mysql扩展节省40%的内存
  • mysqlnd更快
  • mysqlnd提供了丰富的性能统计功能
  • mysqlnd使用了PHP license以避免不必要的版权纠纷

这个改动应同时对mysql和pdo_mysql扩展生效。

mysqlnd是什么

mysqlndmysql原装的php驱动


参考文章:http://forge.mysql.com/wiki/PHP

[阅读全文]

在 PHP 中创建更好的名称空间

在 PHP V5.3 中引入的名称空间是为 PHP 类、常量和函数提供上下文的一种方式,从而可以将使用相同名称的元素看作是惟一的。惟一的名称避免了命名冲突,当两个类或函数使用相同的名称时就会发生这种情况。有时这些 PHP 类表示现实世界中的相同对象,但它们的行为是完全不同的。名称空间能够确保您拥有正确的 PHP 类、常量或函数,并且要使用您的 PHP 类的人能够确保他们使用了正确的类。

代码中的名称空间就像现实世界中的上下文。考虑一个表示现实世界中的汽车对象的类。例如,通过 Internet 销售汽车的公司使用的 Automobile 类的行为可能与保险销售公司使用的 Automobile 类完

[阅读全文]

标签: 名称空间

PHP文件上传源码分析(RFC1867)

文件上传,一般分为俩种方式FTP和HTTP, 对于我们的互联网应用来说: FTP上传虽然传输稳定, 但是易用性和安全性都是个问题. 你总不至于在用户要上传头像的时候告诉用户”请打开FTP客户端,上传文件到http://www.laruence.com/uploads/中, 并以2dk433423l.jpg命名”吧?

而基于HTTP的上传,相对来说易用性和安全性上就比FTP要增强了很多. 可以应用的上传方式有PUT, WEBDAV, 和RFC1867三种, 本文将分析在PHP中,是如何基于RFC1867实现文件上传的.

RFC1867

RCF1867是Form-based Fi

[阅读全文]

标签: PHP

谈PHP 闭包特性在实际应用中的问题

原文链接: http://justafewlines.com/2009/10/whats-wrong-with-php-closures/

PHP5.3 新版本跟随了很多新特性, 其中比较惹眼的特性之一就是支持了闭包。那么以后,我们也可以和那帮写 Ruby、Javascript 等等“高科技语言”的家伙们一样,写出非常酷的代码吗?呃,其实大部分情况下是可以的,而有些方面还是令人非常的困扰,下面慢慢道来。

很多语言的都提供了非常优雅和漂亮的操作数组的方法。在下面的例子中,会使用 PHP5.3 以及其他语言提供的闭包功能,用于展示如何“客观的”操作迭代数

[阅读全文]

标签: PHP