这是其中一个faq module在module目录下,
其中model.php是数据库dao层的数据操作,control.php是控制层代码,config.php是本模块中的一些局部配置。lang是做国际化的。
view是页面视图层。
几个重要的约束:
1.模块内部的调用不需要引用
$this->faq->method()表示调用model中的方法
$this->view->args表示填充view中的参数,即想view页面传值
$this->config->args表示获取config中的配置
$lang->faq->args表示获取lang中的值(国际化)
2.control.php中的action方法必须与view中的文件命名有关联如:
control中的某action方法:create
其对应view中的create.html.php,命名规则必须是这样。只有这样create方法中的参数才能传递到create.html.php页面
3.js和css规则
命名必须与view中的关联才能找到对应的js函数及css样式,这就是为什么不需要引用文件。
4.对于post表单提交,需要在action中做如下处理:
if(!empty($_POST))
       {
           $this->faq->create($productID, $this->post->category);
if(dao::isError()) die(js::error(dao::getError()));
die(js::locate($this->inLink('manage', "productID=$productID&categoryID=$categoryID"), 'parent'));

       }

这里的create被调用两次,点击添加按钮,即跳转到create,点击提交跳转到create的post中并转向manager页面。
5.zentaoPHP框架是单一入口的,一般所有url都是已index.php后加参数访问,如访问faq模块的create方法,url:index.php?m=faq&f=create&id=2
每一次请求都要经过index.php并加载所有框架模块以及配置参数等,最后通过$app->loadModule();将请求根据url分配下去。

转载于:https://blog.51cto.com/aiven86/1218168

zentaoPHP学习相关推荐

  1. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  2. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  3. FastAI 2019课程学习笔记 lesson 2:自行获取数据并创建分类器

    文章目录 数据获取 google_images_download 的安装和使用 挂载google 个人硬盘到Google colab中 删除不能打开文件 创建ImageDataBunch 训练模型 解 ...

  4. FastAI 课程学习笔记 lesson 1:宠物图片分类

    文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...

  5. 深度学习学习指南-工具篇

    colab Colab是由Google提供的云计算服务,通过它可以让开发者很方便的使用google的免费资源(CPU.GPU.TPU)来训练自己的模型. 学习经验总结 如何使用命令行? 通过!+cmd ...

  6. Redis学习之路(一)--下载安装redis

    redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...

  7. python内置库之学习configparser库(一)

    python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...

  8. 前端Vue学习之路(二)-Vue-router路由

    Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...

  9. 前端Vue学习之路(一)-初识Vue

    Vue学习之路 (一) 1.引言 2.更换npm国内镜像源 3.用npm下载Vue 4.Vue全家桶 5.使用命令创建项目 5.推荐插件 6.推荐网站 7.学习扩展 1.引言 先安装node.js环境 ...

最新文章

  1. CentOS 安全配置
  2. CSS3--选择器、动画效果
  3. Pytorch-张量相加的四种方法 / .item()用法
  4. HTML5 required是必填
  5. HDU 4588 Count The Carries 数学
  6. 来个“云”毕业典礼,这些装扮太硬核了!
  7. 微型计算机中 辅助存储器通常包括,第7章 微型计算机存储器习题参考答案
  8. 万年历查询系统理解与功能增添
  9. [Beego模型] 三、高级查询
  10. Python中turtle模块画图
  11. valgrind 报告 ecpg内存泄露 (二)
  12. Android 更换皮肤
  13. 牛客网练习—《网络基础》DAY4
  14. 用gfortran编译C和Fortran
  15. 插件系统分析及Discuz插件实现
  16. MongoDB的副本集
  17. StreamReader和StreamWriter 的使用
  18. Windows找不到文件‘xxxxx‘。请确定文件名称是否正确,再试一次。 win+r命令打不开xxxx
  19. 黑马程序员 java中关于异常的学习日志
  20. PHP MySQL 进行全文索引的时候提示False,Syntax error, unexpected ‘@‘, expecting $end 的错误解决方案

热门文章

  1. java subset_Java TreeSet subSet()方法
  2. python数据分析与人工智能_Python数据分析:seaborn
  3. git对指定commitid 打tag_Git-命令行-使用 Tag 标记你的代码
  4. mysql循环遍历获取_MySQL 全表遍历
  5. 用计算机充手机吗,电脑充电器可以充手机吗
  6. 数学之美:欣赏超越数e
  7. Python学习笔记:目录与文件操作
  8. Java案例:装载与发射子弹问题
  9. 【codevs1286】【BZOJ1503】郁闷的出纳员,splay练习
  10. php多图片上传到数组,input type=file多图片上传 原生html传递的数组集合