## 自动加载
```
$composer dumpautoload -o
```
会生成:`vendor/composer/autoload_namespaces.php` 文件,方便自动加载。
## 扩展类库
框架根目录下的`extends`目录称为`扩展类库目录`,用于存放一些自定义的类,只要符合自动加载的规范(命名空间、类名、文件名),就可以直接使用。
### 1.`extend`目录
假设在`extend`目录下创建一个`Upload.php`文件,不需要添加命名空间。
~~~
<?php
class Upload
{
}
~~~
此时可以在控制器中直接使用`\Upload`类。
### 2\. 带层级的类
假设在`extend/file`目录下创建一个`Upload.php`文件,此时需要添加命名空间。
~~~
<?php
namespace file;
class Upload
{
}
~~~
此时可以在控制器中直接使用`\file\Upload`类。
## 公共函数
在公共函数文件中定义的函数在任何地方可以用,也可以理解为自定义助手函数
> 公共函数文件位置
* 全局公共函数文件:在所有应用中都可以使用
~~~
app/common.php
~~~
* 应用公共函数文件
~~~
app/应用名称/common.php
// index 应用的公告函数文件 只能在index应用下使用
app/index/common.php
~~~
## 常用的助手函数
### input
> input( ) 助手函数语法格式
~~~
input('请求类型.]参数名[/变量修饰符]', '默认值', '过滤方法');
~~~
> 获取某个请求类型的所有请求参数
~~~
// 获取get请求类型的所有参数及其参数值
// 返回值:一维数组
// 键名:参数名,键值:参数值
$array = input('get.');
// 获取post请求类型的所有参数及其参数值
// 返回值:一维数组
// 键名:参数名,键值:参数值
$array = input('post.');
// 获取全部变量
$array = input('param.');
~~~
> 获取某个请求参数的值
~~~
// 获取任何请求类型的name参数值
$name = input('name');
//或者
$array = input('param.name');
~~~
> 变量修饰符
~~~
// 获取指定参数的值并将转为数字
$id = input('id/d');
~~~
> 参数默认值
~~~
// 获取指定参数的值 没有获取到将返回默认值
// 示例:如果id参数不存在,返回 666
$id = input('id', 1);
~~~
> 过滤方法
~~~
// 获取指定参数的值再经过intval函数进行过滤
$id = input('id','', 'intval');
~~~
### 构造url
```
// /admin/index/index.html
echo url('admin/index/index') . PHP_EOL;
// /admin/index/index.html?id=10
echo url('admin/index/index', ['id' => 10]) . PHP_EOL;
// /admin/index/index.html?id=10
echo url('index/index', ['id' => 10]) . PHP_EOL;
// /index/index.html?id=10
echo url('/index/index', ['id' => 10]) . PHP_EOL;
```
### redirect
> redirect 重定向助手函数
~~~
public function index()
{
// 重定向之前,会检查可用性
return redirect('index/login');
}
~~~
### 调用 `view` 视图
如果使用`view`助手函数,格式如下:
~~~
return view('index', [
'name' => 'foo bar',
'email' => 'foo@bar.com'
]);
~~~
等同于:
~~~
// 或者批量赋值
return View::fetch('index', [
'name' => 'foo bar',
'email' => 'foo@bar.com'
]);
~~~
或:
~~~
View::assign('name','foo bar');
View::assign('email','foo@bar.com);
return View::fetch('index');
~~~
### 获取本地的环境变量`env`
获取本地的环境变量,常常在配置文件中使用。
```
//读取 `.env` 文件的配置,如果不存在,用 `root` 代替
Env::get('database.username', 'root'),
//使用助手函数
env('APP_DEBUG');
env('APP.Default_timezone');
```
- 第1章 搭建ThinkPHP的开发环境
- 第2章 配置ThinkPHP
- 第3章 必要的基础知识(basic)
- 第4章 MVC开发模式
- 第5章 控制器(controller)
- 第6章 数据库(database)
- 第7章 模型(model)
- 第8章 模型关联(relation)
- 第9章 视图(view)
- 第10章 Session
- 第11章 Cookie
- 第12章 缓存(cache)
- 第13章 上传(upload)
- 第14章 验证器(validate)
- 第15章 验证码(captcha)
- 第16章 命令行(command)
- 第17章 服务器部署(deploy)
- 第18章 数据备份(backup)
- 第19章 数据同步(synchronization)
- 第20章 订阅服务(subscribe)
- 附录 1 PHP 易混淆知识点
- 附录 2 助手函数
- 附录 3 MySQL 规范
- 附录 4 Redis 规范
- 附录 5 office插件 phpoffice
- 附录 6 拼音插件 pinyin
- 附录 7 日期插件 datetime
- 附录 8 消息插件 amqp
- 附录 9 产品部署环境的搭建
- 附录 10 PDF 等杂项处理