thinkPHP学习笔记之安装配置篇


Posted in PHP onMarch 05, 2015

国产框架thinkPHP,是一款MVC框架,这个框架最初模拟JAVA的struts框架,使用单一入口文件模拟JAVA的过滤器,使用action来模拟STRUTS的控制器ACTION,所以为什么他的MVC之中,M是model,V是view,而control却是action的原因。

    在3.2.3版本中,control改成了C,也是趋于形式,因为JAVA世界的springMVC开始流行,spring使用的control,不在使用action这种定义,其实action来表示control本身就有一定的误导,control就C嘛,为什么来一个aciton,让人摸不着头脑。

   thinkphp最难理解的是他的访问方式,在官方文档上面讲解有点误导人,按照官文一定出错,是因为官文没有讲清楚!

   thinkphp的安装其实很简单,只要require他的主程序文件,就可以生成一些列的目录,但是URL与他的control、tpl的关系是什么呢?官文说得实在太含糊了,但凡使用过JAVA的人都会被官文忽悠到吐血!

   官文,能否条理清楚点!?

   实际使用过后总结了以下几点:

1,安装thinkphp:

和主程序thinkPHP同目录下建立 admin.php或者其他的名字都可以

<?php

//定义项目名称和路径

define('APP_NAME', '');         //名字时空的时候,就是生成的文件夹前不加前缀

define('APP_PATH', './admin/');//这个是和主程序THINKPHP同目录下生成admin目录的意思

define('APP_DEBUG', true);//开始编辑模式,文件强制编译,不缓存

// 加载框架入口文件

require( "../ThinkPHP/ThinkPHP.php");//主程序入口文件

2,文件目录:

自动生成的文件目录是

common:写函数的地方

conf:配置文件,例如配置数据库连接地址

lang:语言包,国际化

lib:action,model都在这里面,是一个比较重要的地方,和JAVA的lib是JAR包完全不同概念

runtime:运行时的缓存文件

tpl:模板,就是html文件

3,访问方法:

URL:localhost/thinkphp/admin.php?m=Show&a=add

解释:本地/项目目录/刚才建立的单一入口文件?model=类名&action=方法名

意思:进入单一入口文件admin.php中的Show类中的add方法

强调:类名是大写开头,小写会找不到,这个把我害苦了,弄了一下午,原来是只认识大写类名,小写不认识

infopath风格URL:localhost/thinkphp/admin.php/Show/add

解释:和默认的一样,就是没有写出M A

4,写类,写方法:

thinkphp的作者一定是一个喜欢折腾的人,完美主义者,所以才会思考出这种方式来控制程序,整个程序都是以action类为核心,一个action类等于是一个页面,里面的方法就是和这个页面相关的操作,什么增删改查啊,这个很符合国人的思考方式,但是复用性并不高。

写文件:lib/action/ShowAction.class.php

<?php

//Show就是类名,Action只是一个识别辅助,必须写,但是可以调用的时候忽略,记得大写哦,你小写他也给你换成大写开头,让你弄死找不到小写show的模块,m=Show

class ShowAction extends Action {

//add就是action的方法,a=add

    public function add(){

    //输出页面CC,他自动加载默认TPL目录下Show文件下的cc.html文件,这里如果没有cc,就加载方法名字一样的add.html,如果cc.html与add.html都没有就报错

        $this->display('cc');

    }

}

5,写模板:

上面提到了加载模板,现在就写一个:

tpl/Show/cc.html

<html>一个普通HTML文件</html>

以上就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
探讨如何把session存入数据库
Jun 07 PHP
php修改NetBeans默认字体的大小
Jul 02 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
Jun 16 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 #PHP
Php-Redis安装测试笔记
Mar 05 #PHP
PHP中文乱码解决方案
Mar 05 #PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 #PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 #PHP
PHP获取QQ达人QQ信息的方法
Mar 05 #PHP
PHP访问Google Search API的方法
Mar 05 #PHP
You might like
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
PHP children()函数讲解
2019/02/03 PHP
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python解析模块(ConfigParser)使用方法
2013/12/10 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
python实现批量修改文件名代码
2017/09/10 Python
详解python中__name__的意义以及作用
2019/08/07 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
移动通信专业自荐信范文
2013/11/12 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
淘宝店策划方案
2014/06/07 职场文书
小学生民族团结演讲稿
2014/08/27 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
行政主管岗位职责
2015/02/03 职场文书
后勤工作个人总结
2015/02/28 职场文书
现场施工员岗位职责
2015/04/11 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python