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 相关文章推荐
初探PHP5
Oct 09 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
初级的用php写的采集程序
Mar 16 PHP
在PHP中使用Sockets 从Usenet中获取文件
Jan 10 PHP
php项目打包方法
Feb 18 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
神经网络理论基础及Python实现详解
2017/12/15 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
利用nohup来开启python文件的方法
2019/01/14 Python
python中count函数简单用法
2020/01/05 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
学生励志演讲稿
2014/01/06 职场文书
应届生找工作求职信
2014/06/24 职场文书
会计实训报告范文
2014/11/04 职场文书
杨善洲电影观后感
2015/06/04 职场文书
任命书格式范文
2015/09/22 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android