仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1914|回复: 20
打印 上一主题 下一主题

[学习教程] PHP编程:一步步编写PHP的Framework(九)

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:22:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
培训的第二阶段,开始了PHP语言语法结构和应用的学习。     
         之前讲到过关于异常的处置机制,最好可以自界说异常,假如debug翻开,那末显示详细的调试信息,假如debug封闭,那末将异常纪录到日记,然后跳转到毛病页,这节课我就次要来说一下这个异常处置机制。
         如今咱们界说一个异常的基类,在Toper中为Tp_Exception,在这儿,我就直接叫BaseException吧,那BaseException.php一定起首是有一个架子的:
1 <?php 2 class BaseException extends Exception { 3     public function printStack() { 4          5     } 6     public function __toString() { 7      8     } 9 }   
        最基本的,这个类一定要承继自Exception,然后我需求完成__toString办法和别的一个自界说的printStack办法,完成__toString办法的缘由是常常咱们会直接throw new Exception() 这类体例抛出异常,它会直接挪用__toString()办法,挪用printStack办法就是输入仓库信息。
        说一下思绪,起首这两个办法咱们都需求剖断是不是是debug形式,假如是debug形式,那末很easy,直接输入便可,不然,跳转到毛病页,然而跳转之前,必需要将异常信息写入到日记文件中去。
        能够人人注重到,不论是__toString仍是printStack假如debug封闭,都需求纪录调试信息到日记文件,所以咱们需求起首编写一个帮助函数:
1 protected function _toLogFile($str) { 2         file_put_contents(APP_PATH . '/log',$str,FILE_APPEND); 3     }          这儿,为了简捷,我就直接利用file_put_contents了,这个函数功效很壮大啊,我出格喜好~~
   
          因为到今朝还没有讲URL重定向,转发恳求等,临时就直接显示毛病页,所以又需求有一个帮助函数:
1 protected function _outputErrorPage() { 2         header("content-type:text/html"); 3         echo file_get_contents(APP_PATH . '/error.html'); 4     }          由于请求代码复杂,所以毛病页和日记文件都直接写逝世到项目根目次中,假如你有乐趣,可以本人试着将途径写在设置装备摆设文件中,这个也不是很难的。
   
          因为帮助函数已写完,所以其他两个函数就很easy了:
1 public function printStack() { 2         if(true === C('debug')) { 3             echo parent::getTraceAsString(); 4         } else { 5             $this->_toLogFile(parent::getTraceAsString()); 6             $this->_outputErrorPage(); 7         } 8     }   
1 public function __toString() { 2         if(true !== C('debug')) { 3             $this->_toLogFile(parent::getTraceAsString()); 4             $this->_outputErrorPage(); 5             exit(); 6         } 7         return parent::__toString(); 8     }   
           固然,因为__toString要前往字符串,而一旦throw一个异常,就会直接显示出来异常信息,为了在debug封闭以后不在页面显示异常信息,所以就直接在此处exit了,固然,我今朝没有想到一个更好的举措,所以建议利用printStack来做。
          我这个异常类就是用来抛砖引玉的,所以假如你有甚么好的办法,请和我多多交换,相互进修,相互生长。
          固然,如今只是界说了一个异常处置的基类,前面会写良多关于异常的子类,真正利用的时分是挪用其子类的。
学校并没有那么多的时间可以让我们在实际开发上面。
第二个灵魂 该用户已被删除
沙发
发表于 2015-2-16 00:23:16 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
爱飞 该用户已被删除
板凳
发表于 2015-2-21 20:55:47 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
因胸联盟 该用户已被删除
地板
发表于 2015-3-6 21:32:13 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
简单生活 该用户已被删除
5#
发表于 2015-3-11 00:25:58 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
若相依 该用户已被删除
6#
发表于 2015-3-11 20:30:27 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
兰色精灵 该用户已被删除
7#
发表于 2015-3-19 11:36:17 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
莫相离 该用户已被删除
8#
发表于 2015-3-19 15:59:40 | 只看该作者
做为1门年轻的语言,php一直很努力。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-22 20:22:08 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
谁可相欹 该用户已被删除
10#
发表于 2015-4-1 09:10:54 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
飘飘悠悠 该用户已被删除
11#
发表于 2015-4-10 01:12:41 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
飘灵儿 该用户已被删除
12#
发表于 2015-4-14 16:48:11 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
13#
发表于 2015-4-16 16:11:41 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
只想知道 该用户已被删除
14#
发表于 2015-4-18 09:22:00 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
柔情似水 该用户已被删除
15#
发表于 2015-4-21 20:49:02 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
变相怪杰 该用户已被删除
16#
发表于 2015-4-26 01:41:43 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
金色的骷髅 该用户已被删除
17#
发表于 2015-5-6 20:14:58 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
小女巫 该用户已被删除
18#
发表于 2015-5-11 22:51:54 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
再现理想 该用户已被删除
19#
发表于 2015-5-12 08:53:38 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
透明 该用户已被删除
20#
发表于 2015-6-11 20:44:36 | 只看该作者
爱上php,他也会爱上你。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-10 12:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表