目录:

(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. 1.Thinkphp入门--框架介绍

    1.Thinkphp款家最早诞生于2006年初,最初名叫fsc,2007年元旦改名thinkphp,由国人自主开发的框架,有中文的文档和社区 2.Tinkphp下载: 官网:http://www.th ...

  2. thinkPHP框架介绍(一)

    原文:thinkPHP框架介绍(一) 一.ThinkPHP的介绍 期间有对ThinkPHP框架在学习上的问题欢迎大家交流:QQ:812231134 MVC M - Model 模型           ...

  3. thinkphp调整框架核心目录think的位置

    thinkphp的核心目录即框架文件可以放在项目之外的目录,这点手册上有提到,放在项目之外的地方可以方便其他项目共用一个框架文件. 在入口文件的index.php中,在导入框架目录这一行,可以直接修改 ...

  4. Thinkphp开源框架如何使用?

    (一)首先是准备工作下载thinkPHP框架最新版本,解压缩到你将要开发的项目位置.杭州php操作演示如图: 其中index.php是入口文件,即所有的请求都要经过此文件才能够完成.Applicati ...

  5. [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍

    [连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目       录 第一章           通讯框架介绍... 2 1.1           通讯的本质... 2 1 ...

  6. YARN基本框架介绍

    YARN基本框架介绍 转载请注明出处:http://www.cnblogs.com/BYRans/ 在之前的博客<YARN与MRv1的对比>中介绍了YARN对Hadoop 1.0的完善.本 ...

  7. Selenium自动化测试框架介绍

    Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...

  8. UiAutomator自动化测试框架介绍

    UiAutomator自动化测试框架介绍 环境搭建 1         必要条件 1.1       JDK 1.2       SDK(API高于15) 1.3       Eclipse 2    ...

  9. [翻译]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 ...

随机推荐

  1. jquery 页面滚动tab自动定位,tab与内容对应

    直接上源码,基于jquery写的,可以直接跑起来. 原理是先计算出页面元素对应的高度.页面滚动时计算tab对应的高端区间,设置具体的tab.欢迎指正 下载地址 <!DOCTYPE html> ...

  2. Minimizing Maximizer

    题意: 最少需要多少个区间能完全覆盖整个区间[1,n] 分析: dp[i]表示覆盖[1,i]最少需要的区间数,对于区间[a,b],dp[b]=min(dp[a...b-1])+1;用线段树来维护区间最 ...

  3. LOJ 6089 小Y的背包计数问题 —— 前缀和优化DP

    题目:https://loj.ac/problem/6089 对于 i <= √n ,设 f[i][j] 表示前 i 种,体积为 j 的方案数,那么 f[i][j] = ∑(1 <= k ...

  4. 1998 NOIP 拼数 string 和sort的新理解

    题目:https://www.luogu.org/problemnew/show/P1012 今天真是长了见识.这道题做了十几分钟,用模拟愣是调不出来.直到我看了题解——(当场去世)…… 题的意思是n ...

  5. 698C

    Description n个视频,长度为k的缓存,每次询问,每个视频以pi的概率被选,如果不在缓存区则加入,如果缓存区满了,则最先进缓存的出来,问10^100次操作以后每个视频在缓存的概率 Input ...

  6. 什么是GFW

    GFW(Great Firewall of China)中文名:中国国家防火墙,建立于1998年.我们平常所说的“被墙了”,是指网站内容或服务被防火墙屏蔽了.而“FQ”是指突破防火墙去浏览那些被屏蔽的 ...

  7. [POI2013]POL-Polarization

    题目描述 Everyone knew it would only be a matter of time. So what? Faced for years on, a peril becomes t ...

  8. DB 集中管理之探讨

    DB 集中管理之探讨 1.监控的集中管理. 2.schema 变更的集中管理. 3.备份的集中管理. 4.补丁的集中管理. 5.架构的集中管理.

  9. idea工程jdk设置问题

    经常用idea的朋友,会遇到一个问题,那就是你在单测的时候,会报一个jdk的错,截图如下: 我的解决方案是在pom.xml里配置一个节点: <properties> <maven.c ...

  10. 微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。

    在这里给大家分享下我的心得,1.写代码前一定要对整个流程有个了解.我就是因为在先不了解整个过程中去ctrl+c+v他人的博客代码,花费很多无用的时间去处理还不知道能不能跑的起来的代码. 2.本人比较喜 ...