[从typecho入坑PHP系列]typecho系统的整体结构与安装的跳转

Typecho的结构

从官网下载typecho后,解压,打开文件夹build,可以看见Typecho的结构。

/admin/
/install/
/usr/
/var/
/license.txt  
/index.php
/install.php

三个文件分别是index.phpinstall.phpLICENSE.txt,其中LICENSE.txt是软件协议,也就是我们使用Typecho需要遵守的协议。
四个文件夹分别是

  • 存放后台文件的admin
  • 存放安装文件的的install
  • 存放用户资源(插件、主题、附件)的usr
  • 存放系统变量的var

typeecho的安装跳转

对于任何一个PHP站点,当你只输入域名或者地址时,服务器会根据默认的或者用户设置的首页顺序进行读取。我们称其为入口文件,typecho的入口文件为index.php。
typecho的index.php内容如下:

/** 载入配置支持 */
if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php') {
    file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File');
    exit;
}

/** 初始化组件 */
Typecho_Widget::widget('Widget_Init');

/** 注册一个初始化插件 */
Typecho_Plugin::factory('index.php')->begin();

/** 开始路由分发 */
Typecho_Router::dispatch();

/** 注册一个结束插件 */
Typecho_Plugin::factory('index.php')->end();

安装

安装typecho时,你的服务器会读取index.php,通过index.php中的

(!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php')'

检查’TYPECHO_ROOT_DIR’是否定义和config.inc.php文件是否存在(该文件安装时会自动生成,并且’TYPECHO_ROOT_DIR’在该文件中定义),不存在则代表没有安装,会跳转到install.php进行程序安装。

知识点

  • &&的意思是“与”,前后两个条件同时满足才满足,如 1+1=2&&1+2=2的结果时错误。
  • 在PHP中,!代表否定的意思。
  • defined()是检验口号中的常量是否定义。
  • include_once 语句意思是在脚本执行期间包含并运行指定文件。
  • @加在语句前,其作用是如果该语句出错不用显示出来。
  • !@include_once 'config.inc.php’的意思是包含并运行一次config.inc.php。
  • 由于未安装时config.inc.php不存在,defined(‘TYPECHO_ROOT_DIR’)返回错误,@include_once出错但不显示,!否定两个出错,使整个语句变成了正确。

你可能感兴趣的:(typecho)