ThinkPHP框架开发
2016-9-4 12:27扩展ThinkPHP课堂笔记
----------------------------------------
类库扩展:
1. TP内置自动加载机制扩展:
(1)在ThinkPHP/Library/Think目录或Org目录下,编写自定义类;只要定义好合适的命名空间,即可实现自动加载。
(2)在ThinkPHP/Library/Vendor目录下,编写自定义类;需要在使用类之前使用 vendor ( ) 函数引入自定义类,才可以使用。
(3)在Application目录下创建的自定义类,只要定义好合适的命名空间,也可以自动加载。
2. Composer自动加载机制:
(1)在index.php入口文件中,引入Composer自动加载文件(vendor/autoload.php);注意在ThinkPHP代码之前引入;
(2)使用Composer下载所需要使用的扩展库;
(3)使用Composer类时,直接使用含命名空间的类全名即可。
-----------------------------------------
Session扩展:
1. 设置session驱动为数据库:
(1)在配置文件中修改配置项:SESSION_TYPE ,其值修改为 “Mysqli”(注意:不要修改为Db,Db类仍然使用传统的mysql_***相关函数,在php7.0以上版本不可用)。
(2)在数据库中添加think_session表:
session_id varchar(255) NOT NULL,
session_expire int(11) NOT NULL,
session_data blob,
UNIQUE KEY `session_id` (`session_id`)
);
2. 设置session过期时间:
(1)设置session配置参数:
'SESSION_OPTIONS' => array(
'expire' => 3600, // 1个小时
)
(2)设置cookie配置参数:'COOKIE_EXPIRE' => 0, // Cookie有效期,为0表示永不过期
----------------------------------------------
模板引擎扩展:
1. 模板引擎扩展的基本方法:
(1)使用Composer下载待使用的模板引擎,如 jenssegers/blade ;
(2)在 Think\Template\Driver 目录下,编写引擎使用类,该类中只有一个方法 fetch( ),表示获取模板的内容;
(3)修改配置文件配置项:'TMPL_ENGINE_TYPE'=>'自定义模板引擎类名', 即上一步所定义的类名称。
2. 在TP中使用Smarty模板:
(1)配置文件中添加以下配置项:
-
'TMPL_ENGINE_TYPE'=>'Smarty',
-
'TMPL_ENGINE_CONFIG'=>array(
-
'plugins_dir'=>'./Application/Smarty/Plugins/',
-
),
(2)在模板中使用Smarty模板即可,控制器方法同TP模板引擎的方法。
---------------------------------------------
分页类扩展:
1. 在模板视图文件中引入Bootstrap类库;
2. 在Application/目录下,新建Library目录;在Library目录,新建 Page.class.php类文件,该类继承自 Think\Page 类;
3. 在Page类中修改 show( ) 方法,实现分页链接的Bootstrap样式效果;
4. 在控制器中使用自定义的Page类即可。
1. 2. 3. 实例化传入方式设置,或动态设置
1. public function store(){ $newsTable=M('news'); // 获取POST数据 $data = I('post.'); //上传文件 //1.创建文件上传类对象 $upload = new \Think\Uploa...
1、 2、 3、
二题 三
1. public function store() { $newsModel = M('news'); //实例化news对象 $map = I('post'); $upload = new Upload();//实例化上传类 $upload->maxS...
1. 2. 3.
1、 public function store() { $news=M('news'); // 获取POST数据 $data = I('post.'); // 上传文件 // 1. 创建...
1. public function store() { $newsModel = M('news'); $map = I('post.'); $upload = new \Think\Upload();//实例化上传类 $upload->maxSize ...
第一题 第二题 第三题
(1) // 获取POST数据 $data = I('post.'); //上传文件 //1、创建对象 $upload= new Upload(); //2、设置参数(设置文件保存目录) $upload->roo...
1. 2. 3.
1. 2. 3 &...
1、 2、 3、
1 2 3
1. 2. 3.
public function store(){ // head("Content-Type:text/html; charset=utf-8"); //1.获取上传的数据 $toInsertdata = I('post.')...
<?php namespace Admin\Controller; use Think\Controller; use Think\Upload; class NewsController exten...
<?php namespace Admin\Controller; use Think\Controller; use Think\Upload; class NewsController extends Controller { p...
1、/admin/news/store/ 2./home/news/paging代码 3.验证码改善(代码)
1.<?php namespace Admin\Controller; use Think\Controller; use Think\Upload; class NewsController extends Controller { ...