tp框架总体学习总结(一)
一、TP框架的下载和安装
Tp框架下载网址:http://www.thinkphp.cn/
在wamp的www目录下创建一个目录tpshop目录
1. 将下载好的包压缩后将文件包里的所有文件复制到创建项目的根目录(tpshop)中
|Application
|Public
|ThinkPHP
|.htaccess
|composer.json
|index.php
|README.md
2.index.php就是我们要创建的项目的入口文件
// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);
//定义项目名称
define('APP_NAME','App');
// 定义项目路径
define('APP_PATH','./Application/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
3.访问localhost/tpshop/index.php/App/Index/index此时项目就创建好了
Common 项目公共文件目录 一般放置项目的公共函数
Conf 项目的配置目录 放置所有的配置文件
Lib 项目类库目录 包括Action和Model子目录
Tpl 项目的模板目录 支持模板主题
Extend 框架的扩展目录
4.错误日志位置
Runtime/logs/ cache 编译目录
5.Tp访问地址参数
http://localhost/tpshop/index.php/APP/Index/index/10;
6.模板标签配置和数据库配置!模板标签默认是{};也可以进行更改、在配置文件中
return array(
/**************定界符***********/
'TMP_L_DELIM' => '<{',
'TMP_R_DELIM' =>'}>',
/**********************/
'DB_TYPE' => '', // 数据库类型
'DB_HOST' => '', // 服务器地址
'DB_NAME' => '', // 数据库名
'DB_USER' => '', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '', // 端口
'DB_PREFIX' => '', // 数据库表前缀
'DB_PARAMS' => array(), // 数据库连接参数
'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志
'DB_FIELDS_CACHE' => true, // 启用字段缓存
'DB_CHARSET' => 'utf8', //
);
7.__ROOT__输出的是项目根目录; /tpshop
__APP__当前项目的路径 /tpshop/index.php
__URL__当前项目的模块 /tpshop/index.php/Index
__ACTION__当前项目的操做的URL地址 /tpshop/index.php/Index/index
__PUBLIC__ 会被替换成当前项目的 Public目录
__SELF__ 会替换成当前的URL
注意:tp中静态资源一定要网站的绝对路径
8.Thinkphp支持四种URL模式
① 普通模式
http://localhost/test/index.php?m=Index&a=index&id=10
获取模块和方法名称
MODULE_NAME
ACTION_NAME
②pathinfo模式
http://laocalhost/test/index.php/Index/index/id/10;
③rewrite模式
http://localhost/test/Index/index/id/10;
使用rewrite模式一定要修改apache配置文件
1)开启 LoadModule rewrite_module modules/mod_write.so
2)修改网站根目录支持rewrite地址重写
<Directory "C://AppServ/www">
Options Indexs FolloewSymLinks
#一定要把multivews去掉
AllowOverride All
Order allow,deny
Allow from all
</Directory>
3)重启apache
4) 把.htaccess放到入口文件的目录下:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
④兼容模式
http://localhost/test/?s=/Index.index/id/10;
9.配置中默认访问模块和方法
'DEFULT_MODULE' => 'Index' //默认模块名称
'DEFAULT_ACTION' => 'index' //默认操作方法
10 读取配置
C(‘参数名称’); //获取config中的设置的参数值
11.显示模板 $this->display(); 分配变量到模板:$this->assign('data',$data);
本模块地址跳转$this->success('ok','index');
跨模块跳转:$this->success('添加成功',U('Login/index'));
重定向 $this->redirect();
12 支持多函数过滤
"DEFAULT_FILIER" => "trim,htmlspecialchars,strip_tags";
tp框架总体学习总结(一)的更多相关文章
- TP框架代码学习 学习记录 3.2.3
文件:think.class.php PHP提供register_shutdown_function()这个函数,能够在脚本终止前回调注册的函数,也就是当 PHP 程序执行完成后执行的函数.regis ...
- tp框架验证信息
今天在这里我们学习一下tp框架里面怎么做验证. 验证又分为两种:静态验证.动态验证 首先,我们还是先做一个html界面,名为add.html.代码如下: <!DOCTYPE html PUBLI ...
- TP框架多上传域上传图片
问题: 学习使用TP框架做电商网站是,添加商品表单需要上传商品logo和商品图片pics,有两个上传域,第一个上传域是logo,只上传一张,第二个上传域是pics,上传多张图片.使用如下代码,总是报错 ...
- TP框架 基础1
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- TP框架---thinkphp基础知识
php框架 发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...
- swoole之 swoole_process 应用于TP框架
swoole_process 实现了多进程的管理,多个进程同时进行采集任务, 公司的框架比较low,用的tp框架,结合tp框架实现多进程的采集 这是swoole好的学习资源 https://segme ...
- DIY.NETORM框架——总体分析
一.故事 近些年一直开发MIS系统,用过PB,VB,C# .如今学了半年的java,早先听人说,.NET和 java一直就是互相借鉴.一起升级.都是为了让程序开发趋于简单,高校,而这不可避免就肯定用 ...
- TP框架基础(一)
[使用框架] 官网:thinkphp.cn. 目前建议使用thinkPHP3.2版本 一.结构目录>Thinkphp文件夹,是thinkPHP的核心文件,里面的内容是不允许我们修改的 > ...
- tp框架实现验证码
今天来看一个小插件. tp框架是怎么实现验证码的. 又到了我们千篇一律的时候了,首先呢,先做一个用来显示的html界面名为:zhuce.html <!DOCTYPE html PUBLIC &q ...
随机推荐
- SpringMVC 拦截器不拦截静态资源的三种处理方式
SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决: 方案一.拦截器中增加针对静 ...
- CSS3 pointer-events属性
在某个项目中,很多元素需要定位在一个地图层上面,这里就要用到很多绝对定位或者相对定位的元素,但是这样的话,这些浮在上面的div或者其它元素一般都会给个宽高,或者relative的元素可以不给宽高,这个 ...
- PHP面向对象的魔术方法.png(不间断更新)
- Python 字符串格式化
Python 字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存 一 ...
- JAVA源码走读(二)二分查找与Arrays类
给数组赋值:通过fill方法. 对数组排序:通过sort方法,按升序.比较数组:通过equals方法比较数组中元素值是否相等.查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找 ...
- 使用Group By注意事项
当查询中存在group by子句时,select列表(或是having子句)中只能存在分组函数,或是出现在group by子句中的字段. 这里说的,"出现在group by子句中的字段&qu ...
- MVC图片验证码
C#类库: public class YZM { public string YZMcode = String.Empty; public byte[] load() { Bitmap bit = , ...
- MVC图片上传
HTML代码: <form method="post" enctype="multipart/form-data"> 上传图片:<input ...
- contains 方法
不管在c#中还是java中,很多类型都有contains方法.它的原理是什么? 看一个java的例子 http://blog.csdn.net/fwwdn/article/details/674684 ...
- [AIR] 打开我的电脑
import flash.filesystem.File; import flash.desktop.NativeProcess; import flash.desktop.NativeProcess ...