ThinkPHP学习(一)
大体看了一下,觉得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学习(一)的更多相关文章
- ThinkPHP学习总结
ThinkPHP学习总结 网站开发使用的thinkPHP5.0在此总结备查 MVC关系功能图 一.Thinkphp开发规范 l 类 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并 ...
- ThinkPhp学习13
原文:ThinkPhp学习13 简单登录验证 创建Login类 <?php class LoginAction extends Action { function index(){ $this- ...
- ThinkPhp学习12
原文:ThinkPhp学习12 二.输出模板内容 (重点) a.display 1.display中没有参数 $this->display(); 2.可以带参数 $this ...
- ThinkPhp学习11
原文:ThinkPhp学习11 一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[i ...
- ThinkPhp学习10
原文:ThinkPhp学习10 查询操作 Action模块 User下的search public function search(){ //判断username是否已经传入,且不为空 if(isse ...
- ThinkPhp学习07
原文:ThinkPhp学习07 简单CRUD操作 public function show() { $m=M('User'); // $arr=$m->find(2); //查找id=2的数据, ...
- ThinkPhp学习08
原文:ThinkPhp学习08 一.普通查询方式 a.字符串 $arr=$m->where("sex=0 and username='gege'")->find(); ...
- ThinkPhp学习09
原文:ThinkPhp学习09 三.区间查询 $data['id']=array(array('gt',4),array('lt',10));//默认关系是 and 的关系 //SELECT * FR ...
- ThinkPhp学习06
原文:ThinkPhp学习06 一.简单学习修改用户信息模块 1.编写UserAction.class.php <?php class UserAction extends Action{ pu ...
- ThinkPhp学习05
原文:ThinkPhp学习05 一.ThinkPHP 3 的CURD介绍 (了解)二.ThinkPHP 3 读取数据 (重点) 对数据的读取 Read $m=new Model('User') ...
随机推荐
- C#,深入浅出全接触(一)
一.什么是 C#? C# 是由Microsoft开发的一种新型编程语言,由于它是从C和C++ 中派生出来的,因此具有C++的功能.同时,由于是Microsoft公司的产品,它又同 VB一样简单.对于w ...
- zTree怎么判断树有节点展开或者完全关闭的
树节点有个open属性,引用API: 记录 treeNode 节点的 展开 / 折叠 状态.1.初始化节点数据时,如果设定 treeNode.open = true,则会直接展开此节点2.叶子节点 t ...
- 【Spark】SparkStreaming-加载外部配置文件
SparkStreaming-加载外部配置文件 spark加载配置文件_百度搜索 Spark加载外部配置文件 - CSDN博客 spark读取配置文件中的配置 - CSDN博客 spark加载prop ...
- 【流处理】Kafka Stream-Spark Streaming-Storm流式计算框架比较选型
Kafka Stream-Spark Streaming-Storm流式计算框架比较选型 elasticsearch-head Elasticsearch-sql client NLPchina/el ...
- 如何基于TensorFlow使用LSTM和CNN实现时序分类任务
https://www.jiqizhixin.com/articles/2017-09-12-5 By 蒋思源2017年9月12日 09:54 时序数据经常出现在很多领域中,如金融.信号处理.语音识别 ...
- ASP.NET MVC 重命名[命名空间]而导致的错误及发现的ASP.NET MVC Bug一枚
使用VS2012新建了一个Asp.net mvc5的项目,并把项目的命名空间名称更改了(Src更改为UXXXXX),然后就导致了以下错误 刚开始以后是项目的属性中的命名空间没有更改过来的问题,但我在重 ...
- PHPCMS源码分析
PHPCMS 一.模版引擎 如:调用单页面index.php?m=content&c=index&a=lists&catid=9.1.先获取到模版变量的值$template_l ...
- C#.NET常见问题(FAQ)-如何把定义存放类实例的数组
数组存放的可以是普通的int,double,string类型,也可以是自定义的类的实例 如果数组长度未知,可以用list对象存放 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: h ...
- 【转】java并发编程系列之ReadWriteLock读写锁的使用
前面我们讲解了Lock的使用,下面我们来讲解一下ReadWriteLock锁的使用,顾明思义,读写锁在读的时候,上读锁,在写的时候,上写锁,这样就很巧妙的解决synchronized的一个性能问题:读 ...
- iOS 中基础字符判断函数收集(如判断大小写、数字等)
函数:isdigit 用法:#include 功能:判断字符c是否为数字 说明:当c为数字0-9时,返回非零值,否则返回零. 函数:islower 用法:#include 功能:判断字符c是否为小写英 ...