phpcms模塊開發詳解

發布時間:2019-04-30 19:49:42 來源:phpcms官方 作者:青鋒建站
  phpcms模塊方便進行擴展,以及團隊協作開發,可以在原因的功能和框架之上來增加新的功能。以下是青鋒建站給大家分享的phpcms模塊開發的詳細過程與步驟。

phpcms模塊開發流程

1、創建數據庫和數據表;(沒有數據庫操作可略過)
2、創建模塊目錄
3、創建模塊控制器類;
4、創建模塊類與模塊函數;(如果只是簡單的模塊可以不必創建)
5、創建模板文件;
6、運行和調試。

創建phpcms模塊

  phpcms v9框架中的模塊,位于phpcms/modules目錄中 每一個目錄稱之為一個模塊如果要創建一個模塊,只要在 phpcms/modules 目錄下創建文件夾并放入你的控制器類就可以了。
例如我要開發一個叫做test的模塊,那么首先在 phpcms/modules 目錄下創建文件夾,并將其命名為test。test模塊的標準結構通常是這樣的。
創建模塊
  其中classes 為模塊類庫包,functions 為模塊函數庫包, templates 為模塊模板包 這里通常放置含有權限控制的控制器模板,也就是后臺模板。如果您的模板有單獨的前臺模板,你需要在phpcms emplatesdefault下創建一個您的模塊目錄來放置前臺模板,"default"為你的風格包名稱,我們默認適用default

創建模塊控制器類

  在創建模塊中我們已經創建好了一個名為“test”的模塊,接下來我們繼續為這個模塊添加兩個控制器類。
  phpcms v9的控制器就是模塊的類文件,位于phpcms/modules/模塊/目錄下面。類名成就是文件名+.php,例如一個名為mytest的控制器,那么他的命名為mytest.php即可。控制器類默認繼承系統的函數庫,可以直接使用。控制器類的類名稱與控制器文件名必須相同。
控制器類文件包含兩種形式:
1、mytest.php 控制器,前臺瀏覽(不含權限控制)
<?php
                  defined('IN_PHPCMS') or exit('No permission resources.');
                  class mytest {
                     function __construct() {
                    }
                    public function init() {
                     $myvar = 'hello world!';
                     echo $myvar;
                     }
     public function mylist() {
                     $myvar = 'hello world!this is a example!';
                     echo $myvar;
                     }
                  }
?>
這個控制器的url訪問方法前面已經介紹過了,
http://www.yourname.com/index.php?m=test&c=mytest
http://www.yourname.com/index.php?m=test&c=mytest&a=mylist
沒有填寫 “a” 的情況下,默認調用init方法
2、mytest_admin.php 控制器,后臺管理(含權限控制)
  后臺控制控制器需要加載admin模塊下的admin類,并繼承該類。需要注意的是因為你添加的控制器類繼承了其他的類,你要小心你控制器的方法名不要和該類中的方法名一樣了,否則會造成影響,具體請查看admin類中有哪些方法。
<?php
                defined('IN_PHPCMS') or exit('No permission resources.');
                pc_base::load_app_class('admin','admin',0);
                class mytest_admin extends admin {
                  public function __construct() {
                  }
                  public function init() {
                    $myvar = 'oh,i am phpcmser';
                    echo $myvar;
                  }
                }
?>

在控制器中增加模板調用

phpcms 可以實現完全的模板與程序分離,所以在我們的控制器程序中要加載模板,才可以更友好的顯示出來。
1.加載前臺模板
  前臺模板文件在phpcms emplatesdefault模塊名稱 目錄中,本示例也就在phpcms emplatesdefault est中
  加載模板方法如下:include template('test', 'mytest', 'default');其中 test為模塊名稱 mytest 為模板目錄下模板名稱,default為風格名稱,默認不填為defalut。在上面例子中如果要給mytest.php中init方法加載一個mytest的模板,如下
  public function init() {
                     $var = 'hello world!';
                     include template('test', 'mytest', 'default');
                   }
這樣我們通過url訪問該方法的時候也就加載了對應的模板。
2.加載后臺模板
  后臺模板文件在phpcmsmodules模塊名稱 emplates 目錄中,本示例也就在phpcmsmodules est emplates 中。加載模板方法如下:include $this->admin_tpl('mytest_admin_list');其中mytest_admin_list為phpcmsmodules est emplates中mytest_admin_list.tpl.php,注意:此處模板必須以.tpl.php 作為后綴。在上面例子中如果要給mytest_admin.php中init方法加載一個mytest_admin_list的模板,如下
 public function init() {
                    $myvar = 'oh,i am phpcmser';
                    include $this->admin_tpl('mytest_admin_list');
                  }   

創建數據庫模型類

數據庫模型類創建  
  數據庫模型位于:phpcms/model/ 目錄下。數據模型文件的命名規則建議為數據表名稱+'_model.class.php'。如果在我們的創建的模塊中我要使用一個數據庫“test”,首先需要建立一個數據庫模型文件,文件名稱為'test_model.class.php'。內容如下:
<?php
   defined('IN_PHPCMS') or exit('No permission resources.');
   pc_base::load_sys_class('model', '', 0);
   class test_model extends model {
     public function __construct() {
     $this->db_config = pc_base::load_config('database');
     $this->db_setting = 'default';
     $this->table_name = 'test';
     parent::__construct();
   }
  }
 ?>
注意:
1.數據庫模型類名稱必須與文件名稱相同;
2.$this->db_setting = 'default'為數據庫配置文件中配置數據庫鏈接池名稱,默認為default,一般情況下不需要修改。
3.$this->table_name = 'test'為數據表名稱
  這樣我們就建立好了一個數據庫模型類。在模塊的控制器中使用$this->db = pc_base::load_model('test_model');來加載。
數據庫模型類使用方法
<?php
   defined('IN_PHPCMS') or exit('No permission resources.');
   class mytest {
     private $db;
      function __construct() {
       $this->db = pc_base::load_model('test_model');
     }
     public function init() {
       $result = $this->db->select();
       var_dump($result);
      }
   }
 ?>
其中$this->db中所支持的方法請參照phpcms/libs/classes/model.class.php中方法。
   以上就是青鋒建站給大家分享的phpcms模塊開發詳解,包括模塊的創建,模塊控制器類創建,控制器加載模板,創建模型類。青鋒建站,提供專業的高品質網站制作服務,包括phpcms網站建設,SEO,網絡營銷,PHP網站建設
分享到:

Copyright © 2016-2026 青鋒建站 版權所有

超级狮子电子游艺 龙剑可以赚钱吗 红地毯生意赚钱吗 有没有真的能挂机赚钱的软件下载 上海摄影棚租赁赚钱吗 母马横幅打拳赚钱 全民奇迹赚钱技巧集锦 游戏工作室大亨3游戏不赚钱 怎么找赚钱的私活 可以赚钱的小兔子游戏 支付宝走流水是怎么赚钱的 沾沾卡怎么赚钱获得 股票有多少散户是赚钱的 开汽车美容装潢店赚钱吗 摄像头行业赚钱不 有能在手机上兼职赚钱 异刃 打捞赚钱