简单介绍ThinkPHP3.1.3使用笔记

ThinkPHP是国内一款很是不错的框架了,在学习ThinkPHP以前进咱们必须了解php mysql及mvc模式了,懂了这些你才能够学习ThinkPHP了,下面我就简单的介绍个人学习笔记吧。
 
 

框架只是工具,它只是将你所常常用的代码按照必定的模式整理起来。方便程序员快速开发,也方便团队协调工做。但框架的基础是语言。若是连PHP有多少个超级全局变量都不知道的话,仍是须要返回去好好打打基础。磨刀不误砍柴工。php

   个人一个前辈说过,阅读高手写的代码是程序员迅速提高的最佳捷径。确实是这样,若是只是照着书写个简单的增改删查,也许你永远是一个低级程序员(也写程序猿,也写程序媛)。
   要大胆的跳出思惟限制。在本身尝试学习的时候要多改框架。积极使用echo,print_r,var_dump等。在你驾驭了框架的时候,固然能够按照本身的实际需求修改了,它再牛逼也是你完成项目的工具而已。就像骑车子,先能够买整车,当充分了解的时候,你就能够按照本身的需求组车了。
   兴趣是学习最大的动力。若是喜欢,必定坚持下去。我以为如今的社会大部分人的幸福指数是很低的,工做虽然是糊口的手段,但也是陪伴几乎你一辈子的东西,不要干了几十年本身的工做,回头想一想没有一点乐趣。
   学习ThinkPHP以前须要掌握的东西:PHP,MySql,MVC模式。
再说ThinkPHP框架缓存以前,我想说说,ThinkPHP绝对是能够和CI相媲美的优秀框架。并且是国内首屈一指的PHP框架。
TP中有一个常量APP_DEBUG,位于入口文件ThinkPHP.php中。
这个常量是用来设置是否开启调试模式,咱们能够在引入入口文件前进行自定义。若是将其置为FALSE,则会在runtime文件夹下生成一份~runtime.php的文件(路径和文件名都可修改)。可是文件去掉注释,空格和换行。若是直接看这份文件,太过费事。
查看源码,咱们能够在runtime.php中找到一个函数:build_runtime_cache(),在写入缓存前使用了函数strip_whitespace()。咱们修改源代码,将此函数去掉。而后从新编译。你会发现~runtime.php中的内容一目了然。现罗列在下面mysql

 代码以下 复制代码
$GLOBALS['_beginTime'] = microtime(TRUE);
defined('APP_NAME') or define('APP_NAME','Home');
defined('APP_PATH') or define('APP_PATH','Home/');
defined('APP_DEBUG') or define('APP_DEBUG',false);
defined('MEMORY_LIMIT_ON') or define('MEMORY_LIMIT_ON',true);
defined('THINK_PATH') or define('THINK_PATH','D:\workplace\llbook\Source\ThinkPHP/');
defined('RUNTIME_PATH') or define('RUNTIME_PATH','Home/Runtime/');
defined('RUNTIME_FILE') or define('RUNTIME_FILE','Home/Runtime/~runtime.php');
defined('THINK_VERSION') or define('THINK_VERSION','3.1.3');
defined('MAGIC_QUOTES_GPC') or define('MAGIC_QUOTES_GPC',false);
defined('IS_CGI') or define('IS_CGI',0);
defined('IS_WIN') or define('IS_WIN',1);
defined('IS_CLI') or define('IS_CLI',0); 
defined('_PHP_FILE_') or define('_PHP_FILE_','/llbook/index.php');
defined('__ROOT__') or define('__ROOT__','/llbook');
defined('URL_COMMON') or define('URL_COMMON',0);
defined('URL_PATHINFO') or define('URL_PATHINFO',1);
defined('URL_REWRITE') or define('URL_REWRITE',2);
defined('URL_COMPAT') or define('URL_COMPAT',3);
defined('CORE_PATH') or define('CORE_PATH','D:\workplace\llbook\Source\ThinkPHP/Lib/');
defined('EXTEND_PATH') or define('EXTEND_PATH','D:\workplace\llbook\Source\ThinkPHP/Extend/');
defined('MODE_PATH') or define('MODE_PATH','D:\workplace\llbook\Source\ThinkPHP/Extend/Mode/');
defined('ENGINE_PATH') or define('ENGINE_PATH','D:\workplace\llbook\Source\ThinkPHP/Extend/Engine/');
 
