lmei
  • ThinkPHP是一款不错的轻量级的PHP+MVC框架,它吸取了Ruby On Rails的特性,不仅将Model、View、Controller分开,而且实现了ORM、模板标签等高级特性。

    开发工具: 

  • 个人推荐调试工具用phpstorm,这款工具和RubyMine是同种风格的,相对其他开发工具更方便调试。
  • 刚开始体验php开发的时候,是用wampserver这款集成工具,因为比较简单入手,但是其实最好还是不要用集成的,这样会更安全些。

 

  ThinkPHP框架初体验  

  • 下载地址:http://www.thinkphp.cn/down.html
  •  下载完,拷贝到wampserver的www目录中,这个时候ThinkPHP还是不可以使用的。
  • 我们需要在WWW根目录新建一个文件夹app,在这个文件夹下新建一个index.php,插入下面代码:
<?php
    require \'/ThinkPHP框架所在目录/ThinkPHP.php\';
?>

        注意:默认端口号是80,如果是已修改端口号,如8080,请输入http://localhost:8080/app/

  • 接下来就可以看到这个图片,证明项目可运行啦~~

       

       很简单,对不对!@_@!!

 

    下面再介绍几个文件配置:

  • (一)根目录下的index.php:(根据项目需要进行修改配置)
define(\'APP_NAME\',\'Home\');            // 定义项目名称
define(\'APP_PATH\',\'./Home/\');        //  定义项目目录
define(\'APP_DEBUG\',true);            // 开启调试模式
//define(\'HTML_PATH\',APP_PATH.\'Runtime/Html/\'); //静态缓存目录配置,默认是APP_PATH.\'Html/\'
require(\'ThinkPHP/ThinkPHP.php\');   // 加载入口文件

       如果你想关闭反斜杠设置,可以在修改如下:

<?php
define(\'APP_NAME\',\'Admin\');                // 定义项目名称
define(\'APP_PATH\',\'./Admin/\');            // 定义项目目录
define(\'APP_DEBUG\',true);                //开启调试模式
//关闭反斜杠设置
if( !ini_set (\'magic_quotes_gpc\', 0) ){ if ( get_magic_quotes_gpc() ) { function stripslashes_deep($value) { $value = is_array($value) ? array_map(\'stripslashes_deep\', $value) : (isset($value) ? stripslashes($value) : null); return $value; } $_POST = stripslashes_deep($_POST); $_GET = stripslashes_deep($_GET); $_COOKIE = stripslashes_deep($_COOKIE); $_REQUEST = stripslashes_deep($_REQUEST); } } require(\'ThinkPHP/ThinkPHP.php\'); // 加载入口文件

     如果想了解更多关于反斜杠设置,请链接:http://www.cnblogs.com/lmei/p/3373864.html

 

  • (二)ThinkPHP的惯例配置文件convention.php

       该文件的存放目录为ThinkPHP/Conf/convention.php,下面为该配置文件的一些注释说明:

<?php
/**
 * ThinkPHP惯例配置文件
 * 该文件请不要修改,如果要覆盖惯例配置的值,可在项目配置文件中设定和惯例不符的配置项
 * 配置名称大小写任意,系统会统一转换成小写
 * 所有配置参数都可以在生效前动态改变
 * @category Think
 * @package  Common
 * @author   liu21st <liu21st@gmail.com>
 * @version  $Id: convention.php 3088 2012-07-29 09:12:19Z luofei614@gmail.com $
 */
defined(\'THINK_PATH\') or exit();
return  array(
    /* 项目设定 */
    \'APP_STATUS\'            => \'debug\',  // 应用调试模式状态 调试模式开启后有效 默认为debug 可扩展 并自动加载对应的配置文件
    \'APP_FILE_CASE\'         => false,   // 是否检查文件的大小写 对Windows平台有效
    \'APP_AUTOLOAD_PATH\'     => \'\',// 自动加载机制的自动搜索路径,注意搜索顺序
    \'APP_TAGS_ON\'           => true, // 系统标签扩展开关
    \'APP_SUB_DOMAIN_DEPLOY\' => false,   // 是否开启子域名部署
    \'APP_SUB_DOMAIN_RULES\'  => array(), // 子域名部署规则
    \'APP_SUB_DOMAIN_DENY\'   => array(), //  子域名禁用列表
    \'APP_GROUP_LIST\'        => \'\',      // 项目分组设定,多个组之间用逗号分隔,例如\'Home,Admin\'
    \'APP_GROUP_MODE\'        =>  0,  // 分组模式 0 普通分组 1 独立分组
    \'APP_GROUP_PATH\'        =>  \'Modules\', // 分组目录 独立分组模式下面有效
    \'ACTION_SUFFIX\'         =>  \'\', // 操作方法后缀

    /* Cookie设置 */
    \'COOKIE_EXPIRE\'         => 0,    // Coodie有效期
    \'COOKIE_DOMAIN\'         => \'\',      // Cookie有效域名
    \'COOKIE_PATH\'           => \'/\',     // Cookie路径
    \'COOKIE_PREFIX\'         => \'\',      // Cookie前缀 避免冲突

    /* 默认设定 */
    \'DEFAULT_M_LAYER\'       =>  \'Model\', // 默认的模型层名称
    \'DEFAULT_C_LAYER\'       =>  \'Action\', // 默认的控制器层名称
    \'DEFAULT_APP\'           => \'@\',     // 默认项目名称,@表示当前项目
    \'DEFAULT_LANG\'          => \'zh-cn\', // 默认语言
    \'DEFAULT_THEME\'         => \'\',    // 默认模板主题名称
    \'DEFAULT_GROUP\'         => \'Home\',  // 默认分组
    \'DEFAULT_MODULE\'        => \'Index\', // 默认模块名称
    \'DEFAULT_ACTION\'        => \'index\', // 默认操作名称
    \'DEFAULT_CHARSET\'       => \'utf-8\', // 默认输出编码
    \'DEFAULT_TIMEZONE\'      => \'PRC\',    // 默认时区
    \'DEFAULT_AJAX_RETURN\'   => \'JSON\',  // 默认AJAX 数据返回格式,可选JSON XML ...
    \'DEFAULT_JSONP_HANDLER\' => \'jsonpReturn\', // 默认JSONP格式返回的处理方法
    \'DEFAULT_FILTER\'        => \'htmlspecialchars\', // 默认参数过滤方法 用于 $this->_get(\'变量名\');$this->_post(\'变量名\')...

    /* 数据库设置 */
    \'DB_TYPE\'               => \'mysql\',     // 数据库类型
    \'DB_HOST\'               => \'localhost\', // 服务器地址
    \'DB_NAME\'               => \'\',          // 数据库名
    \'DB_USER\'               => \'root\',      // 用户名
    \'DB_PWD\'                => \'\',          // 密码
    \'DB_PORT\'               => \'\',        // 端口
    \'DB_PREFIX\'             => \'think_\',    // 数据库表前缀
    \'DB_FIELDTYPE_CHECK\'    => false,       // 是否进行字段类型检查
    \'DB_FIELDS_CACHE\'       => true,        // 启用字段缓存
    \'DB_CHARSET\'            => \'utf8\',      // 数据库编码默认采用utf8
    \'DB_DEPLOY_TYPE\'        => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    \'DB_RW_SEPARATE\'        => false,       // 数据库读写是否分离 主从式有效
    \'DB_MASTER_NUM\'         => 1, // 读写分离后 主服务器数量
    \'DB_SLAVE_NO\'           => \'\', // 指定从服务器序号
    \'DB_SQL_BUILD_CACHE\'    => false, // 数据库查询的SQL创建缓存
    \'DB_SQL_BUILD_QUEUE\'    => \'file\',   // SQL缓存队列的缓存方式 支持 file xcache和apc
    \'DB_SQL_BUILD_LENGTH\'   => 20, // SQL缓存的队列长度
    \'DB_SQL_LOG\'            => false, // SQL执行日志记录

    /* 数据缓存设置 */
    \'DATA_CACHE_TIME\'       => 0,      // 数据缓存有效期 0表示永久缓存
    \'DATA_CACHE_COMPRESS\'   => false,   // 数据缓存是否压缩缓存
    \'DATA_CACHE_CHECK\'      => false,   // 数据缓存是否校验缓存
    \'DATA_CACHE_PREFIX\'     => \'\',     // 缓存前缀
    \'DATA_CACHE_TYPE\'       => \'File\',  // 数据缓存类型,支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator
    \'DATA_CACHE_PATH\'       => TEMP_PATH,// 缓存路径设置 (仅对File方式缓存有效)
    \'DATA_CACHE_SUBDIR\'     => false,    // 使用子目录缓存 (自动根据缓存标识的哈希创建子目录)
    \'DATA_PATH_LEVEL\'       => 1,        // 子目录缓存级别

    /* 错误设置 */
    \'ERROR_MESSAGE\'         => \'页面错误!请稍后再试~\',//错误显示信息,非调试模式有效
    \'ERROR_PAGE\'            => \'\',    // 错误定向页面
    \'SHOW_ERROR_MSG\'        => false,    // 显示错误信息
    \'TRACE_EXCEPTION\'       => false,   // TRACE错误信息是否抛异常 针对trace方法 

    /* 日志设置 */
    \'LOG_RECORD\'            => false,   // 默认不记录日志
    \'LOG_TYPE\'              => 3, // 日志记录类型 0 系统 1 邮件 3 文件 4 SAPI 默认为文件方式
    \'LOG_DEST\'              => \'\', // 日志记录目标
    \'LOG_EXTRA\'             => \'\', // 日志记录额外信息
    \'LOG_LEVEL\'             => \'EMERG,ALERT,CRIT,ERR\',// 允许记录的日志级别
    \'LOG_FILE_SIZE\'         => 2097152,    // 日志文件大小限制
    \'LOG_EXCEPTION_RECORD\'  => false,    // 是否记录异常信息日志

    /* SESSION设置 */
    \'SESSION_AUTO_START\'    => true,    // 是否自动开启Session
    \'SESSION_OPTIONS\'       => array(), // session 配置数组 支持type name id path expire domain 等参数
    \'SESSION_TYPE\'          => \'\', // session hander类型 默认无需设置 除非扩展了session hander驱动
    \'SESSION_PREFIX\'        => \'\', // session 前缀
    //\'VAR_SESSION_ID\'      => \'session_id\',     //sessionID的提交变量

    /* 模板引擎设置 */
    \'TMPL_CONTENT_TYPE\'     => \'text/html\', // 默认模板输出类型
    \'TMPL_ACTION_ERROR\'     => THINK_PATH.\'Tpl/dispatch_jump.tpl\', // 默认错误跳转对应的模板文件
    \'TMPL_ACTION_SUCCESS\'   => THINK_PATH.\'Tpl/dispatch_jump.tpl\', // 默认成功跳转对应的模板文件
    \'TMPL_EXCEPTION_FILE\'   => THINK_PATH.\'Tpl/think_exception.tpl\',// 异常页面的模板文件
    \'TMPL_DETECT_THEME\'     => false,       // 自动侦测模板主题
    \'TMPL_TEMPLATE_SUFFIX\'  => \'.html\',     // 默认模板文件后缀
    \'TMPL_FILE_DEPR\'        =>  \'/\', //模板文件MODULE_NAME与ACTION_NAME之间的分割符

    /* URL设置 */
    \'URL_CASE_INSENSITIVE\'  => false,   // 默认false 表示URL区分大小写 true则表示不区分大小写
    \'URL_MODEL\'             => 1,       // URL访问模式,可选参数0、1、2、3,代表以下四种模式:
    // 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE  模式); 3 (兼容模式)  默认为PATHINFO 模式,提供最好的用户体验和SEO支持
    \'URL_PATHINFO_DEPR\'     => \'/\',    // PATHINFO模式下,各参数之间的分割符号
    \'URL_PATHINFO_FETCH\'    =>   \'ORIG_PATH_INFO,REDIRECT_PATH_INFO,REDIRECT_URL\', // 用于兼容判断PATH_INFO 参数的SERVER替代变量列表
    \'URL_HTML_SUFFIX\'       => \'\',  // URL伪静态后缀设置
    \'URL_PARAMS_BIND\'       =>  true, // URL变量绑定到Action方法参数
    \'URL_404_REDIRECT\'      =>  \'\', // 404 跳转页面 部署模式有效

    /* 系统变量名称设置 */
    \'VAR_GROUP\'             => \'g\',     // 默认分组获取变量
    \'VAR_MODULE\'            => \'m\',        // 默认模块获取变量
    \'VAR_ACTION\'            => \'a\',        // 默认操作获取变量
    \'VAR_AJAX_SUBMIT\'       => \'ajax\',  // 默认的AJAX提交变量
    \'VAR_JSONP_HANDLER\'     => \'callback\',
    \'VAR_PATHINFO\'          => \'s\',    // PATHINFO 兼容模式获取变量例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_DEPR
    \'VAR_URL_PARAMS\'        => \'_URL_\', // PATHINFO URL参数变量
    \'VAR_TEMPLATE\'          => \'t\',        // 默认模板切换变量
    \'VAR_FILTERS\'           =>  \'filter_exp\',     // 全局系统变量的默认过滤方法 多个用逗号分割

    \'OUTPUT_ENCODE\'         =>  true, // 页面压缩输出
    \'HTTP_CACHE_CONTROL\'    =>  \'private\', // 网页缓存控制

);

    (1)如果你想开启分组功能,可以修改上面配置文件,比如分组:Index、Admin,配置成下面所示,

\'APP_GROUP_MODE\'  =>  0,           //0:普通分组;1为独立分组
\'APP_GROUP_LIST\'=>\'Index, Admin\',  //假设Index为前端,Admin为后端
\'DEFAULT_GROUP\'=>\'Index\'          //默认分组

  这样就实现了分组了,分组中目录基本都是公用的。

  如果后台单独定义的话,需要再目录下新建一个Admin目录之后在新建一个文件来存放eg(Common/Admin/function.php:这就是专属于后台的函数文件)。

   (2)或者你想让网站结构简单点,可以配置成独立分组

\'APP_GROUP_MODE\'  =>  1,     //0:为普通分组;1:独立分组
\'APP_GROUP_LIST\'=>\'\'\'APP_GROUP_PATH\'=>\'Moudles\', //独立文件夹名称

 

分类:

技术点:

相关文章: