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从诞生以来一 ...
随机推荐
- Leetcode3:Longest Substring Without Repeating Characters@Python
Given a string, find the length of the longest substring without repeating characters. Examples: Giv ...
- 基本变换(读书笔记5 --- Real-Time rendering)
刚体变换 即变换不改变了被变换顶点之间的距离,以及偏手性(不会让左右手坐标系颠倒). 下面的平移变换.旋转变换即属于刚体变换 平移 从一个位置变到另一个位置可以用平移矩阵T来表示,这个矩阵将一个实体变 ...
- AKKA(一)认知AKKA
Akka 是一个用 Scala 编写的库,用于简化编写容错的.高可伸缩性的 Java 和 Scala 的 Actor 模型应用.它已经成功运用在电信行业.系统几乎不会宕机(高可用性 99.999999 ...
- C--关键字static
static在C中主要有两个作用: 1.修饰变量 (局部变量.全局变量 都存在内存的静态区) 静态全局变量: 作用域仅限于变量被定义的文件中,其中文件即使用extern声明也无法使用它. 静态局部变 ...
- 装饰模式(Decorator pattern)
装饰模式(Decorator pattern): 又名包装模式(Wrapper pattern), 它以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式以对客户透明的方式动态的给 ...
- Host基本概念
TSO TSO是Time Sharing Option的缩写,是MVS的命令输入处理器. TSO是在操作系统的管理下,用来支持ISPF菜单式会话系统和资源管理设备( ...
- Visual Studio 15 Preview 4安装
今天看到了有Visual Studio 15 Preview 4的安装文件放出,便想去安装体验一下C# 7.0的新语法.谁知安装时遇到一个错误: 手动下载这个补丁安装后,还是提示这个错误.本来以为是还 ...
- 【转】jqGrid 各种参数 详解
[原文]http://www.cnblogs.com/younggun/archive/2012/08/27/2657922.htmljqGrid 各种参数 详解 JQGrid JQGrid是一个 ...
- PHP禁止同一IP频繁访问以防止网站被防攻击或采集的代码
PHP禁止同一IP频繁访问以防止网站被防攻击或采集的代码 <?php /* *通过禁止IP频繁访问防止网站被防攻击代码*design by www.scutephp.com*/header('C ...
- Linux_10------Linux之shell编程------变量
.-9 vim num.sh #! /bin/bash num1=$1 num2=$2 sum=$(($num1+$num2)) #变量sum是num1和num2的综合 echo $sum 执行 ./ ...