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 ...
随机推荐
- Tomcat启动脚本
记录一个比较好的tomcat启动脚本,截取<OneinStack>,修改如下两个参数即可用. 使用之前修改下面2个参数: #Location of JAVA_HOME (bin files ...
- cookie 和session 的区别:
1.cookie数据存放在客户的浏览器上,session数据放在服务器上.2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session.3. ...
- React Native 网络请求
如下面的Code,分别介绍了GET,POST,以及使用XMLHttpRequest的Get请求. import React, { Component } from 'react'; import { ...
- # C/C++的笔试题目
p,li { white-space: pre-wrap } # C/C++的笔试题目 + include<> 和include"" 的区别 + sizeof操作符与字 ...
- Linux----LVM扩容磁盘空间
Linux系统LVM扩容一个分区相对于Windows来说没有那么直观,但是熟悉命令后,扩容起来也是蛮方便的. 扩容场景如下: [root@rhel06 ~]# df -Th Filesystem Ty ...
- ecstore-lnmp环境下crontab不执行原因
因为lnmp.org默认禁止了proc_open函数,需要开启 开启后 lnmp restart ==== contab还是用crontab -e好,有些用www用户的似乎执行不了
- 显示intent和隐示intent有什么区别
显式Intent定义:对于明确指出了目标组件名称的Intent,我们称之为显式Intent. 隐式Intent定义:对于没有明确指出目标组件名称的Intent,则称之为隐式Intent. 说明:And ...
- javascript基础一语法和常用函数
1语法 1.1引入的方式 在html中引入javascript,使用script标签,在html页面中包括外部引入js方式和在html内部引入js方式.如下两种: 方式一: <script ty ...
- MyXls: 导出Excel的各种设置
MyXls是一个操作Excel的开源类库,支持设置字体.列宽.行高(由BOSSMA实现).合并单元格.边框.背景颜色.数据类型.自动换行.对齐方式等,通过众多项目的使用表现,证明MyXls对于创建简单 ...
- 【学】jQuery的源码思路6——增加each,animaion,ajax以及插件机制
each() 插件机制 animation ajax //each() //这里第一个参数指定将this指向每次循环到的那个元素身上,而第三个参数element其实就是this本身所以和第一个参数是一 ...