手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

高春辉的DAL

提起高春辉,恐怕更多的人想到的是手机之家。其实,还有一款PHP界的软件是大家所熟知的,那就是ecshop。当然现在的ecshop已经不是高春辉的了。几经转手,现在ecshop已经是shopex的旗下产品了。

4月份的时候,高春辉提出了新的架构,并整理出了一份PPT与大家共享,与“手机之家新系统介绍及架构分享”有关,过了几天,他把DAL方面的特点整理了一下,还是有关 DAL~,认为有一些特色:

XML/HTML代码
  1. 我也觉得其实这个 DAL 的最核心功能就是如何自动缓存和清理缓存了。因为不让程序员缓存和清理,就的是程序自己来管理缓存和清理缓存,总得清理嘛。不过这个还是保密一下吧。起码不是某些人想的只能缓存单条数据,也不是某些人想的清理是按照单条方式的清理。当然另外的一个核心功能就是分库分表的自动和透明化,这个功能有很多软件都实现了,就不多说了。  

六个月过去了,高春辉终于放出了DAL 近期情况~,如果他愿意,估计可能会开源。如果东西很新鲜,那么极有可能引起一场革命。象他的ecshop一样,又或者象当年的ruby的 active record 。

真正的发布会带来什么呢?我也很期待

Tags: dal, 高春辉, 手机之家

phpQuery

想分析网页?不会写正则?这。。。一切都不是问题

在以前是不可想象的。但如今google的项目里有这个phpQuery,它可以让一切变得可能。。。

phpQuery is a server-side, chainable, CSS3 selector driven Document Object Model (DOM) API based on jQuery JavaScript Library.

Library is written in PHP5 and provides additional Command Line Interface (CLI).

如果你使用过jQuery,你会发现这一切是如此的相象。

PHP代码
  1. <?php  
  2.   
  3. include_once'./phpQuery.php' );  
  4.   
  5. $html = new phpQueryDocumentFile('xxx.html');  
  6. $title = $html->find('title')->text();  
  7.   
  8. echo $title;  
以上内容是取得网页的 title。多方便啊。。。

如果是取得某个class的内容呢?

PHP代码
  1. <?php  
  2.   
  3. //...include   
  4. //...new phpQueryDocument  
  5.   
  6. $html->find('div.test eq(1)')->html();  
  7. //表示取得div的class为test的,第一个匹配的元素中html内容  
呵呵,快去:http://code.google.com/p/phpquery/下载吧

Tags: phpquery

关于PHP的定界符:heredoc syntax

定界符这个东西功能很强大,特别是在引用多行HTML代码的时候,方便了PHP的开发者,但其实他的使用很妖异【没装过PHP5.3,所以不知道新的有没有变化】

1、heredoc syntax 里面只能是文字,凡是涉及到的变量都会被解析,不想被解析?美元前加反斜杠吧。。解析类中的变量?使用大括号吧。。。

2、不要妄想在定界符内赋值、计算等,如果是变量的相乘,请在外面解析完了放进来。。。

3、大括号要注意着使用,无论如何,大括号内不要同时出现多个变量【多个变量只应该是{$a->$b->$c}这种】

4、定界符标志后面不能有任何空格,如 <<<EOT,EOT;,这两个符号后都不能有任何字符,EOT;就是占一行,谁也不能抢它

PHP代码
  1. <?php  
  2. print <<<EOT  //如果这个后面有空格,报错。。。
  3. haha  
  4. EOT;  //如果这个后面有空格,报错【如果没有空格,就这样文件直接结束,同样报错,请在EOT;后面敲个回车吧】

就想到这么多。以后想到再写

顺便说明一下,PHP的文件还是有规范的。。

例如

1、空文件,一般代码为<?php,如果就这样写,肯定报错,最少在<?php后面得加一个空格

2、文件结尾,上面说的定界符,就是一例,如果文件正好是EOT;结尾,后面又没有 ?> ,文件绝对报错,所以必须要在EOT;后再敲一个回车。。。。

妖啊。。实在是妖啊。。

Tags: 定界符, heredoc

JS找出一串字符中出现最多的字符

本文来自博客园,有点意思。。。
原文地址:http://www.cnblogs.com/kenandalda/archive/2009/09/20/1570617.html

作者认为:

XML/HTML代码
  1. 用数组的sort方法对字符串进行排序,让相同字母都到一起去  
  2. 用正则表达式来匹配两个相邻的不同字符,中间加上逗号  
  3. 以逗号为界把第二步得到的字符串打散成数组  
  4. 按字符串长度排序该数组,得到的第一个元素就是要的答案  

于是写了以下代码:

JavaScript代码
  1. String.Count=function(str){  
  2.     var ret=str.split("")  
  3.                 .sort()  
  4.                 .join("")  
  5.                 .replace(/((.)\2*)/g,"$1,")  
  6.                 .split(",")  
  7.                 .sort(function(a,b){return b.length-a.length});  
  8.     return [ret[0][0],ret[0].length];  
  9. }  
  10.   
  11. var s="&(&$#(JFLSDJFOIWEfdjsklfewosd2378907345asdsdwsdqs";  
  12. alert(String.Count(s));  

作者是谁?他是:Kenneth Chen,据称代码已经修改过了。。

Haohappy翻译的PHP5.3新特性

PHP5.3现在或许有N多人在研究在测试了。虽然那个namespace长的丑了一点。但不影响其他功能对我的影响。
haohappy在这里作了介绍,有部分资料以前介绍过,我这里就不多介绍,我所转的只是我认为的一些新特性

CLASS相关

1、静态类可以动态调用,即类似于 $aa::$bb($cc) 这样的调用方式,以前只能使用call_user_func(array($aa,$bb),$cc)这样的方式来调用

2、静态类增加了 __callStatic,类似于__call,但这是专为静态类使用的。

3、类中增加了__invoke方法(haohappy没有介绍,我也没有翻手册)

Nowdoc,

说这个nowdoc,恐怕很多人不明白,还有heredoc,还是很多人不明白这是什么,如果说到“定界符”,也许会有人记得。这是在国内被翻译的名词吧?

PHP代码
  1. <?php  
  2. print <<<EOT  
  3.    xxxx  
  4. EOT;  

关于定界符的功能,我不想多说,可以翻手册,nowdoc,的功能和用法是什么呢?以上面的代码为例,是在第一个EOT处,为EOT加上单引号,即 <<<'EOT',在这样的操作下,整个定界符中的变量将不会被解析,比较适合用来处理大段的 PHP 代码

常量定义方式增加

原来的常量定义是:define("XXX",XXX);如今 又增加了一个新的方法: const XXX = "XXX";

三元运算符增加了一个快捷书写方式: ?:【感觉和以前的那种 for 循环的简写有点类似,忽略部分参数。。。】

原本格式为是(expr1) ? (expr2) : (expr3)
如果expr1结果为True,则返回expr2的结果。

PHP5.3新增一种书写方式,可以省略中间部分,书写为expr1 ?: expr3
如果expr1结果为True,则返回expr1的结果


HTTP
状态码在200-399范围内均被认为访问成功

支持嵌套处理异常(Exception

新的垃圾收集器(GC),并默认启用

 

Tags: haohappy