## 自动加载 ``` $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'); ```