thinkphp的学习笔记
# Thinkphp
## 什么是框架?(框架开发)
> 框架就是通过提供一个开发Web程序的基本框架(比如提供了分页类、数据库操作类、文件操作类等),使用框架可以减少开发者代码的编写。
> 简单理解就是别人写好了很多东西,我们直接拿过来用。最后拼凑成一个项目(可以是商城、论坛等) 。
## 什么是二次开发
* 所谓二次开发就是在现有的软件上进行定制修改,功能的拓展,然后达到自己想要的功能,一般来说都不会改变原有项目的主要内容。
### 商城二次开发框架
* ecshop
* shopnc
* ecmall
### 内容管理系统(cms)二次开发
* thinkcmf
* phpcms
* 织梦
* wordpress 博客系统
### 论坛二次开发
* discuz
* phpwind
## 为什么需要框架?
1. 可以减少写重复代码。
2. 有利于分工合作,提高效率。前端负责模板开发,程序员负责后台逻辑程序的编写。
3. 框架可以帮助我们快速、稳定、高效搭建程序系统
4. 框架的过程可以使我们集中于业务层面,而无需关心程序的底层架构。
## 主流PHP框架有哪些?
> Laravel、Yii、CodeIgniter、Symfony、ThinkPHP
主流的PHP框架大多数都是基于MVC模式的。
## 怎么去学习一个框架?
> 我们现在学的是ThinkPHP,但是到了公司不一定就是用ThinkPHP。那么我们怎么快速上手一个PHP框架。
第一、弄清楚PHP框架的目录结构、配置、URL规则。
第二、熟悉数据库增删改查的基本方法。
第三、再根据工作需要去深入了解其他东西。
## ThinkPHP目录说明
* Application 应用目录。以后我们写的代码大多数在这里
* Public 资源文件目录。 就是放JS CSS 图片的目录
* index.php 入口文件。
* ThinkPHP目录 Thinkphp核心代码
Library 核心库(所有的基类都在这里)
Org 第三方的开源的PHP包( 就是一些类 )
Net 放置的是网络一些处理的php文件
Think 核心的核心
Common 公共函数
functions.php Thinkphp公共函数
Conf 配置文件的目录(****)
convention.php 惯例配置文件(就是tp提供配置文件)
Mode 就是为了兼容各种云平台(SAE 新浪云 ) 不常用
* Application 项目的代码都在这里
Common 自定义的函数就放到这里
Common 可以放置自定义的函数
Conf 所有模块的配置文件,会对所有的模块有效
Home 前台模块的代码都在这里
Runtime 一些缓存、模板编译的数据(如果报错,经常删除)
### URL(***)
.../模块/控制器名字/方法名
例子:
Home/Index/index 访问的是Home模块的IndexController控制器的index方法
.../?m=Home&c=index&a=index
例子:
?m=模块名&c=控制器名&a=方法名
## 入口文件
> define('APP_DEBUG',true);
项目完成后,就改成false。开发阶段就是true
## 如何配置
1. 找到惯例配置文件中(ThinkPHP\Conf\convention.php)
2. 复制惯例配置中的你想要改变的配置内容
3. 放到模块配置文件中(Application/Common/Conf/Config.php)
## D() 与 M()区别
M()直接是实例化 Think\Model
D('stu'); 先去Model目录下有没有StuModel.class.php
如果没有,才去new Think\Model
## 视图连接到控制器
U()方法生成url
U()在控制器中使用:
U('del') 找到当前控制器的del方法
U('Goods/del') 找到当前模块的Goods控制器的del方法
U('Home/Goods/del') 找到Home模块的Goods控制器的del方法
在视图中使用U()方法:
> {:U('del')}
带参数的用法
{:U('del',array('id'=>$v['id']))}
###配置
惯例配置 Thinkphp/Conf/convention.php
应用配置
模块配置(Home Admin)
## 伪静态
* 作用:有利于搜索引擎的收录
概念:伪静态不是真实的静态页面。
========================
.com 商业
.edu 教育
.cn 中国
.org 不盈利
thinkphp的学习笔记的更多相关文章
- thinkPHP框架学习笔记
class ZhuantiAction extends Action { public function index() { $name = trim($this->_get('name')); ...
- ThinkPHP - 6 - 学习笔记(2015.5.4)
解决:OneThink 站点无法被友言uyan后台识别 打开友言uyan插件功能,但OneThink站点无法被友言uyan后台检测到.页面生成的uyan代码为: <!-- UY BEGIN -- ...
- ThinkPHP - 5 - 学习笔记(2015.4.15)
ThinkPHP __construct()和__initialize() 1.__initialize()不是php类中的函数,php类的构造函数只有__construct().2.类的初始化:子类 ...
- ThinkPHP - 4 - 学习笔记(2015.4.12)
ThinkPHP D方法 D方法用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:D('[项目://][分组/]模型' ...
- thinkphp学习笔记10—看不懂的路由规则
原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...
- thinkphp学习笔记9—自动加载
原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\ ...
- thinkphp学习笔记8—命名空间
原文:thinkphp学习笔记8-命名空间 新版本(3.2)中采用命名空间的方式定义和加载类库文件,解决多个模块之间的冲突问题,并实现了更加高效的自动加载机制. 需要给类库定义所在的命名空间,命名空间 ...
- thinkphp学习笔记7—多层MVC
原文:thinkphp学习笔记7-多层MVC ThinkPHP支持多层设计. 1.模型层Model 使用多层目录结构和命名规范来设计多层的model,例如在项目设计中如果需要区分数据层,逻辑层,服务层 ...
- thinkphp学习笔记6—url模式
原文:thinkphp学习笔记6-url模式 入口文件是应用的唯一入口,因为可以多入口,每个应用可以对应一个入口文件,系统会从rul参数中解析当前请求的模块,控制器,操作.ThinkPHP是区分大小写 ...
随机推荐
- JAVA静态代码审查之checkstyle
技术总监来巡查,刚巧前段时间遇到了一个问题还没解决,就拉着大牛开问.结果,问题是解决了,还附带了另一个问题,或是要求出来,没啥技术含量,但是很麻烦的一个东西:代码格式. 之前我写代码,因为屏幕比较小, ...
- 用js计算从开始到结束时间之内的按周值选定
前台选择周几(周一周日),比如选择<td>周一</td>,<td>周三</td>,<td>周五</td>我用js attr 给t ...
- 真正shopex分销王2代DRP系统源码正版安装版本终身商业授权
真正ShopEx分销王系统2代正版授权.该商业程序已经完整授权,已测试100%完整能用.很多朋友来问是否免费版的源码?错,这是和官方一样的平台版本,100%无限制功能使用,跟官方付费使用的授权版一样. ...
- 一个简单的c# 贪吃蛇程序
一个简单的c#贪吃蛇程序 程序分为界面设计和程序设计:界面设计和程序设计均参考了一些游戏实例,但是所有代码内容是本人编写. 由于看到别人写的程序并没有署名,这里的署名全部都是csdn官网. 游戏界面设 ...
- IUS database
仿真中的database主要存放关于signal transition以及时间点的信息. IUS中的的database包括: 1) SHM, Verilog/VHDL/mixed-language的d ...
- win10安装oracle 11g 报错 要求的结果: 5.0,5.1,5.2,6.0 6.1 之一 实际结果: 6.2
Windows10下安装Oracle11G.10G,都会提示如下信息 正在检查操作系统要求... 要求的结果: 5.0,5.1,5.2,6.0 之一 实际结果: 6.1 检查完成.此次检查的总体结果为 ...
- .NET开发者必备的工具箱
本文作者Spencer是一名专注于ASP.NET和C#的程序员,他列举了平时工作.在家所使用的大部分开发工具,其中大部分工具都是集中于开发,当然也有一些其它用途的,比如图片处理.文件压缩等. 如果你是 ...
- LDD3 字符设备驱动简单分析
最近在看LDD3,理解了一下,为了加深自己的印象,自己梳理一下.我用的CentOS release 6.6 (Final)系统. 一.编写编译内核模块的Makefile 以下是我用的Makefile ...
- dd-wrt 定时重连 pppoe 更换ip地址
因为做代理,IP时常被封的原因,所以,需要每天定时重启路由器,重启路由器影响太大,所以重新拨号是一个更好的选择. 在dd-wrt里面,杀掉pppoe服务进程就可以了,这个进程会自动重新启动,然后就相当 ...
- window10 安装SVN 提示权限问题
http://www.yishimei.cn/network/551.html 经常在网上看到有同学反映,他们在控制面板里卸载软件的时候,总是会出现2502.2503错误代码的问题,并且这个问题大多 ...