WEB编程架构改革初探
长久以来,编程MVC架构深入人心。随着编程语言的不断进步和发展。这种架构始终没有进步, 我们尝试着将MVC模式大胆进化为VC模式。【千万注意】,我用的是进化,是先有MVC,再有VC。而不是直接VC模式。
再次强调,不是说MVC模式不好。其实还可以进化得更好。当MVC模式你还不熟悉的时候,你无法理解VC模式。
表面上省略掉Model,是编程语言进化的结果。而不是退步。为此会带来效率的大幅度提升。。。
一、 省略掉model的前提条件。
二、 省略掉model的实现。
三、 省略掉model后的强大好处。
四、 如何弥补省略掉model所失去的功能?
五、 为此VC架构的php框架实现。
以上功能下面慢慢补充…
在此抛砖引玉,希望大家不吝赐教。。。。
跟贴有分啊。。。。
------解决思路----------------------
<br />namespace Admin\Controller;<br />use Api\Controller\ProductController as ApiProduct;<br />class ProductController extends AdminController {<br /> public function edit() {<br /> if (I('submit')) {<br /> $res = ApiProduct::setInfo(I());<br /> if ($res === true) {<br /> $alert = I('id') ? '编辑成功' : '发布成功';<br /> $this->success($alert, '/admin/product');<br /> exit;<br /> } else {<br /> $this->error($res);<br /> }<br /> }<br /><br /> I('id') && $this->data = ApiProduct::getInfo(I('id'));<br /> $this->cate = ApiProduct::getCate();<br /> $this->paramdata = ApiProduct::getParam();<br /> $this->param = C('YH_PARAM');<br /> $this->title = I('id') ? '商品编辑' : '商品发布';<br /> $this->display('product/edit');<br /> }<br />}<br />
<br /> public function getInfo($id) {<br /> $id = intval($id);<br /> $data = M('product')->where("id = $id")->find();<br /> $stripfield = array('name', 'name_en', 'content', 'content_en');<br /> foreach ($stripfield as $field) {<br /> $data[$field] = stripslashes($data[$field]);<br /> }<br /> $data['adddate'] = date('Y-m-d', $data['addtime']);<br /> $data['pathArr'] = explode('-', $data['path']);<br /> $data['img'] = ImageController::getAll(1, $id);<br /> return $data;<br /> }<br /><br /> public function setInfo($post) {<br /> $id = intval($post['id']);<br /> $data = array();<br /> $data['logo'] = $post['logo'];<br /> $data['name'] = $post['name'];<br /> $data['name_en'] = $post['name_en'];<br /> $cid = intval($post['cid']);<br /> $data['path'] = self::getCatePath($cid);<br /> list($top) = explode('-', $data['path']);<br /> $param = C('YH_PARAM');<br /> foreach ($param as $key => $val) {<br /> $data[$val['field']] = $post[$val['field']][$top];<br /> }<br /> $data['content'] = $post['content'];<br /> $data['content_en'] = $post['content_en'];<br /> $data['urltb'] = format_url($post['urltb']);<br /> $data['urlone'] = format_url($post['urlone']);<br /> $data['urljd'] = format_url($post['urljd']);<br /><br /> if (empty($data['name']) <br><font color='#FF8000'>------解决思路----------------------</font><br> empty($data['name_en'])) {<br /> return '商品名称不能为空';<br /> }<br /> if (empty($data['path'])) {<br /> return '请选择分类';<br /> }<br /><br /> if ($id) {<br /> $data['id'] = $id;<br /> M('product')->save($data);<br /> } else {<br /> $data['addtime'] = time();<br /> $id = M('product')->add($data);<br /> }<br /><br /> ImageController::addImg($post['newimg'], 1, $id);<br /> ImageController::delImg($post['delimg']);<br /> if (empty($data['logo'])) {<br /> $logo = ImageController::getOne(1, $id);<br /> M('product')->where("id = $id")->setField('logo', $logo);<br /> }<br /><br /> return true;<br /> }<br /><br />
I learnt a word today: Narcissism
I also learnt a word today: wuzhi&&youzhi.