onethink和thinkphp3.2学习
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学习的更多相关文章
- 在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 ...
- thinkphp3.2 学习
http://www.tuicool.com/articles/nQFnQrR 1,sublime text 增强插件 右键可以打开文件目录 http://www.w3cfuns.com/notes/ ...
- Thinkphp3.2学习——架构_URL模式
入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...
- thinkphp3.2 学习笔记 基础篇
环境要求:PHP5.3以上版本注意:PHP5.3DEV和php6不支持 目录结构 www WEB部署目录(或者子目录)├─index.php 入口文件├─README.md README文件├─App ...
- (一)熟悉执行流程——基于ThinkPHP3.2的内容管理框架OneThink学习
ThinkPHP作为国内具有代表性的PHP框架,经过多年的发展,受到越来越多公司与开发者的青睐.我也在忙里偷闲中抽出部分时间,来学习这个优秀的框架.在开始学习这个框架时,最好通过实例来学习,更容易结合 ...
- OneThink学习笔记01
OneThink1.0开发手册: http://document.onethink.cn/manual_1_0.html 简介 OneThink是一个开源的内容管理框架,基于最新的ThinkPHP3 ...
- php随笔3-thinkphp 学习-ThinkPHP3.1快速入门(1)基础
ThinkPHP3.1快速入门(1)基础 简介 ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发 框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在 ...
- vagrant的学习 之 ThinkPHP3.2
vagrant的学习 之 ThinkPHP3.2 (1)在web目录下新建tp32目录: cd /home/www/ mkdir tp32 (2)下载框架 我从ThinkPHP官网下载了ThinkPH ...
- ThinkPHP3.2.3学习笔记1---控制器
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一 ...
随机推荐
- 金山云—ubuntu-web服务器完整部署笔记
金山云-ubuntu-web (jdk环境配置+tomcat配置+nginx反向代理)服务器完整部署文档第一步:挂载数据盘 参考金山云帮助文档 http://www.ksyun.com/doc/art ...
- C语言编程技巧-signal(信号)[转]
自 http://www.uml.org.cn/c++/200812083.asp 信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念.Linux对信号机制的大致实现方法.如何使用 ...
- 解除破解正版Kindle电子书籍的版权限制
解除破解正版Kindle电子书籍的版权限制(DRM). 方法并不复杂: 安装好Calibre电子书籍阅读管理软件: 在Calibre软件中安装好破解DRM插件:DRM: 把购买到的Kindle电子书籍 ...
- android Spinner的简单用法
上代码: spinner = (Spinner) findViewById(R.id.spinner); tv = (TextView) findViewById(R.id.tv); final Ar ...
- Mysql binlog
理解Mysql binlog 日志的三种模式 本文介绍下,mysql中binlog日志的三种模式,了解了各种模式的不同之处,才能更好地应用.有需要的朋友建议参考下. 一,模式1 Row Lev ...
- php阻止网页被用户频繁刷新
一般情况下,用户浏览网页的速度都是几秒十几秒甚至更长时间刷新一页,但有时候又会遇到网页被恶意快速刷新,从而导致正常用户浏览速度缓慢,如何来解决这个问题呢?可以使用如下代码来实现每ip页面访问数量限制: ...
- Python全栈开发day6
1. 简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引 ...
- Android_demo之生成二维码
今天我们来学习一个自动生成二维码 的写法.我们经常能见到各种二维码,比如公众号的二维码,网址的,加好友的,支付的二维码等等.其实每一个二维码只是利用图片的形式展示出来的,实际是一些字符串.而这个字符串 ...
- windows 安装mysql 步骤
Windows 安装mysql 5.7.12教程 1.在官网下载mysql5.7.12.zip并解压 复制默认配置文件my-default.ini,并命名为my.ini 使用记事本打开,修改如下配置 ...
- vim 标记 mark 详解 (转载)
http://www.cnblogs.com/jianyungsun/archive/2011/02/14/1954057.html Vim 允许你在文本中放置自定义的标记.命令 "ma&q ...