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表:


 CREATE TABLE think_session (
       session_id varchar(255) NOT NULL,
       session_expire int(11) NOT NULL,
       session_data blob,
       UNIQUE KEY `session_id` (`session_id`)
     );
(3)在配置文件中指明数据表名称:SESSION_TABLE,其值为“think_session”,即上一步创建的session数据表。


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)配置文件中添加以下配置项:


  1. 'TMPL_ENGINE_TYPE'=>'Smarty',
  2. 'TMPL_ENGINE_CONFIG'=>array(
  3. 'plugins_dir'=>'./Application/Smarty/Plugins/',
  4. ),


(2)在模板中使用Smarty模板即可,控制器方法同TP模板引擎的方法。

---------------------------------------------

分页类扩展:

1. 在模板视图文件中引入Bootstrap类库;

2. 在Application/目录下,新建Library目录;在Library目录,新建 Page.class.php类文件,该类继承自 Think\Page 类;

3. 在Page类中修改 show( ) 方法,实现分页链接的Bootstrap样式效果;

4. 在控制器中使用自定义的Page类即可。

#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1.   2. 3. 实例化传入方式设置,或动态设置
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1. public function store(){ $newsTable=M('news'); // 获取POST数据 $data = I('post.'); //上传文件 //1.创建文件上传类对象 $upload = new \Think\Uploa...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1、 2、 3、
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
二题 三
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1. public function store() { $newsModel = M('news'); //实例化news对象 $map = I('post'); $upload = new Upload();//实例化上传类 $upload->maxS...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1. 2. 3.
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1、 public function store() { $news=M('news'); // 获取POST数据 $data = I('post.'); // 上传文件 // 1. 创建...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1. public function store() { $newsModel = M('news'); $map = I('post.'); $upload = new \Think\Upload();//实例化上传类 $upload->maxSize ...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
第一题 第二题 第三题
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
(1) // 获取POST数据 $data = I('post.'); //上传文件 //1、创建对象 $upload= new Upload(); //2、设置参数(设置文件保存目录) $upload->roo...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1. 2. 3.
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
    1.               2.            3   &...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1、 2、 3、
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1 2 3
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1. 2. 3.
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
public function store(){ // head("Content-Type:text/html; charset=utf-8"); //1.获取上传的数据 $toInsertdata = I('post.')...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
 <?php namespace Admin\Controller; use Think\Controller; use Think\Upload; class NewsController exten...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
<?php namespace Admin\Controller; use Think\Controller; use Think\Upload; class NewsController extends Controller {     p...
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1、/admin/news/store/ 2./home/news/paging代码 3.验证码改善(代码)
#ThinkPHP框架开发# 的任务 task6:Web功能支持 有了新的提交。
1.<?php namespace Admin\Controller; use Think\Controller; use Think\Upload; class NewsController extends Controller {    ...