一区二区三区欧美日韩-一区二区三区欧美-一区二区三区免费在线视频-一区二区三区免费在线观看-久久精品店-久久精品第一页

歡迎您光臨深圳塔燈網(wǎng)絡科技有限公司!
電話圖標 余先生:13699882642

YzmCMS二次開發(fā)手冊_YzmCMS官方網(wǎng)站

發(fā)表日期:2019-04 文章編輯:小燈 瀏覽次數(shù):2441

YzmCMS是采用MVC設計模式開發(fā),基于模塊和操作的方式進行訪問,采用單一入口模式進行項目部署和訪問,無論訪問任何一個模塊或者功能,只有一個統(tǒng)一的入口。

如果您在二次開發(fā),建議開啟APP_DEBUG,在根目錄下index.php文件的12行。

一、基本目錄結構

..../??????????????根目錄
..../application???全站應用目錄
..../cache?????????緩存目錄[必須可寫入]
..../common????????全站公共目錄[必須可寫入]
..../uploads???????默認上傳目錄[必須可寫入]
..../yzmphp????????程序核心目錄[不建議修改]
..../index.php?????程序單一入口文件
..../.htaccess?????Apache偽靜態(tài)文件[如您不是Apache軟件,可根據(jù)此規(guī)則重寫偽靜態(tài)]
..../nginx.conf????Nginx下偽靜態(tài)文件


application目錄下每一個文件夾都是一個單獨的模塊(module)

每個模塊下都有四個文件夾(common、controller、model、view)一個文件(index.html),這幾個文件時必須有的,新建模塊時也一定要有這幾個文件。

以admin模塊舉例:

application
---admin
------common(模塊公共目錄)
------controller(模塊控制器目錄)
------model(模塊模型目錄)
------view(模塊視圖目錄)

二、創(chuàng)建一個新控制器

controller目錄中的每一個.php文件都是一個控制器,控制器名稱都以.class.php后綴結尾。

新建一個控制器:test

文件名稱:test.class.php,控制器類的類名稱與控制器文件名必須相同


<?php

//這兩行必須要,后臺權限控制
defined('IN_YZMPHP')?or?exit('Access?Denied');?
yzm_base?::load_controller('common',?'admin',?0);
//這兩行必須要,后臺權限控制

class?test?extends?common?{


	//訪問該控制器的該方法的URL:
	//http://test.yzmcms.com/index.php/admin/test/init
	public?function?init()?{
		echo?'程序默認加載控制器中的init方法';
	}
	
	//訪問該控制器的該方法的URL:
	//http://test.yzmcms.com/index.php/admin/test/mytest
	public?function?mytest()?{
		echo?'這個是mytest方法';
	}
}


URL地址說明:

你的網(wǎng)址/index.php/模塊名稱/控制器名稱/方法名稱


//加載其他控制器
如:yzm_base?::load_controller('common',?'admin',?0);
說明:yzm_base?::load_controller('控制器名稱',?'模塊名稱',?是否初始化);
//加載系統(tǒng)類
如yzm_base?::load_sys_class('page','',0);
說明yzm_base?::load_sys_class('類名稱','擴展地址',是否初始化);
如果初始化,返回的是一個類的實例化對象,否則只是加載該類。


三、常見方法說明

本系統(tǒng)中最常用的三種方法:D()方法、 M()方法、 ?U()方法、


D方法

D是data 的首字母,參數(shù)為一個表名稱,返回的是一個數(shù)據(jù)表對象(在YzmCMS3.0以下版本中是M方法)


//實例化一個數(shù)據(jù)表對象,只傳入表名即可,以下所有操作表示在對test表進行操作
$db?=?D('test');

//添加內(nèi)容[成功:返回自動增長的ID,失敗:false]
//$db->insert(數(shù)組);
//$db->insert(array('name'=>'姓名','sex'=>'男'));
//$db->insert(array('name'=>'姓名','sex'=>'男'),?true);?//第二個參數(shù)選填?如果為真值?則開啟實體轉(zhuǎn)義


//刪除內(nèi)容[返回影響行數(shù)]
//$db->delete(array('id>'=>'15'));
//$db->delete(array(3,4,5),?true);??//第二個參數(shù)存在時,第一個參數(shù)為索引數(shù)組,批量刪除多個
//$db->delete(array('1'=>1));???//刪除所有數(shù)據(jù)

