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. Web APi之安装配置实现Cors跨域

    参考:http://www.cnblogs.com/CreateMyself/p/4836628.html 1.通过NuGet下载程序包,搜索程序包[Microsoft.AspNet.WebApi.C ...

  2. XHProf中文手册

    目录 导言 XHProf 概况 安装XHProf扩展 使用XHProf进行性能分析 设置XHProf用户界面 在生产环境中使用XHProf注意事项 轻量级采样模式 附加功能 信赖 鸣谢 导言 XHPr ...

  3. 浅谈 JS 创建对象的 8 种模式

    1.Object 模式 var o1 = {};//字面量的表现形式 var o2 = new Object; var o3 = new Object(); var o4 = new Object(n ...

  4. Salt 安装方式(CentOS)

    安装前必备环境:2.6.6<Pythin<3.x 本文内容是参考 中国SaltStack用户组 里面 Salt中文手册 中的安装内容实践之后总结的. 初学者可用Ubuntu系统学习安装,因 ...

  5. js关于页面坐标api

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  6. redis 与 spring整合 hash 增删改操作 list增删改操作

    本人,对于以前redis的学习是非常痛苦的!近期将以前的东西捡起来.以博客的形式存储,以便于以后快速捡起来,并和广大同胞一起分享! 1):简单介绍 redis 是基于C语言开发. redis是一个ke ...

  7. MySQL_积分兑换的优惠券在某时间段内使用情况_ 20161215

    积分兑换的优惠券在某时间段内使用情况 SELECT a.城市,a.用户ID,a.优惠券ID,a.优惠券名称,a.积分兑换优惠券的张数,b.使用优惠券数量,a.积分兑换优惠券的金额,b.使用优惠券金额 ...

  8. 水果姐逛水果街Ⅱ codevs 3305

    3305 水果姐逛水果街Ⅱ  时间限制: 2 s  空间限制: 256000 KB   题目描述 Description 水果姐第二天心情也很不错,又来逛水果街. 突然,cgh又出现了.cgh施展了魔 ...

  9. [Docker] docker 基础学习笔记4(共6篇)

    离线安装nginx   apache 如何启动war包   linux 离线升级内核   nginx和Apache的使用   nginx 的负载均衡配置 是如此的简单,比weblogic的要简单100 ...

  10. oracle合并版本

    1)   添加字段,并自增 第一步:alter table TOWN add ID int 第二步:Update TOWN set id=rownum; Commit; 2)   更新表(另一张表) ...