首页 >后端开发 >php教程 >Thinkphp 前台代码后台重用

Thinkphp 前台代码后台重用

WBOY
WBOY原创
2016-06-06 20:31:481108浏览

比如我要做一个前台投稿页面,前台的控制器是Home/TougaoController,展示一个投稿的表单,接受并储存提交的数据。还带有一些JS逻辑代码。
现在如果我要在后台做一个一模一样的的表单可以编辑这个投稿,那么我怎么重用Home/TougaoController里面的方法?用A方法吗?如果前台的控制器初始化里带有一些跟后台控制器相斥的逻辑,那不是会出问题吗?还是有更好的方法?请各位大神指教

回复内容:

比如我要做一个前台投稿页面,前台的控制器是Home/TougaoController,展示一个投稿的表单,接受并储存提交的数据。还带有一些JS逻辑代码。
现在如果我要在后台做一个一模一样的的表单可以编辑这个投稿,那么我怎么重用Home/TougaoController里面的方法?用A方法吗?如果前台的控制器初始化里带有一些跟后台控制器相斥的逻辑,那不是会出问题吗?还是有更好的方法?请各位大神指教

ThinkPHP加入了RPC-Yar 可以实现跨项目 跨服务器调用。

你应该是用ThinkPHP3.2?
ThinkPHP3.2的多层MVC可以用Common来实现公用控制器(Common/TougaoController),再在Home/TougaoController用A方法。
或者你可以把重复的业务逻辑代码封装成函数写到Model里面。

能否考虑做成插件来实现?

假设投稿每张表都有个唯一ID
后台可以用这个ID去检索表中的值
然后有php把他输出到HTML中
在此过程中,ID都是唯一而且不变的。
提交修改只要对应ID。完成!
----------------我是分割线----------------------

复用控制器的话,使用A方法。

一下来自THINKPHP 3.2.3官方文档
// 实例化Home模块的User控制器
$User = new \Home\Controller\UserController();
// 实例化Admin模块的Blog控制器
$Blog = new \Admin\Controller\BlogController();

下面几种方式都可以
1,纯PHP方案 使用trait
2,通用后端架构的方案 使用service层 剥离业务

面向对象理解不透彻的楼主。默哀。
找本面向对象的书,翻上10页也不至于问出这种问题了。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn