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. asp.net core实现SHA1withRSA

    public sealed class SHA1withRSA { /// <summary> /// pem SHA1withRSA签名 /// </summary> /// ...

  2. Python语法一

    前记,今天开始学习Python 参考 笨方法学习+Python(第三版) 因为有编程基础,所以入门不难,相比于以前学过的其它语言编程,Python当然也有它独特的语法格式. 1.安装Python 访问 ...

  3. android中dx、dp、dip、sp单位的区别

    1.dp=dip 2.px基于像素,后两者基于像素密度. 3.px既可用于宽度高度,也可用于字体,dp用于宽高,sp用于字体4.android中以320*480屏幕为基准.在相同值的px和dp,在32 ...

  4. asp.net LINQ数据访问技术from where select order by子句

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  5. 初学c# -- 学习笔记(二)

    接着前面的学习,对话建立了,下面就写对话框气泡,和微信的差不多那种.尖角对话气泡网上一堆,圆尖角的修改了一个.IE8以下不能用,其他都可以用,直接上html代码,将<style>内容用到你 ...

  6. LeetCode 445 Add Two Numbers II

    445-Add Two Numbers II You are given two linked lists representing two non-negative numbers. The mos ...

  7. jquery链接多个jquery方法

    <!DOCTYPE html><html><head><script src="/jquery/jquery-1.11.1.min.js" ...

  8. C语言fgetpos()函数:获得当前文件的读写指针(转)

    头文件:#include<stdio.h>fgetpos()函数获得当前文件的指针所指的位置,并把该指针所指的位置信息存放到pos所指的对象中.pos以内部格式存储,仅由fgetpos() ...

  9. Oracle数据库自动启动Shell脚本

      为了保证Oracle在下次系统重启后,能自动启动服务,这里我们可以通过一个Shell脚步来实现这个功能.假定脚步名称为/app/oracle/oraclestart.sh,其内容如下: #!/bi ...

  10. 选择c3p0作为连接池

    <hibernate-configuration>     <session-factory>         <property name="dialect& ...