WEBプログラミングアーキテクチャ改革に関する予備研究
プログラミングMVCアーキテクチャは、長い間、人々の心に深く根付いてきました。プログラミング言語の継続的な進歩と開発に伴い。このアーキテクチャは決して進歩していません。私たちは MVC モデルを VC モデルに大胆に進化させようとしています。 [注意してください] 私は進化を使用しています。これは、最初に MVC、次に VC を意味します。ダイレクトVCモードではなく。
繰り返しますが、これは MVC モデルが悪いと言っているわけではありません。実際には、さらに進化する可能性があります。 MVC パターンに慣れていないと、VC パターンを理解できません。
表面的には、Model の省略はプログラミング言語の進化の結果です。退化するというよりも。これにより効率が大幅に向上します。 。 。
1. モデルの前提条件を省略します。
2. モデルの実装を省略します。
3. モデルを省略することの強力な利点。
4. モデルを省略することで失われた機能を補うにはどうすればよいですか?
5. この 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 />
今日、私は単語を学びました: ナルシシズム
また、今日の単語: wuzhi&&youzhi.