1. thinkPHP5.1的运行流程图

2. 配置的获取和设置
- 主要有两种方式
- 一种是通过 Config类的 get 和 set 方法 / pull()方法
- 另一种就是通过助手函数来获取和设置。
2.1 No input file specified问题
- 问题描述
- 有可能当配置完成本地域名如我的 tp5.1.com 就可以直接访问public/index.php ,但是可能加上路劲继续访问后会有 No input file specified.打印在页面。
解决办法一 : 路径 :\public.htaccess.php中配置,改一下配置,其实也就是添加了一个?
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]</IfModule>
解决办法二 : 与php版本有关 PHP版本5.6以上都会出现这个问题 降低版本,这个方法不是太好,谁TM愿意用低的版本
2.2 dump函数
- 问题描述:
- php其实是没有这个函数的,dump()函数是thinkPHP自定义的函数,它的作用和var_dump()一样,但是它在浏览器上的输出更为友好一些。
定义的位置 thinkphp\library\think\Debug.php
/** * 浏览器友好的变量输出 * @access public * @param mixed $var 变量 * @param boolean $echo 是否输出 默认为true 如果为false 则返回输出字符串 * @param string $label 标签 默认为空 * @param integer $flags htmlspecialchars flags * @return void|string */public function dump($var, $echo = true, $label = null, $flags = ENT_SUBSTITUTE){ $label = (null === $label) ? '' : rtrim($label) . ':'; if ($var instanceof Model || $var instanceof ModelCollection) { $var = $var->toArray(); } ob_start(); var_dump($var); $output = ob_get_clean(); $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output); if (PHP_SAPI == 'cli') { $output = PHP_EOL . $label . $output . PHP_EOL; } else { if (!extension_loaded('xdebug')) { $output = htmlspecialchars($output, $flags); } $output = '<pre>' . $label . $output . '</pre>'; } if ($echo) { echo($output); return; } return $output;}
2.3 配置获取-相关代码
- 推荐使用Config类来获取配置而不是使用助手函数来获取问题。
<?phpnamespace app\admin\controller;use think\facade\Config;class User{ public function get() { // 获取全部的配置项 // dump(Config::get()); // 获取一个一级配置项 // dump(Config::get('app.')); // 仅仅是为了获取一级配置项,更推荐使用pull()方法 // dump(Config::pull('app')); // 获取一个二级配置项 // dump(Config::get('app.default_lang')); // app是默认的一级配置前缀是可以省略的 // dump(Config::get('default_lang')); // 查询一个二级配置项,此时database不可以省略 // dump(Config::get('database.hostname')); // 判断是否具有某一个二级配置项 返回true代表有这个配置 // dump(Config::has('database.hostname')); } public function set() { // 设置一个配置项 // dump(Config::get('app.app_debug')); // Config::set('app.app_debug', false); // dump(Config::get('app.app_debug')); } public function helper() { // 助手函数不依赖于 Config类 // 不传入参数获取全部的配置项 // dump(config()); // 和get类似传入参数获取你想要查看的配置 // dump(config('app.')); // dump(config('app.default_return_type')); // 查询某个配置项是否存在 // dump(config('?database.username')); // 设置某个配置项 // dump(config('app.app_debug')); // config('app.app_debug', false); // dump(config('app.app_debug')); }}