Joomla!1.5 MVC学习札记(一)-----命名约定
2008-02-03 11:28
351 查看
分析Joomla!中组件,模块等可以发现joomla!采用了MVC模式,这次总结的主要是Joomla!中的控制器,模型,视图的命名方式:
Onlinetest前台默认视图类如下(文件名及路径:onlinetest/view.html.php):
Onlinetest前台默认模型类如下(文件名及路径:models/onlinetest.php):
综上可知:加载这三个类,应相应加入下面的语句:
Joomla!中mvc模式中的命名约定(个人理解)如下:
如onlinetest组件的视图有onlinetest,choose,cal,blink,answer,
因此在views文件夹下建立onlinetest,choose,cal,blink,answer各自的文件夹.
再在各个视图文件夹下建立tmpl文件夹和view.html.php(每个视图类定义所在的位置).
具体看上面的截图.在view,html.php中定义的视图类采用如下的命名约定:组件名+"View"+视图名
oomla!中实现MVC模式,必须继承Joomla!框架中的JController,JView,JModel三个类.因此要加载这三个类.下面以Onlinetest组件前台的默认控制器OnlinetestController为例:
<?php /* * Created on 2008-1-28 * Author:zheng'gang(www.sjzri.edu.cn) * Email:angang523409@tom.com * com_onlinetest * package_name * package_declaration */ defined('_JEXEC') or die('Restricted access !'); jimport('joomla.application.component.controller');这句就是加载JController类的语句,很重要! class OnlinetestController extends JController { /*function __construct() *{ * parent::__construct(); *} */ function display() { parent::display(); } } ?>
Onlinetest前台默认视图类如下(文件名及路径:onlinetest/view.html.php):
<?php /* * Created on 2008-1-28 * Author:zheng'gang(www.sjzri.edu.cn) * Email:angang523409@tom.com * com_onlinetest * package_name * package_declaration */ defined('_JEXEC') or die('Restricted access !'); jimport('joomla.application.component.view');这句就是加载JView类的语句,很重要! class OnlinetestViewOnlinetest extends JView { function display($tmpl=null) { $model=$this->getModel(); $greeting = $model->getWelcomeMessage(); $this->assignRef( 'greeting', $greeting ); parent::display($tmpl); } } ?>
Onlinetest前台默认模型类如下(文件名及路径:models/onlinetest.php):
<?php /* * Created on 2008-1-28 * Author:zheng'gang(www.sjzri.edu.cn) * Email:angang523409@tom.com * com_onlinetest * package_name * package_declaration */ defined('_JEXEC') or die('Restricted access !'); jimport('joomla.application.component.model');这句就是加载JModel类的语句,很重要! class OnlinetestModelOnlinetest extends JModel { function getWelcomeMessage() { $db =& JFactory::getDBO(); $query = 'SELECT message FROM #__onlinetest'; $db->setQuery($query); $greeting = $db->loadResult(); return $greeting; } } ?>
综上可知:加载这三个类,应相应加入下面的语句:
jimport('joomla.application.component.controller');//控制器类
jimport('joomla.application.component.model');//模型类
jimport('joomla.application.component.view');//视图类
Joomla!中mvc模式中的命名约定(个人理解)如下:
默认控制器文件名都是controller.php,进入mvc模式的文件名为:(前台)组件名.php,(后台)admin.组件名.php. 例如onlinetest组件的前后台进入mvc模式的文件名为:onlinetest.php,admin.onlinetest.php.具体可以看上面的截图.
接下来是视图组织,在前台中建立文件夹Views(具体见上图),在这个文件下建好各种视图的文件夹.
如onlinetest组件的视图有onlinetest,choose,cal,blink,answer,
因此在views文件夹下建立onlinetest,choose,cal,blink,answer各自的文件夹.
再在各个视图文件夹下建立tmpl文件夹和view.html.php(每个视图类定义所在的位置).
具体看上面的截图.在view,html.php中定义的视图类采用如下的命名约定:组件名+"View"+视图名
相关文章推荐
- (转)c# 命名约定
- 函数命名规则及调用约定:__stdcall,__cdecl,__fastcall,thiscall,naked call
- Joomla! 1.5 routing(转)
- mysql基本约定与命名规范
- Symbian OS 中的Class命名约定
- FreeRTOS 源代码的编程标准与命名约定
- 变量的命名约定——匈牙利表示法
- Joomla1.5模板特征
- Joomla! 1.5 组件使用AJAX例程 【转】
- C++代码命名规范约定
- scala学习手记38 - 方法命名约定和for表达式
- Emberjs——命名约定
- Joomla![1.5-3.4.5]反序列化远程代码执行EXP(直接写shell)
- .NET 指南:常规命名约定
- C#命名约定[转]
- Joomla1.5学习笔记
- Internet命名规则和地址划分约定
- Symbian OS 中的Class命名约定(M类)
- 我要精通C++——Google C++编程风格指南之命名约定
- BabylonJS命名约定---基于WebGL的H5 3D游戏引擎