// 绑定URL中的参数到操作的方法中,格式为key/value // 使用场景:需要在控制器中获取URL中的参数并进行相应的逻辑处理 // 注意事项:不要绑定无关的参数,避免不必要的性能消耗和安全风险 // 绑定GET参数 public function index($id = 0, $name = '') { // 逻辑处理代码 } // 绑定POST参数 public function save() { $data = input('post.'); // 直接获取所有POST参数 $name = input('post.name'); // 获取指定POST参数 // 逻辑处理代码 } // 绑定路由参数 public function detail($category = '', $id = 0) { // 逻辑处理代码 } // 绑定路由和URL参数 public function edit($id = 0) { // 逻辑处理代码 }
ThinkPHP中使用Traits提取公共逻辑的方法
// 使用场景:在多个控制器或模型中需要复用相同的逻辑代码 // 使用Traits可以将共同的逻辑代码定义在一个Traits类中,然后在其他类中引用,实现代码复用的效果 // 1. 定义Traits类,例如CommonTrait.php namespace app\common; trait CommonTrait { public function log($message) { // 记录日志逻辑 } // 其他公共逻辑方法... } // 2. 在控制器或模型中引用Traits namespace app\controller; use app\common\CommonTrait; class UserController { use CommonTrait; public function login() { // 公共逻辑方法可直接在此处使用,无需重复编写 $this->log('用户登录'); // 逻辑处理代码 } } // 在其他控制器或模型中同样可以引用CommonTrait,实现共享逻辑代码的效果
ThinkPHP中使用命名空间实现模块化开发的方法
// 使用场景:在大型项目中,为了方便代码管理、模块化开发和代码复用,可以使用命名空间的方式组织代码 // 1. 在config目录下的app.php文件中设置app_namespace参数 'app_namespace' => 'app', // 2. 根据项目需求创建不同的模块目录,例如app目录下有admin和home两个模块 app/ ├── admin/ │ ├── controller/ │ ├── model/ │ └── ... ├── home/ │ ├── controller/ │ ├── model/ │ └── ... ├── common/ // 存放通用的控制器、模型、函数等 ├── widget/ // 存放页面小部件 └── ... // 3. 在控制器或模型类中定义命名空间 namespace app\admin\controller; use think\Controller; class UserController extends Controller { // 逻辑处理代码 } namespace app\home\controller; use think\Controller; class UserController extends Controller { // 逻辑处理代码 } // 在应用中使用不同命名空间引入所需的控制器或模型,实现模块化开发