THINKPHP 10兄弟连李文凯老师视频笔记,10 create方法和令牌

10 create方法和令牌
一般多服务器的时候,我们不向本地文件系统写入数据
专门写到镜像服务器上面

可以将相对应的字段名称写到model,节约I/O

protected $fields=array(); //参考runtime/data/fields

$obj->getPk(); // get primery key
$obj->getFileds(); // get fileds info

curd (create update read del (save))

create:自动获取数据,自动令牌验证,自动映射,自动填充,自动验证
如果开启字段缓存,先匹配,不存在则获取字段

自动令牌:session中一个md5值,form表单中一个令牌,提交之后做匹配
function add()
{
$user = new Model(‘user’);
if($user->create()) //可以去core下的model查看
{
if($user->add())
{
$this->success(‘success’);
}
else
{
$this->error(‘failed’);
//$user->getError();
}
}
}
关闭令牌:8.2.11手册 ‘TOKEN_ON’=>false;
success必须要放到Tpl/default/Public/ 下

单个页面不需要令牌,在模版下面写{__NOTOKEN__}

$this->autoCheckToken();

THINKPHP 08兄弟连李文凯老师视频笔记,08数据库操作

mysql mssql pgsql.oracle

一个php直接return

dsn数据库链接
$dsn = ‘mysql://username:password@localhost:3306/dbname’;
$dsn = array(
‘dbms’=>”,
‘username’=>”,
‘password’=>”,
‘hostname’=>”,
‘database’=>”,
);
$db = new Db($dsn);

Common/convention.php thinkphp所有的默认配置

开启主从数据库

/* 数据库设置 */
‘DB_TYPE’ => ‘mysql’, // 数据库类型
‘DB_HOST’ => ‘localhost,192.168.1.2,192.168.1.3′, // 服务器地址
‘DB_NAME’ => ‘videodemo’, // 数据库名
‘DB_USER’ => ‘root’, // 用户名
‘DB_PWD’ => ”, // 密码
‘DB_PORT’ => 3306, // 端口
‘DB_PREFIX’ => ‘think_’, // 数据库表前缀
‘DB_SUFFIX’ => ”, // 数据库表后缀
‘DB_FIELDTYPE_CHECK’ => false, // 是否进行字段类型检查
‘DB_FIELDS_CACHE’ => true, // 启用字段缓存
‘DB_CHARSET’ => ‘utf8′, // 数据库编码默认采用utf8
‘DB_DEPLOY_TYPE’ => 1, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
‘DB_RW_SEPARATE’ => true, // 数据库读写是否分离 主从式有效
读写时,默认第一台是用来写,其它用来读

大C是用来读取配置文件中的参数

如何设置数据库集群?

THINKPHP 07兄弟连李文凯老师视频笔记,07开启调试模式

Conf/config.php ‘APP_DEBUG’=>true

Common/debug.php
默认是关闭字段缓存
如果想显示单个调试信息(单独的页面执行时间,单独的数据库操作次数…等)

自定义TRACE信息:Common/Tpl/PageTrace.tpl.php
然后在config.php定义 ‘TMPL_TRACE_FILE’=>’testTrace.php’;

在ACTION中自定义TRACE,$this->trace(‘session’,$_SESSION);

dump函数

// 用于代码优化,显示执行时间,占用内存等
debug_start(‘run’);
// many codes
debug_end(‘run’);

halt(‘aaaaaa’) //输出aaa,终端程序执行

// 模型调试
显示数据库操作类当中执行的SQL语句
$user = new Model(‘user’);
$user->find();
echo $user->getLastSql(); // 获取SQL语句

// 日志处理
lib/think/core/log.class.php

开启日志记录:
LOG_RECORD=>TRUE

日志记录方式:记录到system,mail,tcp,file(默认使用file)
手动记录:
log::write($msg=信息,$level=级别,$type=类型,存储位置)
log::save
log::record

THINKPHP 06兄弟连李文凯老师视频笔记,06模板替换与系统常量

06模板替换与系统常量
 
系统常量定义 手册8.1.1
__ROOT__ 代表网站根目录地址
__APP__ 代表当前项目的入门文件地址
__URL__ 代表当前模块地址
__ACTION__ 代表当前操作方法地址
__SELF__ 代表当前URL地址
__CURRENT__ 代表当前模块的模板目录
ACTION_NAME代表操作名称
APP_PATH代表当前项目目录
APP_NAME代表当前项目名称
 
APP_TMPL_PATH 代表当前项目模板目录
 
APP_PUBLIC_PATH 代表当前项目公共文件目录
CACHE_PATH 代表当前项目缓存目录
CONFIG_PATH 代表项目配置文件
COMMON_PATH 代表项目的公共文件目录
 
//thinkphp会自动缓存与表相关的结构信息
DATA_PATH 项目数据文件目录
 
GROUP_NAME
HTML_PATH
IS_APACHE
IS_IIS
IS_CGI
IS_WIN
LANG_SET
LIB_PATH
LOG_PATH
LANG_PATH
MODEL_NAME
MEMORY_LIMIT_ON
MAGIC_QUOTES_GPC
TEMP_PATH
TMPL_PATH
THINK_PATH
THINK_VERSION
TEMPLATE_NAME
TEMPLATE_PATH
VENDOR_PATH 扩展目录
 
//Js image都放在这个文件夹
//根目录下面的PUBLIC文件夹
WEB_PUBLIC_PATH
__PUBLIC__
这些参数可以全部写在模板当中
../Public 当前项目文件夹下的Public目录(注意)
 
自定义模板替换,参考手册5.4,写在home/Conf/config.php
 
‘TMPL_PARSE_STRING’=>array(
‘__GOOGLE__’=>’google.com’,
),
 
模板中 src
写成 __URL__/top
代表的意思是
访问当前模块下的top方法