随笔分类 - PHP
摘要:在上一节中,我们提到了如何创建一个Bunlde 并且在默认控制器中添加一些方法。如果有参照之前的说法进行的话,读者很有可能会被提示说 返回的Response对象不能为空。好啦,我们就来研究一下,怎么从请求中读取数据,并且使用Controller 提供的 Response来给请求一个适当的返回值。 在
阅读全文
摘要:如果说,这个时候你萌生了一个去看一看Symfony源码的想法,个人建议还是算了,看了之后,你就会感到非常迷茫。因为他实在是大于绝大部分你使用过的框架,并且有多达近二十个的插件,使用了一些非常精巧的设计模式把各个部分有序优雅地组合在一起,并且使它们work well and fast ! 从现在起我们
阅读全文
摘要:经过上一篇文章之后,我们呢,可以访问这个默认的页面,你也会看到一堆高级的debug工具。好了,这次我们开始更多地了解这个symfony2.0。 首先我们要明白一点,Symfony2 的配置是一个着实很让人捉急的事情,但是呢并不可怕,尤其是你非常熟练的使用了这种路由规则之后,你就会发现,他比 thin
阅读全文
摘要:最近,大概研究了一下php中的j2ee框架(很多j2ee的思想)。介于国内对于Php的认可程度还停留在石器时代,多数的开发者,还在写php4时代的代码,也就更谈不上使用像Symfony这样oop的框架。大部分国内框架包括比较出名的ThinkPHP,也不过是套着一个oop的壳子,写着过程化的代码,连国
阅读全文
摘要:之前写某些代码的时候,发现用户莫名奇妙地阻塞了,而且这种阻塞的情况还比较难以形容:使用session过程中,在开启session后,同一浏览器,执行同一程序,不同页面会被锁。不同浏览器不会出现这种情况。 (当时的情况是:需要执行一个非常长时间的脚本,我已经设置了用户断开不中断,无时间限制执行,但是最后发现执行这个脚本的时候,用户就不能访问其他页面了)其实最开始的时候,我并不知道是session把它锁住了,查了半天手册才知道,看来真的是先天不足。 在PHPBugList上面有人提到如下:------Callingsession_start()appearstowaituntilother...
阅读全文
摘要:现在的语言没有闭包简直都不好意思说出来。 想要了解闭包是什么,那么就必须知道匿名函数。其实看起来他们其实差不多一个意思。 见phpRFC一句话:Endof2007apatchwasproposedthatwouldaddlambdafunctions(butwithoutclosures)toPHP.Duringthediscussiononthemailinglist,severalpeoplesuggestedthatwithoutsupportforclosures,lambdafunctionsarenotusefulenoughtoaddthemtoPHP.Thispropo...
阅读全文
摘要:引用计数以及是否是引用变量,一个神奇的函数,查看当前引用计数:1 输出:a: (refcount=2, is_ref=0)='new string'也就是说当你把一个变量赋值给另外一个变量的时候,实际上并没有复制容器,而是引用赋值。当你真正需要修改的时候,才会复制这个容器。当refcount=0的时候,这个容器也就被删除了,每次unset操作把容器的refcount值减少1。类似的,数组和对象也是这个工作原理,他们只不过是一个符合的容器,但是这样a: (refcount=2, is_ref=1)=array ( 0 => (refcount=1, is_ref=0)=
阅读全文
摘要:今天看php手册,结构流程控制语句,翻到个没见过的关键字declare(申明的意思)。于是稍稍看了下。大概意思是:定义一段代码。关于他合适执行,怎么执行完全依照他的参数。 反正不知道什么意思。先来一段实例代码 1 每每执行declarestatement里面的tick步就会调用已经注册的function一次。用来跟踪变量,跟踪时间,跟踪内存使用,监测连接断开等等,应该都是非常合适的。 备注:ticks代表步长; 另外对于declare来说还有另外一个参数是encoding暂时没懂怎么用,评论上都没提,好像是一个新的属性之类的 另外php支持goto语句,和c语言一样的写法
阅读全文
摘要:之前做聊天室的时候有那么个需求就是当用户异常断线的时候就应该清除她的在线状态。因为当时对于flush不够了解,尝试了各种办法,好像都没办法在我们开发机上面执行相应的代码。后来知道是flush的原因。我现在就把所有尝试过的办法都相应地说一次.第一最开始的时候,看到了一个regist_shutdown_function()简直是激动惨了。结果后来才知道有好哈。不过是脚本完成或者中断的时候提供一个方法来执行相应的代码。并且在这个里面注册的函数相当的有限(虽然可以把这样传入array($this,method))但是对于环境中的已经存在的函数和类的使用受到了很大的限制,并且对于某些系统函数或者类的支.
阅读全文
摘要:最最开始的时候经常遇到这个问题,就是如果一个文件里面全部都是php代码的话,我写了前闭合和后闭合的时候,文件一多就容易报错,老是说什么有关输出的错误,貌似大概就是header已经发了。手册上面这个样子说的IfafileispurePHPcode,itispreferabletoomitthePHPclosingtagattheendofthefile.ThispreventsaccidentalwhitespaceornewlinesbeingaddedafterthePHPclosingtag,whichmaycauseunwantedeffectsbecausePHPwillstart..
阅读全文
摘要:试想如下情况。如果你的用户正在执行一个需要非常长的执行时间的操作。他点了执行了之后,浏览器就开始蛋疼地转。如果执行5分钟,你猜他会干啥,显然会觉得什么狗屎垃圾站,这么久都不响应,然后就给关了。当然这个是一个极端的情况。但是我们不乏这种需求,需要用户关闭请求之后也能够做事情。脚本继续执行。再考虑另外一种情况。如果我们现在正在做一个非常精确的事情,用户一旦断开(异常或者是正常)之后必须要执行一些操作,比如他掉线了,我们需要把他的在线状态清空。基于有这样的需求,我找到了ignore_user_abort这个函数。 当调用ignore_user_abort(1)时,就设定了忽略用户退出这个标志...
阅读全文
摘要:偶然机会看到了flush()。知道他的神奇功能可以用在异步传输的comet模式之后,于是我去试了试这个方法。然后翻手册去看了看什么意思。发现它神奇的和ob类函数在一起。有点好奇,先放一放,来说flush的作用。手册上面这样说:flush()maynotbeabletooverridethebufferingschemeofyourwebserverandithasnoeffectonanyclient-sidebufferinginthebrowser.Italsodoesn'taffectPHP'suserspaceoutputbufferingmechanism.Thism
阅读全文
摘要:一、fsocketopen,使用这个的过程看起来更像别的语言的socket编程public function send($request) { /* 请求数据 */ $post_data = $request; $lenght = strlen($post_data); $headers = "{$this-...
阅读全文

浙公网安备 33010602011771号