码迷,mamicode.com
首页 > Web开发 > 详细

dede源码解读(1)——index.php

时间:2016-05-07 01:06:47      阅读:570      评论:0      收藏:0      [点我收藏+]

标签:

  刚学习php,感觉织梦cms很好,就像学习一下,记录下自己的学习心得!

  我是新手,php不是了解,错误不当之处,欢迎批评指正,不胜感激!

  今天先来分析织梦的入口文件index.php,先贴代码,逐行分析

 1 <?php
 2 /**
 3  * @version        $Id: index.php 1 9:23 2010-11-11 tianya $
 4  * @package        DedeCMS.Site
 5  * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 6  * @license        http://help.dedecms.com/usersguide/license.html
 7  * @link           http://www.dedecms.com
 8  */
  
  /**
   *第一句if语句先来看看data下的common.inc.php文件是否存在,不存在则跳转到dede的
   *安装页面,停止执行下面的代码
   *common.inc.php文件应该是dede安装时生成数据库配置文件,内容也就是数据库连接信息
   *包括主机名($cfg_dbhost),数据库名($cfg_dbname),用户名($cfg_dbuser),用
   *户密码($cfg_dbpwd),表前缀设置($cfg_dbprefix)以及数据库使用编码格式($cfg_db_language)
   */
9 if(!file_exists(dirname(__FILE__).‘/data/common.inc.php‘)) 10 { 11 header(‘Location:install/index.php‘); 12 exit(); 13 }

  
   //isset($_GET[‘upcache‘]是get请求吧,不知道具体作用,希望知道告诉俺一下
  //!file_exists(‘index.html‘)判断index.html文件是否存在
  //总的意思大概就是如果是请求更新页面或者index.html文件不存在的话就重新生成一下
14 //自动生成HTML版 15 if(isset($_GET[‘upcache‘]) || !file_exists(‘index.html‘)) 16 {
    //引入include下的common.inc.php文件,里面定义了系统的许多关于目录的常量
    //做了安全检查之类的工作,模板目录的处理工作,引入了数据库处理类等等
17 require_once (dirname(__FILE__) . "/include/common.inc.php");
    
    //引入了include下的arc.partview.class.php类文件,设置要解析的模板文件以及调用解析模板和
    //保存html文件的方法

    //DEDEINC就是include下的common.inc.php文件中定义的一个常量,就是指include这个目录
18 require_once DEDEINC."/arc.partview.class.php";
    
    //给全局变量_arclistEnv赋值为index
19 $GLOBALS[‘_arclistEnv‘] = ‘index‘;

    //从#@__homepageset表中获取一条记录
    //#@__会替换成设置的表前缀
20 $row = $dsql->GetOne("Select * From `#@__homepageset`");

    ///**
      *  模板目录规则
      *
      * @param     string  $tmpdir  模板目录
      * @return    string
      *
      * function MfTemplet($tmpdir)
      * {
       *   $tmpdir = str_replace("{style}", $GLOBALS[‘cfg_df_style‘], $tmpdir);
       *  $tmpdir = preg_replace("/\/{1,}/", "/", $tmpdir);
        *  return $tmpdir;
      * }
      *从函数大概看出应该是把从表中的templet的内容{style}和/替换成实际的路径,在保存在$row[‘templet‘]里
      */
21     $row[‘templet‘] = MfTemplet($row[‘templet‘]);

    //实例化PartView
22 $pv = new PartView();

    //调用SetTemplet加载模板,内部调用解析模板方法
23 $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row[‘templet‘]);

    //查看这个$row[‘showmod‘]存在不,不存在就创建并赋值为0
24 $row[‘showmod‘] = isset($row[‘showmod‘])? $row[‘showmod‘] : 0;

    //$row[‘showmod‘]如果等于1就保存成index.html文件并加载index.html,否则就直接输出解析的模板字符串
25 if ($row[‘showmod‘] == 1) 26 { 27 $pv->SaveToHtml(dirname(__FILE__).‘/index.html‘); 28 include(dirname(__FILE__).‘/index.html‘); 29 exit(); 30 } else { 31 $pv->Display();//直接输出解析的模板字符串 32 exit(); 33 } 34 } 35 else 36 {
    //跳转到index.html
37 header(‘HTTP/1.1 301 Moved Permanently‘); 38 header(‘Location:index.html‘); 39 } 40 ?>

好多还不知道,郁闷!。。。。

  

  

dede源码解读(1)——index.php

标签:

原文地址:http://www.cnblogs.com/yeyulantu-yingkesong/p/5467561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!