php筆記之:初探PHPcms模塊開(kāi)發(fā)介紹
由于工作關(guān)系,只能暫時(shí)放棄對(duì)mongodb的研究了 .開(kāi)始研究PHPcms .
目前為止我已經(jīng)基本完成了模塊的開(kāi)發(fā).趁著周末來(lái)這里做個(gè)總結(jié).我發(fā)現(xiàn)phpcms寫(xiě)的還不錯(cuò),不過(guò)文檔什么的確實(shí)不多.
不說(shuō)廢話(huà)了.對(duì)于phpcms的模塊開(kāi)發(fā).首先要了解模塊的目錄結(jié)構(gòu).
我們可以在http://v9.help.phpcms.cn/html/2010/structure_0928/69.html
找到他的目錄結(jié)構(gòu) 我們要開(kāi)發(fā)的東東(也就是模塊)就在/phpcms/modules/下面
如果沒(méi)有什么特別的 在開(kāi)發(fā)一個(gè)模塊之前先要按照目錄結(jié)構(gòu)建立好相關(guān)目錄并且設(shè)計(jì)好數(shù)據(jù)庫(kù)表結(jié)構(gòu) 比方說(shuō) 我們建立一個(gè)模塊叫做我的模塊 my_test
下面應(yīng)該是mytest下的目錄結(jié)構(gòu)
mytest
--class //這個(gè)是mytest模塊會(huì)用到的類(lèi)
--function//mytest模塊用到的函數(shù)
--install//安裝此模塊需要的一些配置文件和建立數(shù)據(jù)表myslq語(yǔ)句什么的在這里
--language//多語(yǔ)言的時(shí)候會(huì)用到
--config.ini.php//這個(gè)配置文件是用來(lái)描述整個(gè)模塊的一些信息
--extention.inc.php//這個(gè)是創(chuàng)建目錄結(jié)構(gòu) .這個(gè)文件也用來(lái)控制權(quán)限
--model.php//模塊使用了哪些數(shù)據(jù)模型.(可以理解為使用了哪些表.)
--model.sql//這個(gè)向數(shù)據(jù)庫(kù)里面插入模型的記錄
--my_test.sql//這個(gè)文件在安裝的時(shí)候會(huì)被執(zhí)行,把建立數(shù)據(jù)庫(kù)表的sql放進(jìn)來(lái)
--templates //,mytest模塊用到的模板文件
--uninstall //卸載模塊時(shí)候用到的配置和文件
這個(gè)里面的文件我沒(méi)研究 回頭研究了補(bǔ)上.
my_test.php //這個(gè)是mytest模塊的后臺(tái)控制器文件`
index.php//這個(gè)是前臺(tái)的控制器,這個(gè)我沒(méi)寫(xiě)東西.
建立完一個(gè)這樣的結(jié)構(gòu)后 我們還需要在/phpcms/model/下面建立我們的數(shù)據(jù)模型
例如 my_test_model.class.php (這個(gè)使用了很典型的工廠模式)
具體每個(gè)文件里面寫(xiě)了些什么.我們一個(gè)一個(gè)來(lái)看 .首先來(lái)看我們?cè)趍odel文件夾下面寫(xiě)的那個(gè)文件.
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class my_test_model extends model {
public function __construct() {
$this->db_config = pc_base::load_config('database');
$this->db_setting = 'default';//默認(rèn)的數(shù)據(jù)庫(kù)配置.//多個(gè)庫(kù)的話(huà)可以在這里選庫(kù)
$this->table_name = 'my_test';//這個(gè)就是表名稱(chēng),不用加表前綴
parent::__construct();
}
}
?>
第一行的作用是確定是不是在phpcms的運(yùn)行框架內(nèi).
第二行加載系統(tǒng)的model類(lèi),后面的參數(shù)0 的意思是并不實(shí)例化.
最后一行調(diào)用了父類(lèi)的構(gòu)造方法.可以在phpcms/libs/classes/model.class.php中找到
而這個(gè)model類(lèi)里面定義了很多對(duì)數(shù)據(jù)的操作方法 最基本的增刪改查。以后我再詳細(xì)說(shuō)說(shuō)model基本的一些方法。
接著來(lái)看看modules 里面的東東
我們一個(gè)個(gè)往下面看 第一個(gè)language 是用來(lái)支持多語(yǔ)言菜單的。
然后是config.ini.php,這個(gè)里面寫(xiě)的是一些關(guān)于模塊安裝時(shí)候的信息。
文件里面是這個(gè)結(jié)構(gòu)的
$module = 'mytest';//使用的model
$modulename = '這里是模塊的名稱(chēng)';
$introduce = '模塊的描述信息';
$author = '作者';
$authorsite = '作者網(wǎng)站';
$authoremail = '作者email';
里面標(biāo)注的很清楚了
接著是extention.inc.php 這個(gè)文件是用來(lái)創(chuàng)建后臺(tái)管理菜單的目錄結(jié)構(gòu)的,也是用來(lái)控制權(quán)限的
$id= $menu_db->insert(array('name'=>'這里寫(xiě)著操作名稱(chēng)', 'parentid'=>父ID, 'm'=>'模塊', 'c'=>'控制器', 'a'=>'動(dòng)作', 'data'=>'', 'listorder'=>排序, 'display'=>'是否顯示'),true);//最后的true是用來(lái)返回ID的
文件最后應(yīng)該有一個(gè)數(shù)組,這個(gè)數(shù)組是用來(lái)插入系統(tǒng)的\language\zh-cn\system_menu.lang.php里面的 格式如下
$language = array(
'這里是你起的操作名稱(chēng)'=>'這里是操作的中文翻譯',
類(lèi)似:'mytest_init'=>'顯示列表'
);
然后是model.php 這個(gè)就是你使用了哪些數(shù)據(jù)模型 可以理解為使用了哪些表
return array('mytest','my_test_artcle');
然后是model.sql 這個(gè)是用來(lái)向系統(tǒng)的模型表里面插入數(shù)據(jù)用的
INSERT INTO `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`) VALUES ();
然后是mytest.sql 建立你數(shù)據(jù)庫(kù)表的語(yǔ)句應(yīng)該寫(xiě)在這個(gè)文件里面
接著就是你所使用的模板 應(yīng)該放在templates里面 命名的規(guī)則應(yīng)該是 mytest_add.tpl.php
最后是你的控制器 這個(gè)有的研究了.控制器里面是針對(duì)你每個(gè)url傳遞過(guò)來(lái)的action也就是a=?的動(dòng)作.默認(rèn)動(dòng)作是init
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest extends admin(){
public function __construct(){
parent::__construct;//調(diào)用父類(lèi)的構(gòu)造函數(shù)
}
public function init(){
echo "這里是默認(rèn)的操作方法";
}
public function add(){
include $this->admin_tpl('mytest_add');//使用模板的方法
}
}
控制器里面寫(xiě)好了 我們把上面的文件都寫(xiě)完了就可以安裝我們的模塊了 。
- 使用PHPCMS搭建wap手機(jī)網(wǎng)站
- phpcms模塊開(kāi)發(fā)之swfupload的使用介紹
- linux服務(wù)器下PHPCMS v9 安全配置詳解
- PHPCMS的使用小結(jié)
- CodeIgniter使用phpcms模板引擎
- phpcms的分類(lèi)名稱(chēng)和類(lèi)別名稱(chēng)的調(diào)用
- phpcms手機(jī)內(nèi)容頁(yè)面添加上一篇和下一篇
- PHPCMS手機(jī)站偽靜態(tài)設(shè)置詳細(xì)教程
- PHPCMS忘記后臺(tái)密碼的解決辦法
- 解決phpcms更換javascript的幻燈片代碼調(diào)用圖片問(wèn)題
- phpcms中的評(píng)論樣式修改方法
- PHPCMS V9 添加二級(jí)導(dǎo)航的思路詳解
- 如何給phpcms v9增加類(lèi)似于phpcms 2008中的關(guān)鍵詞表
- PHPCMS遭遇會(huì)員投稿審核無(wú)效的解決方法
- Ajax實(shí)現(xiàn)phpcms 點(diǎn)贊功能實(shí)例代碼
- PHPCMS2008廣告模板SQL注入漏洞修復(fù)
- phpcms配置列表頁(yè)以及獲得文章發(fā)布時(shí)間
- phpcms v9禁止提交信息到官網(wǎng)方法詳解
相關(guān)文章
PHP轉(zhuǎn)換Excel中日期和時(shí)間類(lèi)型的處理問(wèn)題
在實(shí)際應(yīng)用中PHP讀取的Excel文件的日期無(wú)法直接使用,會(huì)出現(xiàn)的一系列問(wèn)題,本文給大家介紹PHP轉(zhuǎn)換Excel中日期和時(shí)間類(lèi)型的處理問(wèn)題,感興趣的朋友一起看看吧2023-10-10
在Mac OS上搭建Nginx+PHP+MySQL開(kāi)發(fā)環(huán)境的教程
這篇文章主要介紹了在Mac OS上安裝配置Nginx+PHP+MySQL開(kāi)發(fā)環(huán)境的教程,雖然Mac自帶PHP,但還是要注意一下php-fpm報(bào)錯(cuò)問(wèn)題的發(fā)生,需要的朋友可以參考下2015-12-12
PHP中Laravel 關(guān)聯(lián)查詢(xún)返回錯(cuò)誤id的解決方法
這篇文章主要介紹了Laravel 關(guān)聯(lián)查詢(xún)返回錯(cuò)誤id的解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-04-04
php實(shí)現(xiàn)的MySQL通用查詢(xún)程序
php實(shí)現(xiàn)的MySQL通用查詢(xún)程序...2007-03-03
Symfony2創(chuàng)建頁(yè)面實(shí)例詳解
這篇文章主要介紹了Symfony2創(chuàng)建頁(yè)面的方法,結(jié)合實(shí)例形式分析了Symfony頁(yè)面創(chuàng)建的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03
laravel框架學(xué)習(xí)筆記之組件化開(kāi)發(fā)實(shí)現(xiàn)方法
這篇文章主要介紹了laravel框架學(xué)習(xí)筆記之組件化開(kāi)發(fā)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了laravel框架組件化開(kāi)發(fā)相關(guān)的實(shí)現(xiàn)步驟與操作注意事項(xiàng),需要的朋友可以參考下2020-02-02
制作個(gè)性化的WordPress登陸界面的實(shí)例教程
隨著WordPress多用戶(hù)功能的日益完善,也有越來(lái)越多的開(kāi)發(fā)者開(kāi)始著手于WordPress登陸界面部分的自定義制作,接下來(lái)我們就來(lái)看制作個(gè)性化的WordPress登陸界面的實(shí)例教程2016-05-05
利用PHP腳本在Linux下用md5函數(shù)加密字符串的方法
這篇文章主要介紹了利用PHP腳本在Linux下用md5函數(shù)加密字符串的方法,只需Linux系統(tǒng)中安裝過(guò)PHP然后在命令行中操作文中示例即可,需要的朋友可以參考下2015-06-06

