中文乱码字幕午夜无线观看_中文免费国产三级_中文日本国产高清_中文日韩字幕一区在线观看_中文精品在线视频_中文熟妇人妻又伦精品_国产美女爽到喷出水来视频

我們的使命

助力跨境賣家高效建立全球銷售網(wǎng)絡

喜報2021年我司獲《江蘇省國家高新技術企業(yè)》認定

分類目錄

文章標簽

熱門推薦

相關咨訊

opencart前臺編輯,magento控制器

2022-09-16 10:05:48 - 米境通跨境電商

    

    用了一年的Opencart,總覺得要記下點什么。一方面檢驗一下自己對這個開源程序的理解程度,另一方面是作個筆記,以備不時之需!

    1.MVCL

    MVC算是老生常談了,opencart里多了一個語言層L,在目錄里看起來是這樣的:

    opencart

    |--admin

    |--catalog

    |----controller

    |----language

    |----model

    |----view

    |--image

    |--system

    |--index.php

    opencart是網(wǎng)站根目錄,catalog前臺,system核心文件。這樣的結(jié)構(gòu)目錄看起來一目了然

    2.注冊樹模式

    opencart的核心架構(gòu)運用的是注冊樹模式,registry.php

    finalclassRegistry{

    private$data=array();

    publicfunctionget($key){

    return(isset($this->data[$key])?$this->data[$key]:null);

    }

    publicfunctionset($key,$value){

    $this->data[$key]=$value;

    }

    publicfunctionhas($key){

    returnisset($this->data[$key]);

    }

    }

    入口文件index.php中則這樣:

    //Registry

    $registry=newRegistry();

    //Loader

    $loader=newLoader($registry);

    $registry->set('load',$loader);

    把所有核心文件的實例都保存在Registry對象中,其結(jié)果就是Registry對象像一顆巨大的樹,包含了所有控制結(jié)構(gòu)的對象,然后,

    在控制器中加載語言包這樣的:

    1$this->load->language('checkout/cart');

    加載模型是這樣的:

    $this->load->model('catalog/product');

    接收表單參數(shù)這樣的:

    $this->request->post['quantity']

    加載配置文件:

    $this->config->get('config_template')

    加載模版:

    $this->load->view('default/template/error/not_found.tpl',$data)

    這樣的好處是我們在處理業(yè)務邏輯的時候可以以這樣的方法調(diào)用任意模版、模型、配置文件、第三方類庫等。雖然看起來這樣加載顯得冗余,且大多數(shù)時候也確實不需要這么多的類庫,但是opencart的核心文件非常小巧,這樣的設計我覺得還是比較高效的。

    3.前端控制器(FrontController)、路由和輸出

    3.1在控制器目錄controller/common中有兩個特殊的控制器類maintenance.php和seo_url.php每次有url請求時在入口處都是先加載這兩個類,這兩個類的2個作用:

    a.劫取每次請求的url并重新處理,當然也可以不處理url,具體在配置文件中配置

    b.類似鉤子,配合接下來的路由選擇分發(fā)

    3.2路由

    a.front.php負責分發(fā)(dispatch),并用maintenance.php或seo_url.php去調(diào)用action.php類

    b.action.php獲取當前請求的url,實例化并執(zhí)行

    3.3輸出

    a.打開緩沖區(qū),把當前控制器的$data變量和對應的模版全部輸出,并保存在Response.php類的私有變量$output中

    publicfunctionview($template,$data=array()){

    $file=DIR_TEMPLATE.$template;

    if(file_exists($file)){

    extract($data);

    ob_start();

    require($file);

    $output=ob_get_contents();

    ob_end_clean();

    return$output;

    }else{

    trigger_error('Error:Couldnotloadtemplate'.$file.'!');

    exit();

    }

    }

    publicfunctionsetOutput($output){

    $this->output=$output;

    }

    b.入口文件最后一句,$response->output();輸出
    聯(lián)系我們
  • 24H客服
  • 聯(lián)系電話:16651690460(龍經(jīng)理)
  • 微信咨詢:
南京天遙路聯(lián)網(wǎng)絡科技有限公司,版權所有 Copyright By ?米境通ERP4.0,2015-2025,蘇ICP備:蘇ICP備15044100號-4, 蘇公網(wǎng)安備:32011402011043
泗水县| 新邵县| 通海县| 弋阳县| 玉屏| 台北市| 高雄县| 乐安县| 江永县| 澄迈县| 浮山县| 兰西县| 定南县| 从化市| 尉犁县| 甘孜| 仪陇县| 牙克石市| 嘉黎县| 禹州市| 醴陵市| 山东| 什邡市| 喀喇沁旗| 彰化市| 孝义市| 永福县| 青龙| 琼海市| 休宁县| 商都县| 同江市| 峡江县| 宁海县| 肥城市| 天津市| 锦州市| 涿州市| 澳门| 安乡县| 黑龙江省|