大体看了一下,觉得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. Android教材 | 第三章 Android界面事件处理(一)—— 杰瑞教育原创教材试读

      前  言 JRedu Android应用开发中,除了界面编程外,另一个重要的内容就是组件的事件处理.在Android系统中,存在多种界面事件,比如触摸事件.按键事件.点击事件等.在用户交互过程中, ...

  2. Windows平台下使用Beyond Compare作为GIT默认的比对与合并工具

    在Windows平台使用GUI习惯了,因此在CMD命令下反而感到不适 特别是在使用GIT时,尤其明显(这主要是GIT在工作中已经不可或缺) 使用GIT最常用的功能就是提交,添加,比较差异和合并分支,特 ...

  3. [Functional Programming] Introduction to State, thinking in State

    Recently, I am learning Working with ADT. Got some extra thought about State Monad. Basiclly how to ...

  4. OpenGL ES 3.0之Shading Language(八)

    每个OpenGL ES 3.0程序要求一个顶点着色器和一个片段着色器去渲染一个图形.着色器概念是API 的中心,本篇将介绍着色器语言部分包含下面几项 1.变量和变量类型 2.矢量和矩阵创建及选择 3. ...

  5. SpringBoot添加对Mybatis分页插件PageHelper的支持

    1.修改maven配置文件pom.xml,添加对pageHelper的支持: <!--pagehelper--> <dependency> <groupId>com ...

  6. 牛客网-《剑指offer》-矩形覆盖

    题目:http://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6 C++ class Solution { public: in ...

  7. JAVA WEB 解决编码问题的filter

    最近使用Springmvc,GET传输参数的时候,经常出错误,下面介绍添加一个Filter的方法,可以解决这个问题.既支持POST方式也支持GET方式. 首先写一个Filter package com ...

  8. kibana 显示 @timestamp 时间问题(utc or browser当前时间)自动转换显示

    https://github.com/elasticsearch/kibana/issues/95

  9. MySQL排序:SELECT ORDER BY

    SELECT 和ORDER BY结合进行排序: products表例如以下: a 按产品名称列进行排序: b 按多个列进行排序,默认排序顺序为升序: c 指定排序方向,即指定为降序: d 对多个列进行 ...

  10. Vim 中如何去掉 ^M 字符

    基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即win每行结尾为\r\n,而linux只有一个\n如果win下的文档上传到l ...