大体看了一下,觉得ThinkPHP真是一个不错的框架。我个人认为使用框架最大的好处是:它给你做了很多事情,而且做得很好!

ThinkPHP目前版本到了3.2,没敢用最新的,使用3.1作为学习目标,因为资料查阅起来相对多一些  :-)

现在在ThinkPHP基础上还了OneThink、WeiPHP,都是很不错的开源框架,谢谢作者的辛苦付出!

-------------------------------------------华丽的开始分割线------------------------------------------------------------------

言归正传,开始学习。

首先到官网下载需要的包:

http://www.thinkphp.cn/

解压到网站目录下,然后在网站根目录下建立一个简单的入口文件:index.php:

<?php
//定义项目名称和路径
define('APP_NAME', 'App');
define('APP_PATH', './App/');
define('APP_DEBUG',TRUE);
// 加载框架入口文件
require( "./ThinkPHP/ThinkPHP.php");

详细的介绍请参考官方文档,在此不再抄一遍了。

然后在浏览器中访问:
http://localhost

哇,看到了吗?竟然运行起来了!

:)
欢迎使用 ThinkPHP!

就这么简单到没有朋友!

运行后系统会自动给你生成各种目录及缺省的框架文件,我喜欢  :-)

好吧,我们要故意做得复杂一点,将项目建立前台和后台:

在App/Conf中的config.php中配置一下:

<?php
return array(
//'配置项'=>'配置值' 'URL_MODEL' =>3, // 如果你的环境不支持PATHINFO 请设置为3
'DB_TYPE' => 'mysql',
'DB_HOST' => 'localhost',
'DB_NAME' => 'studyphp',
'DB_USER' => 'root',
'DB_PWD' => '',
'DB_PORT' => '3306',
'DB_PREFIX' => 'think_',
'APP_AUTOLOAD_PATH' => '@.TagLib',
'APP_GROUP_LIST' => 'Home,Admin',
'DEFAULT_GROUP' => 'Home',
'APP_GROUP_MODE' => 1,
'SHOW_PAGE_TRACE' => 1//显示调试信息
);
?>

在App下建立Modules目录,然后在Modules下依次建立Home,在Home中依次建立:Action、Model、Tpl目录。然后在Action中建立一个索引文件:

IndexAction.class.php:

<?php

class IndexAction extends Action{

    public function index(){
echo 'Hello,ThinkPHP !';
}
}

好了,再访问http://localhost:

Hello,ThinkPHP !

我们的项目已经可以分组管理了!当然,Admin组的建立同Home,这里不再描述。

什么?模板输出的太简单?好吧,我们搞个漂亮点的显示,在Tpl中建立Index目录,在Index目录下建立一个index.html文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ThinkPHP</title>
</head>
<body>
<div class="main">
<h2>{$hello}</h2>
</div>
</body>
</html>

这回满意了?

恩,我承认,我只是将要输出的字体简单处理了一下:

 <h2>{$hello}</h2>

来,修改一下后台(有后台,是不是腰板比较硬?说的是腰板噢)

<?php

class IndexAction extends Action{

    public function index(){
$hello='Hello,ThinkPHP !';
$this->assign('hello',$hello);
$this->display();
}
}

这回算这个示例算是比较完整了,我们使用了框架,程序分了组,设置了输出模板,一个简单的从后台到前台的系统就建立起来了。

等等,上面配置的数据库干嘛?后面会用得上。

-------------------------------------------华丽的结束分割线------------------------------------------------------------------

且听下回分解!

ThinkPHP学习(一)的更多相关文章

  1. ThinkPHP学习总结

    ThinkPHP学习总结 网站开发使用的thinkPHP5.0在此总结备查 MVC关系功能图 一.Thinkphp开发规范 l 类 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并 ...

  2. ThinkPhp学习13

    原文:ThinkPhp学习13 简单登录验证 创建Login类 <?php class LoginAction extends Action { function index(){ $this- ...

  3. ThinkPhp学习12

    原文:ThinkPhp学习12 二.输出模板内容      (重点) a.display 1.display中没有参数    $this->display(); 2.可以带参数    $this ...

  4. ThinkPhp学习11

    原文:ThinkPhp学习11 一.模板的使用        (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[i ...

  5. ThinkPhp学习10

    原文:ThinkPhp学习10 查询操作 Action模块 User下的search public function search(){ //判断username是否已经传入,且不为空 if(isse ...

  6. ThinkPhp学习07

    原文:ThinkPhp学习07 简单CRUD操作 public function show() { $m=M('User'); // $arr=$m->find(2); //查找id=2的数据, ...

  7. ThinkPhp学习08

    原文:ThinkPhp学习08 一.普通查询方式 a.字符串 $arr=$m->where("sex=0 and username='gege'")->find(); ...

  8. ThinkPhp学习09

    原文:ThinkPhp学习09 三.区间查询 $data['id']=array(array('gt',4),array('lt',10));//默认关系是 and 的关系 //SELECT * FR ...

  9. ThinkPhp学习06

    原文:ThinkPhp学习06 一.简单学习修改用户信息模块 1.编写UserAction.class.php <?php class UserAction extends Action{ pu ...

  10. ThinkPhp学习05

    原文:ThinkPhp学习05 一.ThinkPHP 3 的CURD介绍  (了解)二.ThinkPHP 3 读取数据    (重点) 对数据的读取 Read $m=new Model('User') ...

随机推荐

  1. mybatis xml mapper 文件中 if-else 写法

    mybaits 中没有else要用chose when otherwise 代替 范例一 <!--批量插入用户--> <insert id="insertBusinessU ...

  2. java字符编码转换

    在开发的过程中.字符编码经常令我们头痛.经常会出现各种各样的乱码.以下就介绍java的编码转换和常见的乱码是使用什么样的编码去读取的: 先看一张图片: watermark/2/text/aHR0cDo ...

  3. 为Subline Text 3 添加支持ini文件语法高亮

    转: http://lancelot.blog.51cto.com/393579/1783653 在Subline text 官网下载了Subline text 3 .不过发现没有对ini格式文件的语 ...

  4. unity3d内存管理坑爹之处

    Resources.UnloadUnusedAssets();会卸载没有引用的资源,切场景也会自动清理 但是注意,如果不调,是不会自动清理的,比如不断的用www加载图片资源,即使没有引用,也一样在内存 ...

  5. vue版本冲突解决办法

    ERROR in Vue packages version mismatch: vue@2.1.4 vue-template-compiler@2.1.5 This may cause things ...

  6. mac 苹果鼠标 magic mouse2 当触摸代替点击当触摸板教程

    本文解决 mac 苹果鼠标 magic mouse2 触摸代替点击,鼠标当触摸板教程 买了magic mouse2之后,发现官方不推荐使用触摸代替点击,我感觉很不爽,这不就是一个触摸板嘛,于是各种搜软 ...

  7. HDU 4059 The Boss on Mars(容斥原理 + 四次方求和)

    传送门 The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  8. FireDAC中的SQLite(一)

    Windows client software,FireDAC supports two SQLite library linking modes: Static linking: the x86 s ...

  9. 入门GTD时间管理系统必读

    让我们从什么时间管理开始.什么是时间管理呢?嗯,时间管理就是管理时间.可是,时间怎么能够管理呢? 其实我们管理地并不是时间,而是我们做的事.我们将事情分配到合适的时间段中,在有限的精力中完成它们,得到 ...

  10. SWIFT学习笔记05

    1.Swift 无需写break,所以不会发生这样的贯穿(fallthrough)的情况.2.//用不到变量名,可用"_"替换 for _ in 1...power { answe ...