仓酷云

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

[学习教程] PHP网站制作之一步步编写PHP的Framework(一)

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

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

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

x
建议大家买一本书,而不光是在网上看一些零碎的资料,一本书毕竟会讲的系统一些,全面一些,而且印刷的书不受电脑的限制,但是建议在看书的时候最好旁边有电脑,这样可以很及时地上机实践。     
        框架这个概念能够一入手下手就吓坏了良多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:59 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
活着的死人 该用户已被删除
板凳
发表于 2015-3-8 19:57:36 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
金色的骷髅 该用户已被删除
地板
发表于 2015-3-16 13:15:58 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
小女巫 该用户已被删除
5#
发表于 2015-3-22 23:08:05 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
飘飘悠悠 该用户已被删除
6#
发表于 2015-3-25 03:44:01 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-28 10:10:06 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
再见西城 该用户已被删除
8#
发表于 2015-3-29 22:11:44 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
老尸 该用户已被删除
9#
发表于 2015-4-1 01:20:24 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
深爱那片海 该用户已被删除
10#
发表于 2015-4-4 04:48:16 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
小魔女 该用户已被删除
11#
发表于 2015-4-5 20:39:03 | 只看该作者
实践是检验自己会不会的真理。
柔情似水 该用户已被删除
12#
发表于 2015-4-8 09:32:39 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
因胸联盟 该用户已被删除
13#
发表于 2015-4-14 08:28:39 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
爱飞 该用户已被删除
14#
发表于 2015-4-16 18:08:31 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
蒙在股里 该用户已被删除
15#
发表于 2015-4-21 19:53:11 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
谁可相欹 该用户已被删除
16#
发表于 2015-4-24 00:54:46 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
海妖 该用户已被删除
17#
发表于 2015-5-12 13:18:12 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
简单生活 该用户已被删除
18#
发表于 2015-6-8 17:07:42 | 只看该作者
实践是检验自己会不会的真理。
admin 该用户已被删除
19#
发表于 2015-6-10 12:01:51 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 01:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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