//更新內(nèi)容[返回影響行數(shù)]
//$db->update(array('name'=>'姓名','sex'=>'男123'),array('id'=>'10'));
//$db->update(array('name'=>'姓名','sex'=>'aaa'),array('id'=>'10'),'1');?//第三個參數(shù)選填?如果存在,并為真值?則開啟實體轉(zhuǎn)義
//$db->update('click=click+1',array('id'=>"1"));???????//第一個參數(shù)不是數(shù)組,類似于更新文章點擊數(shù)的功能


//查詢內(nèi)容?select方式[返回二維數(shù)組]

//$result?=?$db->select();
//$result?=?$db->field('uname,id')->select();
//$result?=?$db->where(array('name'=>'%php%'))->select();??//like?查詢
//$result?=?$db->join('`yzmcms_admin`?ON?yzmcms_admin.id=yzmcms_admintype.id')->where(array('id'=>'1'))->select();??//join?聯(lián)合查詢
//$result?=?$db->where("typeid?in?(1,2)")->select();?//SQL?:?select?*?from?user?where?typeid?in?(1,2)
//$result?=?$db->where(array('name'=>'%php%'))->limit('0,5')->select();?//like?查詢
//$result?=?$db->where(array('name'=>'%php%'))->limit('0,5')->order('id?desc')->select();?//like?查詢
//$result?=?$db->where(array('sex'=>'男'))->limit('0,5')->select();
//$result?=?$db->field('uname,id')->where(array('sex'=>'男'))->limit('0,3')->order('id?desc')->select();
//$result?=?$db->field("sex?,count(sex),avg(height),sum(height)?")->group("sex")->having("?avg(height)?>160")->select();
//$result?=?$db->field("sex?,count(sex)?as?'總個數(shù)',avg(height)?as?'平均身高',sum(height)?as?'總身高'?")->group('sex')->select();
//$result?=?$db->field("sex?,count(sex)?as?'總個數(shù)',avg(height)?as?'平均身高',sum(height)?as?'總身高'?")->group("sex")->having("?平均身高?>160")->select();

//查詢內(nèi)容?find方式[返回一維數(shù)組]
//$result?=?$db->find();
//$result?=?$db->field('uname,id')->find();
//$result?=?$db->where("typeid?in?(1,2)")->find();?//SQL?:?select?*?from?user?where?typeid?in?(1,2)?limit?1
//$result?=?$db->field('id,name,height')->where(array('sex'=>'男'))->find();
//$result?=?$db->join('`yzmcms_admin`?ON?yzmcms_admin.id=yzmcms_admintype.id')->where(array('id'=>'1'))->find();??//join?聯(lián)合查詢
//$result?=?$db->field('uname,id')->where(array('sex'=>'男'))->order('id?desc')->find();

//查詢記錄數(shù)[返回記錄行數(shù)]
//$result?=?$db->total();
//$result?=?$db->where(array('age>'=>'12'))->total();
//$result?=?$db->join('`yzmcms_admin`?ON?yzmcms_admin.id=yzmcms_admintype.id')->where(array('age>'=>'12'))->total();



//自定義執(zhí)行SQL語句?[yzmcms?代表表前綴]
//$db->query("select?*?from?yzmcms_admin");?
//獲取一維數(shù)組,一條結果
//$db->fetch_array($db->query("select?*?from?yzmcms_admin"));
//獲取二維數(shù)組
//$db->fetch_all($db->query("select?*?from?yzmcms_admin"));

//用于調(diào)試程序,輸入最后一條SQL語句
//$db->lastsql();


YzmCMS 3.8版本新增的數(shù)據(jù)庫操作

//?新增?one?方法,用來查詢某個字段的值?[返回值為字符串類型]

$res?=?D('admin')->field('rolename')->where(array('adminid'=>1))->one();
P($res);??//運行結果	?string(15)?"超級管理員"

$res?=?D('article')->field('userid')->where(array('id'=>1))->one();
P($res);??//運行結果	?string(1)?"1"


//新增?alias?別名方法,用于給表起別名

$admin?=?D('admin');
$res?=	?$admin->alias('a')
		->field('a.adminid,a.adminname,a.rolename,b.address,b.loginip,b.logintime')
		->where(array('loginresult'=>1))
		->join('yzmcms_admin_login_log?b?ON?a.adminname=b.adminname',?'left')
		->limit(5)
		->select();

