天天看點

opencart 學習筆記一

1. Opencart的系統架構   1.1. 架構分析   Opencart是有自己的開發架構的,其架構的核心都在system\engine 下,通路控制統一用 根目錄下的 index.php 來協調。   Route 就是起到一個中轉器的作用,它會根據你的Route目錄去找到它要執行的方法,比如:   index.php?route=account/login   根據這個route,op的架構會找到Controller下的Account裡的Login.php, 注意login.php的類名一定是這種格式的ControllerAccoutLogin{...}   否則Op就識别不了目錄,route=account/login 會執行類的預設方法:index   如果要指明執行那個方法,則在login後面再加上   route=account/login/你定義的方法名   并且在login.php 裡定義你要執行的方法。   同理,Op裡 load 語言包和model等都是以這種機制為基礎的。請結合程式,應該是比較好了解的。   至于View層,Op都是把要顯示的資料加載到 this->data裡去的,這樣就可以用 $變量名 在頁面上顯示變量了。   1.2. Op系統配置檔案 (這段是引用别人的。。。找不到出處了 - - 作者看到請聯系我)   在Op的目錄下,可以發現一個 Config.php檔案,這裡是配置一些OP要使用到的配置路徑,并且是每個單獨項目裡都有一個單獨的配置(這點要注意),比如admin和catalog下就分别有這個檔案。   OpenCart是使用面向對象程式設計的,同時又使用了MVC的設計思想,是以在解讀其源代碼時是看不到過程式的代碼的。同時它把MVC架構部分單獨放在library目錄中,這個部分的内容一般是不作修改的。就象你顯式地使用其它架構程式設計一樣。   Engine下有一個裝配器檔案:loader.php,這個檔案中隻有一個類:loader,實際上是一個排程程式,架構中的其它元件,如controller,module,session,cache,language統統由它裝載排程。   為了讓系統運作起來, 象所有的PHP程式一樣,OpenCart需要把系統中的一些重要的參數從config.php中,對于這個檔案,按慣例,使用一句:   require('config.php');   連接配接資料庫的DSN參數和相關目錄設定就可用了,下面有必要将config.php檔案清單在下,這有利于我們了解OpenCart的設計思想:   // HTTP   define('HTTP_SERVER', 'http://localhost/cnopencart/');   define('HTTP_IMAGE', 'http://localhost/cnopencart/image/');   // HTTPS   define('HTTPS_SERVER', '');   define('HTTPS_IMAGE', '');   // DIR   define('DIR_CACHE', 'C:\wamp\www\cnopencart/cache/');   define('DIR_DOWNLOAD', 'C:\wamp\www\cnopencart/download/');   define('DIR_IMAGE', 'C:\wamp\www\cnopencart/image/');   define('DIR_LIBRARY', 'C:\wamp\www\cnopencart/library/');   define('DIR_MODEL', 'C:\wamp\www\cnopencart\catalog/model/');   define('DIR_CONTROLLER', 'C:\wamp\www\cnopencart\catalog/controller/');   define('DIR_LANGUAGE', 'C:\wamp\www\cnopencart\catalog/language/');   define('DIR_EXTENSION', 'C:\wamp\www\cnopencart\catalog/extension/');   define('DIR_TEMPLATE', 'C:\wamp\www\cnopencart\catalog/template/');   // DB   define('DB_HOST', 'localhost');   define('DB_USER', 'root');   define('DB_PASSWORD', '111111');   define('DB_NAME', 'opencart');   ?>   與别的系統可能有些不同是的,OpenCart有一個config類用來從别的設定檔案或資料庫裡存取資料,這些資料也是在程式一開始運作就需要的,是以第一個由loader裝載的就是config類,裝載config類就隻簡單地用了一句:   // Config

  $config =$this->load->....

//Databases

$db = $this->load->model("資料庫類");

  其它所有的對象這是以這種方法來進行管理。   2. Op的加載器   2.1. 系統加載   在System下有一些公共類,是以的基礎類和公共類都是通過index.php 去加載的,這樣你就可以去加載你需要的類和檔案了。比如:   $loader = new Loader();   Registry::set('load', $loader);   然後你就可以在系統裡調用Load方法去加載需要的Model和language 檔案了。調用方式如下:   $this->load->....   Op裡就是通過這個方法來注冊他所需要的資源的