熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

初探PHPcms模塊開發介紹

2013-11-15 12:32:18  來源: PHP編程 

  由於工作關系只能暫時放棄對mongodb的研究了 開始研究PHPcms

  目前為止我已經基本完成了模塊的開發趁著周末來這裡做個總結我發現phpcms寫的還不錯不過文檔什麼的確實不多

  不說廢話了對於phpcms的模塊開發首先要了解模塊的目錄結構

  我們可以在

  找到他的目錄結構 我們要開發的東東(也就是模塊)就在/phpcms/modules/下面

  如果沒有什麼特別的 在開發一個模塊之前先要按照目錄結構建立好相關目錄並且設計好數據庫表結構 比方說 我們建立一個模塊叫做我的模塊 my_test

  下面應該是mytest下的目錄結構


  mytest

  class //這個是mytest模塊會用到的類

  function//mytest模塊用到的函數

  install//安裝此模塊需要的一些配置文件和建立數據表myslq語句什麼的在這裡

  language//多語言的時候會用到

  configiniphp//這個配置文件是用來描述整個模塊的一些信息

  extentionincphp//這個是創建目錄結構 這個文件也用來控制權限

  modelphp//模塊使用了哪些數據模型(可以理解為使用了哪些表)

  modelsql//這個向數據庫裡面插入模型的記錄

  my_testsql//這個文件在安裝的時候會被執行把建立數據庫表的sql放進來

  templates //mytest模塊用到的模板文件

  uninstall //卸載模塊時候用到的配置和文件

  這個裡面的文件我沒研究 回頭研究了補上

  my_testphp //這個是mytest模塊的後台控制器文件`

  indexphp//這個是前台的控制器這個我沒寫東西


  建立完一個這樣的結構後 我們還需要在/phpcms/model/下面建立我們的數據模型

  例如 my_test_modelclassphp (這個使用了很典型的工廠模式)

  具體每個文件裡面寫了些什麼我們一個一個來看 首先來看我們在model文件夾下面寫的那個文件

 代碼如下:
<?php
defined(IN_PHPCMS) or exit(No permission resources);
pc_base::load_sys_class(model );
class my_test_model extends model {
public function __construct() {
$this>db_config = pc_base::load_config(database);
$this>db_setting = default;//默認的數據庫配置//多個庫的話可以在這裡選庫
$this>table_name = my_test;//這個就是表名稱不用加表前綴
parent::__construct();
}
}
?>

  
第一行的作用是確定是不是在phpcms的運行框架內

  第二行加載系統的model類後面的參數 的意思是並不實例化

  最後一行調用了父類的構造方法可以在phpcms/libs/classes/modelclassphp中找到

  而這個model類裡面定義了很多對數據的操作方法 最基本的增刪改查以後我再詳細說說model基本的一些方法

  接著來看看modules 裡面的東東

  我們一個個往下面看 第一個language 是用來支持多語言菜單的

  然後是configiniphp這個裡面寫的是一些關於模塊安裝時候的信息

  文件裡面是這個結構的

代碼如下:
$module = mytest;//使用的model
$modulename = 這裡是模塊的名稱;
$introduce = 模塊的描述信息;
$author = 作者;
$authorsite = 作者網站;
$authoremail = 作者email;

  
裡面標注的很清楚了

  接著是extentionincphp 這個文件是用來創建後台管理菜單的目錄結構的也是用來控制權限的

代碼如下:
$id= $menu_db>insert(array(name=>這裡寫著操作名稱 parentid=>父ID m=>模塊 c=>控制器 a=>動作 data=> listorder=>排序 display=>是否顯示)true);//最後的true是用來返回ID的

  
文件最後應該有一個數組這個數組是用來插入系統的languagezhcnsystem_menulangphp裡面的 格式如下

復制代碼 代碼如下:
$language = array(
這裡是你起的操作名稱=>這裡是操作的中文翻譯
類似:mytest_init=>顯示列表
);

  
然後是modelphp 這個就是你使用了哪些數據模型 可以理解為使用了哪些表

復制代碼 代碼如下:
return array(mytestmy_test_artcle);

  
然後是modelsql 這個是用來向系統的模型表裡面插入數據用的

復制代碼 代碼如下:
INSERT INTO `phpcms_module` (`module` `name` `url` `iscore` `version` `description` `setting` `listorder` `disabled` `installdate` `updatedate`) VALUES ();

  
然後是mytestsql 建立你數據庫表的語句應該寫在這個文件裡面

  接著就是你所使用的模板 應該放在templates裡面 命名的規則應該是 mytest_addtplphp

  最後是你的控制器 這個有的研究了控制器裡面是針對你每個url傳遞過來的action也就是a=?的動作默認動作是init

 代碼如下:
<?php
defined(IN_PHPCMS) or exit(No permission resources);
pc_base::load_app_class(adminadmin);
class mytest extends admin(){
public function __construct(){
parent::__construct;//調用父類的構造函數
}
public function init(){
echo "這裡是默認的操作方法";
}
public function add(){
include $this>admin_tpl(mytest_add);//使用模板的方法
}
}

  
控制器裡面寫好了 我們把上面的文件都寫完了就可以安裝我們的模塊了


From:http://tw.wingwit.com/Article/program/PHP/201311/21135.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.