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类来获取配置而不是使用助手函数来获取问题。
<?php
namespace 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'));
}
}