ThinkPHP---thinkphp框架介绍
目录:
(1)简述;
(2)下载;
(3)文件结构;
(4)部署;
(5)细节问题;
主体:
(1)简述
ThinkPHP诞生于2006年初,最初叫FSC。于2007年元旦更名为PHP,同时官网上线。
一款国人自主开发的框架,有中文官网、论坛、文档等。代码中包含了丰富的中文注释
(2)下载
官网下载:http://www.thinkphp.cn
最新版:V5.0
目前使用最多的版本:V3.2.3
下载列表里:RC1 、RC2、RC3等软件版本修饰词,所以下面拓展下
一般软件有四个版本
①Alpha版本:内测版本,内部测试;
②Beta版本:公测版本,面向用户,由用户找出bug;
③RC版本:候选版本,该阶段不会有太多功能性调整,主要是排错阶段;
④R版本:release发行版本,稳定版本。
鉴于以上,我们开发时用R版本,因为其他版本未更新完成,可能存在BUG
(3)文件结构
解压后查看文件结构,核心板相对于完整版来说只有ThinkPHP,没有其他目录结构。而完整版包含其他演示文件
①第一层文件结构
Application(应用):应用目录;
Public:存放图片,css,js等公共静态资源文件的目录;
ThinkPHP:框架核心目录;
.htaccess:分布式配置文件,配合Alpha对站点进行配置;
composer.json:json为数据格式,包含一些说明性描述,主要给composer(一款国外软件)软件使用的说明文件,在国内被墙了,所以无用了。可以理解为类似软件管家的管理软件说明信息
index.php:项目的入口文件,一般为单一入口,也可以为多入口
README.md:说明文件,可以忽略
其他详细文件结构我在文章thinkphp3.2.3文件结构介绍里做了总结
(4)部署
①创建站点目录
②开启httpd-vhosts.conf配置功能
③配置Apache虚拟主机的配置文件,创建一个虚拟主机;
④重启Apache
⑤修改hosts文件,将配置文件里声明的2个域名进行绑定解析
⑥检验
⑦复制代码文件到站点目录
详细步骤我在文章PHP 虚拟主机配置里做了总结
关于此处的Application应用目录(与压缩包中的Application目录不同,,里面还包含了3个目录)
Common(通用文件目录,存放应用级别函数库文件及配置文件)/Common应用级别函数库目录---Conf应用级别配置文件目录---index.php
Home(存放分组级别的函数库文件及配置文件)/Common分组级别函数库目录---Conf分组级别配置文件目录---Controller---Model---View(MVC目录)---index.php
Runtime(运行时,即临时文件目录)/Cache---Data---Logs---Temp---index.html
注意:只有首次运行入口文件index.php时才会产生Application应用目录,生成后便不会再次生成覆盖(前提不修改APP_PATH常量)
(5)细节问题
①应用目录由来及注意事项
首次部署完成后,会自动生成Application应用目录。目录名字名字取决于入口文件index.php里定义的APP_PATH常量
// APP——PATH常量,定义应用目录,后期自动生成的文件都会放到里面
define('APP_PATH','./Application/');
若修改APP_PATH常量,再次刷新页面时,会生成应用新目录
②目录安全文件
在自动生成的文件里,每层都有index.html空文件为目录安全文件。
作用:隐藏目录结构,简单说就是仿制列出站点文件结构
原理:在Apache配置文件里,有options+indexes,默认展示站点目录。若在站点目录里不存在index开头的文件,则会展示目录结构。
但是有了index.html(目录安全文件)之后,便不会展示文件结构。主要是为了仿制服务器管理员忘记关闭options+indexes,对网站安全构成威胁。
③文件生成
首次运行入口文件时会自动生成应用目录,原理是什么?
文件的生成主要取决于ThinkPHP系统流程https://www.kancloud.cn/manual/thinkphp/1704
④默认访问
部署后访问会看到笑脸,怎么输出的?
Application---Home---Controller---IndexController.class.php
<?php
namespace Home\Controller; //默认分组为home
use Think\Controller;
class IndexController extends Controller { //控制器为Index
public function index(){//默认方法为index
$this->show('');
}
}
分析indexController.class.php可以得出在PHP里
默认分组 / 前台为Home;默认控制器为Index;默认方法为index;
上述默认值可以在配置文件里可以找到,配置文件有3个Home/Conf/config.php、Common/Conf/config.php、ThinkPHP/Conf/,依次查找后可以分析上述默认值可以在系统配置文件ThinkPHP/Conf/convention.php里找到
'DEFAULT_MODULE' => 'Home', // 默认模块分组 / 平台
'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称
'DEFAULT_ACTION' => 'index', // 默认操作 / 方法名称
⑤配置文件分类
综合上述分析,因为配置文件分3类:系统配置文件,分组配置文件,应用配置文件
系统配置文件ThinkPHP/Conf/convention.php;
分组 / 模块 /平台配置文件Home/Conf/config.php;
应用配置文件Common/Conf/config.php;
.
ThinkPHP---thinkphp框架介绍的更多相关文章
- 1.Thinkphp入门--框架介绍
1.Thinkphp款家最早诞生于2006年初,最初名叫fsc,2007年元旦改名thinkphp,由国人自主开发的框架,有中文的文档和社区 2.Tinkphp下载: 官网:http://www.th ...
- thinkPHP框架介绍(一)
原文:thinkPHP框架介绍(一) 一.ThinkPHP的介绍 期间有对ThinkPHP框架在学习上的问题欢迎大家交流:QQ:812231134 MVC M - Model 模型 ...
- thinkphp调整框架核心目录think的位置
thinkphp的核心目录即框架文件可以放在项目之外的目录,这点手册上有提到,放在项目之外的地方可以方便其他项目共用一个框架文件. 在入口文件的index.php中,在导入框架目录这一行,可以直接修改 ...
- Thinkphp开源框架如何使用?
(一)首先是准备工作下载thinkPHP框架最新版本,解压缩到你将要开发的项目位置.杭州php操作演示如图: 其中index.php是入口文件,即所有的请求都要经过此文件才能够完成.Applicati ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
[连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目 录 第一章 通讯框架介绍... 2 1.1 通讯的本质... 2 1 ...
- YARN基本框架介绍
YARN基本框架介绍 转载请注明出处:http://www.cnblogs.com/BYRans/ 在之前的博客<YARN与MRv1的对比>中介绍了YARN对Hadoop 1.0的完善.本 ...
- Selenium自动化测试框架介绍
Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...
- UiAutomator自动化测试框架介绍
UiAutomator自动化测试框架介绍 环境搭建 1 必要条件 1.1 JDK 1.2 SDK(API高于15) 1.3 Eclipse 2 ...
- [翻译]Spring框架参考文档(V4.3.3)-第二章Spring框架介绍 2.1 2.2 翻译--2.3待继续
英文链接:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/overview.ht ...
随机推荐
- USRP内部的寄存器
usrp_regs.hpp #ifndef INCLUDED_USRP2_REGS_HPP #define INCLUDED_USRP2_REGS_HPP ////////////////////// ...
- CentOS 7 执行级别的切换
CentOS 7 执行级别的切换 由命令行级别切换到窗体级别的命令未变:init 5或startx 由窗体级别切换到命令行级别的命令未变:init 3 新版本号的执行级别都定义在 /lib/syste ...
- UVA1523-Helicopter(暴力+全排列)
题目链接 题意:有八个乘客坐在直升机上,求重心M最小值. 思路:依据题目所给的公式,我们能够知道要使得M最小.也就是要使得Mv和Mh的和最小,我们能够使用全排列,分别将每一个值放在各个位子上,然后更新 ...
- [译]IOS中AutoLayout布局与Transform的冲突问题
http://m.blog.csdn.net/blog/a345017062/43565279 原文链接见这里: http://stackoverflow.com/questions/12943107 ...
- [办公自动化]名师推荐-excelpro刘万祥 图表之道作者
最早认识刘万祥老师是通过孙小小老师的博客.后来发现制作图表,还真需要和PPT类似,花些时间琢磨一下. 首先你要了解图表的类型,然后需要了解制作方法,最后就是如何美化以及结合PPT等工具帮你分析数据. ...
- win下IE设置
当win7系统时需要升级IE为11版本,需要先安装sp1版本补丁,再装IE11,若还是装不了,可借助第三方平台(电脑管家等)升级安装.或 更新系统再安装IE11 https://jingyan.bai ...
- hdoj--1254--推箱子(bfs好题)
推箱子 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- STM32:片上Flash 操作
之前IAP时候记录过一些,今天对特定地方写又加深了印象,写与擦除都需要先unclock //读取指定地址的半字(16位数据) //faddr:读地址(此地址必须为2的倍数!!) //返回值:对应数据. ...
- Spark 决策树--分类模型
package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{D ...
- [App Store Connect帮助]六、测试 Beta 版本(3.3)管理测试员:查看测试员信息
如果您使用“TestFlight Beta 版测试”,您可以查看关于测试员的信息,并衡量测试员的参与度. 必要职能:“帐户持有人”职能.“管理”职能.“App 管理”职能.“开发者”职能或“营销”职能 ...