$admin->lastsql();
//最后生成的SQL為:
SELECT?a.adminid,a.adminname,a.rolename,b.address,b.loginip,b.logintime?FROM?yzm_admin?a?LEFT?JOIN?yzm_admin_login_log?b?ON?a.adminname=b.adminname?WHERE?loginresult=1?LIMIT?5

//?注意:?join里的?“yzmcms_”?可表示任意的表前綴,無需修改
		

//?新增?事務處理

$affair?=?D('affair');

$affair->start_transaction();	//開啟事務

//?模擬業(yè)務流程,執(zhí)行插入和更新操作
$res?=?$affair->insert(array('name'=>'袁志蒙','password'=>'test'));
$res2?=?D('test')->update(array('name'=>'yzmcms','password'=>'123456'),?array('id'=>1));

if($res?&&?$res2){
	$affair->commit();??//提交事務
}else{
	$affair->rollback();??//事務回滾
}



M方法

M是model的首字母,參數(shù)為一個model類名稱,返回的是一個model類對象,意為加載并實例化本模塊下的model類


U方法

U是URL的首字母,返回的是一個URL字符串,意為生成URL地址

//?生成當前模塊下的當前控制器的add方法URL地址
如:U('add');?

//?生成當前模塊下的test控制器的add方法URL地址
如:U('test/add')?;

//?生成admin模塊下的test控制器的add方法URL地址
如:U('admin/test/add')

說明:U('模塊名稱/控制器名稱/方法名稱')

U方法可以有第二個參數(shù),即可傳參
如:U('admin/test/init',array('id'=>1,'status'=>1))和U('admin/test/init','id=1&status=1')是等效的

四、二次開發(fā)原則

YzmCMS作者開發(fā)時比較注重代碼簡潔、系統(tǒng)高效等特點,所以您在使用YzmCMS做二次開發(fā)中也應該遵循以下開發(fā)原則:

1.新增功能盡量不要修改系統(tǒng)原文件,建議以模塊插件形式開發(fā)。

2.用戶自定義全局函數(shù)寫到“common/function/extention.func.php”文件中,不影響系統(tǒng)升級。

3.方法名稱和變量名稱都以小寫字符命名。

4.類文件都以小寫字符命名,并以.class.php后綴結尾。

5.所有方法盡可能寫上注釋等。



本頁內(nèi)容由塔燈網(wǎng)絡科技有限公司通過網(wǎng)絡收集編輯所得,所有資料僅供用戶參考了本站不擁有所有權,如您認為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實,本站立刻刪除侵權內(nèi)容。本文鏈接:http://www.junxiaosheng.cn/18742.html
相關cms文章
 八年  行業(yè)經(jīng)驗

多一份參考,總有益處

聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡,免費獲得網(wǎng)站建設方案及報價

咨詢相關問題或預約面談,可以通過以下方式與我們聯(lián)系

業(yè)務熱線:余經(jīng)理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

主站蜘蛛池模板: 精品国产乱码久久久久久下载 | 亚洲高清国产拍精品影院| 国产亚洲精品视频亚洲香蕉视| 亚洲高清视频一区| 精品淑女少妇AV久久免费| 999久久免费高清热精品| 欧美巨大xxxx做受孕妇视频| 第一次破女初国产美女| 亚洲中文无码亚洲人在线观看- | 高清一区二区亚洲欧美日韩| 亚洲乱码国产乱码精品精98| 嫩草影院一区| 国产精品视频yy9099| 97蜜桃网123| 亚洲国产高清在线观看视频| 免费国产午夜理论不卡| 国产精品久久久久久人妻香蕉 | 67194免费入口| 性夜夜春夜夜爽AA片A| 欧美人与动交zOZ0| 狠狠色综合7777久夜色撩人| 给个男人都懂的网址2019| 一本道dvd久久综合高清免费| 日韩亚洲欧美中文高清| 伦理片天堂eeuss影院| 果冻传媒在线看免费高清| 成人在线视频免费| 99精品国产在热| 自拍视频亚洲综合在线精品| 亚洲午夜福利未满十八勿进| 色综合欧美色综合七久久| 欧美日韩中文字幕综合图区 | 羞羞影院午夜男女爽爽免费| 人淫阁| 欧美片第1页 综合| 久久最新地址获取| 娇喘嗯嗯 轻点啊视频福利| 国产精品久久久久久人妻精品蜜桃| 大地影院日本韩国电影免费观看| a免费在线观看视频| 99无码熟妇丰满人妻啪啪|