defined('VENDOR_PATH') or define('VENDOR_PATH','D:\workplace\llbook\Source\ThinkPHP/Extend/Vendor/');
defined('LIBRARY_PATH') or define('LIBRARY_PATH','D:\workplace\llbook\Source\ThinkPHP/Extend/Library/');
defined('COMMON_PATH') or define('COMMON_PATH','Home/Common/');
defined('LIB_PATH') or define('LIB_PATH','Home/Lib/');
defined('CONF_PATH') or define('CONF_PATH','Home/Conf/');
defined('LANG_PATH') or define('LANG_PATH','Home/Lang/');
defined('TMPL_PATH') or define('TMPL_PATH','Home/Tpl/');
defined('HTML_PATH') or define('HTML_PATH','Home/Html/');
defined('LOG_PATH') or define('LOG_PATH','Home/Runtime/Logs/');
defined('TEMP_PATH') or define('TEMP_PATH','Home/Runtime/Temp/');
defined('DATA_PATH') or define('DATA_PATH','Home/Runtime/Data/');
defined('CACHE_PATH') or define('CACHE_PATH','Home/Runtime/Cache/');
set_include_path(get_include_path() . PATH_SEPARATOR . VENDOR_PATH);   
Common.php  //文件内容
Think{}
ThinkException{}
Behavior{}
ReadHtmlCacheBehavior{}
CheckRouteBehavior{}
ParseTemplateBehavior{}
ContentReplaceBehavior{}
TokenBuildBehavior{}
WriteHtmlCacheBehavior{}
ShowRuntimeBehavior{}
ShowPageTraceBehavior{}
alias_import(array (
  'Model' => 'D:\workplace\llbook\Source\ThinkPHP/Lib/Core/Model.class.php',
  'Db' => 'D:\workplace\llbook\Source\ThinkPHP/Lib/Core/Db.class.php',
  'Log' => 'D:\workplace\llbook\Source\ThinkPHP/Lib/Core/Log.class.php',
  'ThinkTemplate' => 'D:\workplace\llbook\Source\ThinkPHP/Lib/Template/ThinkTemplate.class.php',
  'TagLib' => 'D:\workplace\llbook\Source\ThinkPHP/Lib/Template/TagLib.class.php',
  'Cache' => 'D:\workplace\llbook\Source\ThinkPHP/Lib/Core/Cache.class.php',
  'Widget' => 'D:\workplace\llbook\Source\ThinkPHP/Lib/Core/Widget.class.php',
  'TagLibCx' => 'D:\workplace\llbook\Source\ThinkPHP/Lib/Driver/TagLib/TagLibCx.class.php',
));
Functions.php
Log{}
Dispatcher{}
App{}
Action{}
View{}
L() //语言设置函数
G('loadTime');
Think::Start(); //启动

之因此费这么大的劲罗列一下是由于我也想看看到底这个框架运行的时候包含了那些须要的文件。这也就是说上面的文件咱们在写项目的时候能够直接引用。TP就是按照各类规则条件将文件打乱,按照MVC模式,进行工厂化的处理。可是在使用的时候必须将文件一一引入,你能够把它们看做是ThinkPHP.php中的一份文件。还能够看出,它加载的是最基础的配置文件,函数文件,类文件。而项目文件里面的配置文件和函数文件也是经过函数引入的(这里没有配置),而天安妇科医院类文件如Action文件和Module文件是经过url路由规则动态获取的。从这份缓存文件里还能够看出,TP有不少约定的规则,如命名规则,路径规则等。我以为在使用TP的时候咱们必须明白TP是如何将不一样行为的文件分割开发,又是如何利用路径规则在文件须要的时候恰当引入的。咱们接下全部的项目都基于上面这份文件里的代码,学习这份代码是必要的。
那么当使用框架的时候,如何利用框架进行项目部署呢?我以为由于TP的灵活性,给咱们提供了不少的选择。由于一个项目通常分为前台和后台。咱们能够经过分组,将二者部署到一个项目文件夹下,可是我以为这样是不明智的。
对于项目分组,我以为应该把前台和后台彻底分离,置于两个文档树中,框架共用,但核心代码最好分割开来。程序员

相关文章
相关标签/搜索