# 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 不盈利
文章列表