南斗工作组

一些记录而已, php的学习日志
这是一项大的工程, 水平所限难免会有错误, 欢迎各位朋友指正.

声明: 这个系列的文章包含我学习php的一些经验和总结, 更多的是探讨与深入.

内容:
学习到今天的php,很多东西觉得需要整理一下。这个系列的文章是我自我检验关于设计模式和框架的一些基本想法,很多地方都是分析fleaphp和zf得到的结果,当然也借鉴了其他的一些框架的优秀思想。

这里是汇总目录, 便于查阅:

目录:
1. php项目开发方式
2.web中的 MVC模式 --- PHP框架编写123 [2008-06-27更新]
3. 一些基本设定和框架总体设计---PHP框架编写123 [2008-06-28更新]
4.设计分发器(Dispatcher)--- PHP框架编写123 [2008-07-03更新]


类别:PHP相关 | Tags: , , , , , , | 0 条评论, 60 次阅读
Jun
14
2008

[置顶] PHP开发群

01:10 , P.Qingliang
群号:17588007
暗号:我要php
类别:站点公告 | | 0 条评论, 461 次阅读
Apr
9
2008
/*************************************************************
** 作者:P.Qingliang (P.Qingliang at msn.com)
** 创建时间: 2008-8-6
** 声明:笔记不是教程,这只是我系统学习算法的记录而已,如有错
** 误,欢迎指正。
**
*************************************************************/  

检测算法的时间效率往往是在大规模的输入(n)的情况下进行,当n足够大时,研究算法的运行时间就趋向于研究算法的渐进效率了,因为我们没有必要进行过于精确的计算。在计算机中,有几种标准的方法用于简化算法的渐进分析。

渐进符号
  用以表示算法的渐进时间记号是域为自然数的函数。有时域的范围可以适当的扩充以获得更广的益处。

三种渐进符号:ΘΩΟ
f(n) = Θ(g(n)) 表示的是这样的一个集合:存在c1,c2,当n>n0时,有0 < c1g(n) 点击在新窗口中浏览此图片
(图来自《算法导论》)
它实际上是确定了一个算法的运行时间渐进上界和渐进下界。

对应的Ω用于确定算法的渐进下界(最佳运行时间),Ο用于确定算法的渐进上界(最坏运行时间)

需要注意的是,实际上运行时间并非是n的函数,对于某个特定的n来说,运行时间与具体的输入有关,当我们用渐渐符号来表示算法运行时间时,实际上是在某个特定条件约束下说明的。

方程中的渐进符号
  方程中的渐进符号实际上相当于一个匿名函数f(n),用于表示我们不关注的部分,因为我们没有必要写出我们不关心而又繁琐的某些细节部分(如低阶项)。

对于非精确上界渐进用符号o(g(n))表示,例如2n=o( ),而精确上界渐进则用符号Ο(g(n))表示,例如 .
w与Ω的关系同O与Ο。
类别:问题求解与算法 | Tags: | 0 条评论, 3 次阅读
Aug
7
2008
/*************************************************************
** 作者:P.Qingliang (P.Qingliang at msn.com)
** 创建时间: 2008-8-5
** 声明:笔记不是教程,这是我系统学习算法的记录而已
**
*************************************************************/

算法的定义
算法(Algorithm)是指在有限步骤内解决问题的一组明确定义的规则,通俗的说,就是计算机解决问题的过程。

算法的特点
  有穷性、确切性、输入、输出、可行性

  即使是错误的算法,当其错误率在可接受范围内时也就是认为是“正确”的算法。算法的描述一般是伪代码(类c,类c++,类pascal等等)来进行。

分析算法
  算法分析的重要内容:算法的复杂性,包括空间复杂性和时间复杂性,一般只讨论时间复杂性。所谓时间复杂性,简单的说就是指在一定的输入规模下算法执行的时间效率。通常我们分析算法时假定指令是一条接着一条的执行的,而没有并发操作,也就是所谓的RAM模型。
类别:问题求解与算法 | | 0 条评论, 7 次阅读
Aug
6
2008
示范代码:
类别:PHP相关 | Tags: , , , | 0 条评论, 29 次阅读
Jul
18
2008
      声明:可能说的不太明白,欢迎讨论。      

      这是一个非常简单但又非常深刻的问题,说它简单是因为人人都明白这个道理,它看起来是如此的简单;说它深刻,是因为信的理解各不相同、做法各不相同、做到也十分的困难。一个人一旦有了“信”,别人对你的信任度就会增高,你在别人心目中的形象也会增高。例如在一个团队中,一个集体或者一个宿舍中,往往最有说服力的人都是有“信”的人。
信可分为两种:一是对别人,二是对自己。 对别人,不食言、不欺骗等等。对自己,这个是我想重点讨论的。
类别:一些感悟 | | 0 条评论, 23 次阅读
Jul
17
2008
如何设计分发器(Dispatcher)
有了对MVC模式的简单认识,我们就可以正式开始框架的设计了(参见http://www.nd21.com/read.php/61.htm)。
从上面链接的示范代码中我们可以大致的了解分发器的职责:解析web端请求(GET方式)为某个控制的动作,也就是简单的路由功能。其次,分发器还需要将更多的请求参数传递给控制器,能够提供出错处理(当控制器或者控制器的方法不存在时),能够进行重定向等等功能。我们可以根据这些定义出分发器的基本框架:
类别:PHP相关 | Tags: , , , , , | 0 条评论, 53 次阅读
Jul
3
2008
PHP页面静态化是大多数PHP程序员耳熟能详、随手可写的功能了,在这里不讨论如何生成静态页面的细节,而是考虑:将静态缓存功能作为系统的哪个部分的结构来实现(基于MVC模式,如果对MVC不了解,对于下面的内容的理解可能有困难)。

在我的总结有两种主要的方式,其他的还没有发现,如果你有第三种可行的方案,请给我发一份示意代码,谢谢。(代码使用PHPLIB template示范)

第一种方式:由控制器来调用单独的缓存类。在这个时候缓存类是一个单独的类,与模板引擎相对独立,在一个请求开始的时候,缓存类即被调用,并进行一些相关的缓存操作。这一工作甚至可以直接在调度器中完成(如果存在调度器dispatcher的话)。下面给出一个简单的代码示范(只有框架):
类别:PHP相关 | Tags: , , , | 0 条评论, 116 次阅读
Jun
26
2008
接口用于给类附加特殊的行为信息,可以避免在类中混合一些不属于领域类的方法。

PHP中,接口定义如下:


如果是一个抽象类实现了某个接口,由于抽象类本身不能实例化,所以不需要抽象类实现所有的接口方法,如下代码可以正常运行:


但是如果是一个具体类实现某个接口,则必须实现所有接口的方法。如下代码不能正常运行:


一点点基础知识,用来备忘。

类别:PHP相关 | Tags: , , | 0 条评论, 48 次阅读
Jun
24
2008
分页: 1/7 第一页 1 2 3 4 5 6 7 下页 最后页 [ 显示模式: 摘要 | 列表 ]