仓酷云
标题:
PHP网站制作之一步步编写PHP的Framework(一)
[打印本页]
作者:
精灵巫婆
时间:
2015-2-3 23:29
标题:
PHP网站制作之一步步编写PHP的Framework(一)
建议大家买一本书,而不光是在网上看一些零碎的资料,一本书毕竟会讲的系统一些,全面一些,而且印刷的书不受电脑的限制,但是建议在看书的时候最好旁边有电脑,这样可以很及时地上机实践。
框架这个概念能够一入手下手就吓坏了良多PHP的Coder,其实你只需把一个Framework想分明了,其实也没啥,只是他人功效更庞杂,细节思索的更多,代码质量更高。
框架最主要的一个文件为进口文件,根基上相当于一个总控开关,一切的恳求都需求经由这个文件:
1 <?php 2 define('APP_PATH',dirname(__FILE__).'/..'); //使用途径 3 include APP_PATH.'/Library/Toper/Core/FrontController.class.php';//导入前端掌握器 4 $frontController = Tp_FrontController::getInstance(); 5 $frontController->run(); 这个文件可以只做一件工作,那就是将掌握权交给框架。
人人都晓得,一个MVC的使用,一切的恳求都必需经由掌握器,所以上面咱们来编写一个对照复杂的掌握器:
1 <?php 2 class Test_IndexController extends Tp_Controller { 3 public function indexAction() { 4 echo 'a'; 5 } 6 } 这个类只需求承继自Tp_Controller便可,Tp_Controller是Toper的掌握器的基类,只需你承继它,你就能够利用框架帮你写好的一系列办法,如许就能够大大削减你本人的任务量了,而且依照标准,函数名也是成心义的,如方才写的这个函数代表的意义就是会见Test模块IndexContrller这个掌握器上面的index这个Action。
那末若何利用模子呢?实践上十分复杂。
1 <?php 2 class Test_IndexModel extends Tp_Model { 3 public function test() { 4 return 'test'; 5 } 6 } 道理和掌握器一样,也是承继框架的类,然后自界说办法,这个中央的办法名没无限制,可以随便。
那末编写模子以后怎样在掌握器中挪用呢,其实办法就是在掌握器中实例化这个模子类,然后挪用响应的办法便可,所以修正方才这个掌握器的类:
1 <?php 2 class Test_IndexController extends Tp_Controller { 3 public function indexAction() { 4 $model = new Test_IndexModel(); 5 echo $model->test(); 6 } 7 }
为何没有include语句?
那是由于框架帮你做完了这一切,固然,框架不是全能的,当你对照熟习以后,也能够选择不利用主动导入。
方才咱们所做的一切都没有View,那末怎样编写View呢,实践上就是一个HTML文件,框架在View这一层通常为完成标签库,标签库帮你完成一些本来需求用PHP代码才干完成的工作,好比轮回遍历,没有标签库能够你就只能在这个View的文件中利用<?php foreach(.....) ?>,如许关于代码分别很欠好。
假如你对标签库没有概念,那末你直接看上面的代码吧!
1 <html> 2 <head> 3 <title>test</title> 4 </head> 5 <body> 6 <print name = "Hello world!" type = "str" /> 7 </body> 8 </html> 这是一段没有甚么难度的代码,独一的难度能够就是这个print标签,这个标签是框架界说的,它的功效很复杂,就是打印一个字符串,你能够感觉如许没甚么意义,由于我利用PHP代码也能够很等闲的完成这个功效,然而你想像一下一个做前真个为何还需求懂PHP呢,假如利用标签库,那末前端开辟人员就能够像利用HTML标签一样操作数据了。
咱们晓得一切的恳求都必需要经由过程掌握器,所之外部是没法直接会见这个视图文件的,所以又需求修正掌握器的代码了!!!
1 <?php 2 class Test_IndexController extends Tp_Controller { 3 public function indexAction() { 4 $model = new Test_IndexModel(); 5 echo $model->test(); 6 $this->_display('Test.test'); 7 } 8 } 假如你学过smarty,你能够对display办法很熟习,实践上这个函数的功效就是显示一个模板文件!!!
好了,一个根基的MVC使用就搭起来了,不是很难吧!!!
若何检查后果呢,有两种体例:
1.CGI:
翻开阅读器,阅读器会见时,假如您的域名是:localhost/testframework,那末您可使用localhost/testframework/Public/index.php/Test/Index/index来会见,假如您设置了虚拟主机,如www.a.com,那末只需求利用www.a.com/Test/Index/index就能够会见了;
2.CLI:
经由过程号令行直接履行PHP剧本时,在Public目次上面利用php index.php m:test c:Index a:index。
方才是利用框架完成了一个MVC的使用,那末怎样不利用框架来构建一个MVC使用呢?
下次再讲,请持续存眷!!!!
培训的第三阶段,开始接触MYSQL,设计数据库,学习PHP如何去连接MYSQL数据库。对于MYSQL,我并不陌生,因为学校开设了Linux系统的课程,对于数据库的操作。
作者:
再现理想
时间:
2015-2-27 04:24
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者:
活着的死人
时间:
2015-3-8 19:57
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年 具体的记不清啦,囧。
作者:
金色的骷髅
时间:
2015-3-16 13:15
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者:
小女巫
时间:
2015-3-22 23:08
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者:
飘飘悠悠
时间:
2015-3-25 03:44
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者:
愤怒的大鸟
时间:
2015-3-28 10:10
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
作者:
再见西城
时间:
2015-3-29 22:11
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者:
老尸
时间:
2015-4-1 01:20
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者:
深爱那片海
时间:
2015-4-4 04:48
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者:
小魔女
时间:
2015-4-5 20:39
实践是检验自己会不会的真理。
作者:
柔情似水
时间:
2015-4-8 09:32
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
作者:
因胸联盟
时间:
2015-4-14 08:28
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者:
爱飞
时间:
2015-4-16 18:08
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者:
蒙在股里
时间:
2015-4-21 19:53
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者:
谁可相欹
时间:
2015-4-24 00:54
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者:
海妖
时间:
2015-5-12 13:18
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者:
简单生活
时间:
2015-6-8 17:07
实践是检验自己会不会的真理。
作者:
admin
时间:
2015-6-10 12:01
兴趣是最好的老师,百度是最好的词典。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2