thinkphp发布3.2版本之后,也发布了一个简单的内容管理系统onthink,这样有助于理解thinkphp3.2的使用:

一、首先最关键的一点是thinkphp3.2中加入了命名空间的使用

什么是命名空间 命名空间相当于是定义了一个路径,方便其它的文件来引入它

定义namespace   引用use

二、thinkphp3.2也更改了项目路径,以模块/控制器/动作来访问,是以前版本中分组模式的扩展。

三、onethink中支持以插件形式进行开发扩展,插件就是网站上的小功能模块,可以单独列出来,勾子是程序中可以挂载插件的地方,

这样实现小功能和主程序分离,大大提高了扩展性,只要插件满足一定形式,就可以挂载到指定勾子上,谁都可以去编写插件,到程序中只要挂载就可以用。

onethink的插件中addons目录中,在安装插件时,把插件文件夹放到addons中(文件夹名一定要规范),后台刷新就可以看到该插件的安装,安装后就可以使用。

下面就从前台模块开始分析

四、前台模块

1、首先是入口文件IndexControl.class.php,因为tp3.2支持的是多模块的形式,所以如果需要多入口文件需要在多入口文件处绑定模块,这样在访问这个入口文件时就会访问到绑定的模块.

需要注意的是,一旦绑定了模块,那么访问时就不能加上模块名,只需要控制器/动作就可以了。

2、在首页面home/index/index控制器中 用到了D()方法来实例化自定义的模型,注意如果只是进行crud操作,并没有自定义模型其它操作,用M()就可以。

模型概念是和数据库中的数据对应,一个表可以对应一个模型,把数据表抽象出来,形成一个模型,可以非常方便操作(数据库操作类只是为模型服务),而如果有较为复杂的逻辑实现(比如不只是简单的取出分类,而是需要以树状取出),那我们就需要自定义模型,继承模型类并添加一些方法,实例化时用D()。

D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化系统的\Think\Model基类,同时对于已实例化过的模型,不会重复去实例化。

tp中一直都有的模型中的自动验证和自动完成功能,在模型中定义,使用create()方法时就可以完成自动验证(只是验证,并不是添加数据,添加数据还是要用add方法)。

在首页home/view/index/index视图中选择了分组的形式,这样可以在配置文件中设置以哪一组视图来显示,方便扩展。

并用使用了模板继承的特性,这样继承并不是简单的引入,而是可以重写父类模板。

并且还调用了wegdit方法来显示首页左侧分类。{w:类名\方法名,参数}

3、用户处理UserControll.class.php

用户中心还没有写,主要是注册登陆和退出。

登陆控制器可以艇is_post来判断是否是显示登陆页面还是提交登陆数据,显示和控制在一个动作中。

注册用户中调用的是ucenter接口来完成。

4、还是文档的显示 articleControl.class.php完成对文档列表的显示,对文档详细内容的显示动作

5、error()跳转函数会判断是否为ajax提交,如果是ajax提交则会用ajaxreturn返回数据,这样不会跳出界页

五、后台模块

1、不管是前台还是后台都可以写一个公共的控制器,来完成对这个模块的一些初始化工作和判断

onethink和thinkphp3.2学习的更多相关文章

  1. 在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现Web端直传,服务端签名直传并设置上传回调的实现流程

    在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现本地文件上传流程 by shuijingwan · 2016/01/13 1.SDK安装 github ...

  2. thinkphp3.2 学习

    http://www.tuicool.com/articles/nQFnQrR 1,sublime text 增强插件 右键可以打开文件目录 http://www.w3cfuns.com/notes/ ...

  3. Thinkphp3.2学习——架构_URL模式

    入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...

  4. thinkphp3.2 学习笔记 基础篇

    环境要求:PHP5.3以上版本注意:PHP5.3DEV和php6不支持 目录结构 www WEB部署目录(或者子目录)├─index.php 入口文件├─README.md README文件├─App ...

  5. (一)熟悉执行流程——基于ThinkPHP3.2的内容管理框架OneThink学习

    ThinkPHP作为国内具有代表性的PHP框架,经过多年的发展,受到越来越多公司与开发者的青睐.我也在忙里偷闲中抽出部分时间,来学习这个优秀的框架.在开始学习这个框架时,最好通过实例来学习,更容易结合 ...

  6. OneThink学习笔记01

    OneThink1.0开发手册: http://document.onethink.cn/manual_1_0.html 简介  OneThink是一个开源的内容管理框架,基于最新的ThinkPHP3 ...

  7. php随笔3-thinkphp 学习-ThinkPHP3.1快速入门(1)基础

    ThinkPHP3.1快速入门(1)基础 简介 ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发 框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在 ...

  8. vagrant的学习 之 ThinkPHP3.2

    vagrant的学习 之 ThinkPHP3.2 (1)在web目录下新建tp32目录: cd /home/www/ mkdir tp32 (2)下载框架 我从ThinkPHP官网下载了ThinkPH ...

  9. ThinkPHP3.2.3学习笔记1---控制器

    ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一 ...

随机推荐

  1. Google黑板报: 数学之美系列(网上找的原链接)

    转载地址:http://blog.sina.com.cn/s/blog_47cccb02010009u0.html 系列一 -- 统计语言模型 http://googlechinablog.com/2 ...

  2. 解析JSON字符串

    import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONOb ...

  3. Programming Entity Framework 翻译(2)-目录2-章节

    How This Book Is Organized 本书组织结构 Programming Entity Framework, Second Edition, focuses on two ways ...

  4. CVPR 2007 Learning to detect a salient object

    Dataset: MSRA A&B are introduced in this paper. A conditional Random Field based method was prop ...

  5. mysql使用小技巧

    1.mySql 删除表中大批量的数据 假设有一个表(logs)有2000万条记录,我们要在业 务不停止的情况下删除其中status=1的所有记录,差不多有1800万条,直接执行 DELETE FROM ...

  6. XproerIM-v1.3更新-企业即时通迅

    版权所有 2009-2016 荆门泽优软件有限公司 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/apps/xproerim/index.a ...

  7. leetcode 6. ZigZag Conversion

    https://leetcode.com/problems/zigzag-conversion/ 题目: 将字符串转化成zigzag模式. 例如 "abcdefghijkmlnpq" ...

  8. 学习制作第一个 openfire 插件

    本文地址:http://www.cnblogs.com/jying/p/3683409.html 蛋疼的自学路~~~ 开始想法是修改openfire源码,但修改后发现不好测试,不会发布,不会使用,各种 ...

  9. windows 下 node.js 和 express 的安装

    下载 node 下载和安装 下载地址 https://nodejs.org/en/ 下载文件 node-v4.5.0-x64.msi nodejs 安装 express -g 代表全局安装 npm i ...

  10. wp中TextBox在中文输入法下清空问题

    如图,在中文输入法下我希望点击“X”,然后把TextBox清空,一般来说,直接用TextBox.Text = "";或者TextBox.Text = String.Empty;就可 ...