PHP教学步骤.docx
- 文档编号:30155533
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:35
- 大小:30.29KB
PHP教学步骤.docx
《PHP教学步骤.docx》由会员分享,可在线阅读,更多相关《PHP教学步骤.docx(35页珍藏版)》请在冰豆网上搜索。
PHP教学步骤
步骤:
一、php环境配置
二、PHPCMS开源系统
三、系统安装配置
四、开源系统的文件目录介绍
1.文件目录结构
根目录
| – api 接口文件目录
| – caches缓存文件目录
| –configs系统配置文件目录
| –caches_*系统缓存目录
| – phpcms phpcms框架主目录
| –languages框架语言包目录
| –libs框架主类库、主函数库目录
| –model框架数据库模型目录
| –modules框架模块目录
| –templates框架系统模板目录
| – phpsso_server phpsso主目录
| – statics 系统附件包
| –css系统css包
| –images系统图片包
| –js系统js包
| – uploadfile 网站附件目录
| – admin.php 后台管理入口
| – index.php 程序主入口
| – crossdomain.xml FLASH跨域传输文件
| – robots.txt搜索引擎蜘蛛限制配置文件
| – favicon.ico 系统icon图标
2.URL访问
PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。
参数名称
描述
位置
备注
m
模型/模块名称
phpcms/modules中模块目录名称
必须
c
控制器名称
phpcms/modules/模块/*.php文件名称
必须
a
事件名称
phpcms/modules/模块/*.php中方法名称
模块访问方法[示例]:
其中
m=content 为模型/模块名称位于phpcms/modules/content
c=index 为控制器名称 位于phpcms/modules/content/index.php(控制器类的类名称与控制器文件名必须相同。
)
a=show 为时间名称 位于phpcms/modules/content/index.php中show()方法
id=1 为其他参数与正常get传递参数形式相同
如果我们访问您的域名如:
phpcms默认路由会定位到content模块的index控制器中的init操作,因为系统在没有指定模块和控制器的时候,会执行默认的模块和操作。
因此下面的URL的结果是相同的:
3.系统类库与函数库调用
1.系统类库位于系统的phpcms/libs/classes目录下面,函数库文件名为*.class.php,其中global.func.php为框架中默认加载,global.func.php中函数可直接使用
2.系统函数库位于系统的phpcms/libs/functions目录下面,函数库文件名为*.func.php
系统类库调用
/**
*加载系统类方法
*@paramstring$classname类名
*@paramstring$path扩展地址
*@paramintger$initialize是否初始化
*/
public static function load_sys_class($classname, $path = '', $initialize = 1) {
return self:
:
_load_class($classname, $path, $initialize);
}
示例:
$http=pc_base:
:
load_sys_class('http');//实例化http类
pc_base:
:
load_sys_class('format','',0); //调用form类,不进行实例化操作
系统函数库调用
/**
*加载系统的函数库
*@paramstring$func函数库名
*/
public static function load_sys_func($func) {
return self:
:
_load_func($func);
}
示例:
pc_base:
:
load_sys_func('mail');调用mail函数包
4.配置文件调用
配置文件配置在caches/configs/目录下。
数据库配置文件位置:
caches/configs/database.php
系统配置文件位置:
caches/configs/system.php
配置文件调用:
使用 load_config方法
/**
*加载配置文件
*@paramstring$file配置文件
*@paramstring$key 要获取的配置荐
*@paramstring$default 默认配置。
当获取配置项目失败时该值发生作用。
*@paramboolean$reload强制重新加载。
*/
public static function load_config($file, $key = '', $default = '', $reload = false) {
static $configs = array();
if (!
$reload && isset($configs[$file])) {
if (empty($key)) {
return $configs[$file];
} elseif (isset($configs[$file][$key])) {
return $configs[$file][$key];
} else {
return $default;
}
}
$path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';
if (file_exists($path)) {
$configs[$file] = include$path;
}
if (empty($key)) {
return $configs[$file];
} elseif (isset($configs[$file][$key])) {
return $configs[$file][$key];
} else {
return $default;
}
}
示例:
调用系统配置中的附件路径
$upload_url = pc_base:
:
load_config('system','upload_url');
五、其基本的标签讲解
1.PC标签使用说明
在PHPCMSV9中我们正式开始需要PC标签做为数据的获取的方式。
PC标签是以下面的方式进行声明
{pc:
contentaction="lists" cache="3600" num="20" page="$page"}{/pc}
PC标签必须以{pc}开头,并以{/pc}结尾的代码片段。
当然不以{/pc}结尾并不会引起程序致命性的错误,导致程序无法继续运行。
以下为两种已知可能会出现的问题:
1.当网页中出现两个PC标签时,可能会使得没有闭合的PC标签之后的PC标签数据和其混乱。
2.在后台可视化编辑时,可能出现网页结构错乱的问题。
PC标签分析:
PC标签中{pc:
}冒号之后跟随的为模块名。
如上面的例子中调用的是内容模型的PC标签。
action="list"
这个形式所代表的是参数。
每一个PHPCMSV9模型都为其PC标签定义了调用的参数。
其中有一些调用参数是系统保留的参数,其对所有的PC标签都是有效的。
参数必须使用
参数名="参数值"
的方式填写,多个参数之间使用空格分开(如下例),参数值可使用双引号来包括,无论是什么形式的引号都必须是成对出现的。
{pc:
content 参数名="参数值" 参数名="参数值" 参数名="参数值"}
PC标签保留参数
下表为PC标签保留参数表,几乎所有的PC标签都支持这些保留参数设置
变量名
默认值
说明
action
null
本参数的值表示为操作事件,模型类PC标签必须使用包含本参数,以说明要进行的操作。
cache
0
缓存存储时间(单位秒)
num
20
获取记录的条数,最后会被模板引擎处理成limit传送到处理函数中。
page
null
当前分页。
一般填写为$_GET[page]
urlrule
null
URL规则
return
data
返回数据变量名
下例中是一个完整的使用例子。
{pc:
contentaction="lists" catid="25" num="20" page="$_GET[page]" return="data"}
{$r[title]}
{loop$data$n$r}
{/loop}
{/pc}
PC标签分类:
PC标签包含两个类别,分别为:
1.工具类(get标签、json工具箱、xml工具箱、碎片工具箱({pc:
blockpos="index"}{/pc}))
2.模块类(内容模块(content)、评论模块(comment)、会员模块(member)、友情链接模块(link)、投票模块(vote)、公告模块(announce)、专题模块(special))
工具类,大体上可以理解为PHPCMSV9所提供的一些工具箱。
而模块类,是PHPCMSV9各个模型提供给大家调用模块数据的数据接口。
get标签(工具类)
GET标签源自于PHPCMS2008版,其使用SQL语句直接获取数据的特性,成为大家制作模板的首选。
在V9中这样强大的工具也得到保留下来。
GET标签使用方式如下:
{pc:
get sql="SELECT*FROMphpcms_member" cache="3600" page="$page" dbsource="discuz" return="data"}
{loop$data$key$val}
{$val[username]}
{/loop}
{$pages}
{/pc}
从上面的代码里面可以看出GET标签所支持的参数。
对照下面的列表了解每一个参数的用途:
参数
默认值
必须
说明
sql
null
是
要执行的SQL语句
cache
0
否
缓存时间,单位为秒
page
0
否
分页,通过变量把当前的分布传给PC标签进行处理
dbsource
null
否
数据源,当你通过系统后台的数据源模块配置过数据源时,可把数据源名填写到这里,系统会去对应的数据源来读取数据。
如果要读取本系统的数据请留空
return
data
否
返回的数据的变量
内容模块
内容模块PC标签调用说明
模块名:
content
模块提供的可用操作
操作名
说明
lists
内容数据列表
relation
内容相关文章
hits
内容数据点击排行榜
category
内容栏目列表
position
内容推荐位列表
position操作说明如下:
内容推荐位列表(position):
可用参数:
参数名
是否必须
默认值
说明
posid
是
null
推荐位ID
catid
否
null
调用栏目ID
thumb
否
0
是否仅必须缩略图
order
否
null
排序类型
num
是
null
数据调用数量
代码例子:
{pc:
content action="position" posid="2" order="listorderDESC" num="4"}
-
{$val['title']}
{loop$data$key$val}
{/loop}
{/pc}
返回参数如下表:
字段
类型
空
默认
注释
title
char(80)
否
NULL
推荐位标题
url
char
否
NULL
推荐位链接地址
inputtime
int(10)
否
NULL
推荐位发布时间
thumb
char
是
NULL
推荐位缩略图
其他
不定
是
根据模型所设置的加入到推荐位中字段名称
内容列表(lists):
可用参数:
参数名
是否必须
默认值
说明
catid
否
null
调用栏目ID
where
否
null
sql语句的where部分
thumb
否
0
是否仅必须缩略图
order
否
null
排序类型
num
是
null
数据调用数量
moreinfo
否
0
是否调用副表数据
提醒:
从PHPCMSV9Beta20101105版本开始支持moreinfo参数属性,本参数表示在返回数据的时候,会把副表中的数据也一起返回。
一个内容模型分为2个表,一个主表一个副表,主表中一般是保存了标题、所属栏目等等短小的数据(方便用于索引),而副表则保存了大字段的数据,如内容等数据。
在模型管理中新建字段的时候,是允许你选择存入到主表还是副表的(我们推荐的是,把不重要的信息放到副表中)。
想要在列表中调取副表的数据就需要在PC标签中使用moreinfo这个属性。
代码例子:
{pc:
content action="lists" catid="2" order="idDESC" num="4"}
-
{$val['title']}
{loop$data$key$val}
{/loop}
{/pc}
where用法:
{pc:
content action="lists" catid="2" where="`thumb`!
=''AND`status`=99" order="idDESC" num="4"}
-
{$val['title']}
{loop$data$key$val}
{/loop}
{/pc}
返回参数如下表:
字段
类型
空
默认
注释
title
char(80)
否
NULL
推荐位标题
url
char
否
NULL
推荐位链接地址
inputtime
int(10)
否
NULL
推荐位发布时间
thumb
char
是
NULL
推荐位缩略图
其他
不定
是
其他模型字段
点击排行榜(hits):
可用参数:
参数名
是否必须
默认值
说明
catid
否
null
调用栏目ID
day
否
0
调用多少天内的排行
order
否
null
排序类型(本月排行-monthviewsDESC、本周排行-weekviewsDESC、今日排行-dayviewsDESC)
num
是
null
数据调用数量
代码例子:
{pc:
content action="hits" catid="2" order="weekviewsDESC" num="10"}
-
{$val['title']}
{loop$data$key$val}
{/loop}
{/pc}
返回参数如下表:
字段
类型
空
默认
注释
title
char(80)
否
NULL
推荐位标题
url
char
否
NULL
推荐位链接地址
inputtime
int(10)
否
NULL
推荐位发布时间
thumb
char
是
NULL
推荐位缩略图
其他
不定
是
其他模型字段
相关文章(relation):
可用参数:
参数名
是否必须
默认值
说明
catid
否
null
调用栏目ID
relation
否
$relation
无需更改
keywords
否
null
内容页面取值:
$rs[keywords]
num
是
null
数据调用数量
代码例子:
{pc:
contentaction="relation" relation="$relation" catid="$catid" num="5" keywords="$rs[keywords]"}
{loop$data$r}
{/loop}
{/pc}
返回参数如下表:
字段
类型
空
默认
注释
title
char(80)
否
NULL
推荐位标题
url
char
否
NULL
推荐位链接地址
inputtime
int(10)
否
NULL
推荐位发布时间
thumb
char
是
NULL
推荐位缩略图
其他
不定
是
其他模型字段
栏目列表(category):
可用参数:
参数名
是否必须
默认值
说明
catid
否
0
调用该栏目下的所有栏目,默认0,调用一级栏目
$siteid
否
1
默认调用系统站点
order
否
null
排序方式、一般按照listorderASC排序,即栏目的添加顺序
代码例子:
{pc:
contentaction="category" catid="0" num="25" siteid="$siteid" order="listorderASC"}
{loop$data$r}
{/pc}
返回参数如下表:
字段
类型
默认值
说明
catid
smallint
无
栏目ID
siteid
tinyint(3)
0
站点ID
module
varchar(15)
无
模块ID
type
tinyint
(1)
1
栏目类型ID
modelid
tinyint(5)
5
模型ID
parentid
smallint(5)
5
上级父栏目
arrparentid
varchar(255)
无
所有父栏目
child
tinyint
(1)
0
子栏目
arrchildid
mediumtext
无
所有子栏目
catname
varchar(30)
无
栏目名称
image
varchar(100)
无
栏目图片
description
mediumtext
无
栏目描述
parentdir
varchar(100)
无
父栏目目录
catdir
varchar(30)
无
栏目目录
url
varchar(100)
无
栏目链接
items
mediumint(8)
0
栏目内容数
hits
int(10)
0
点击数
setting
mediumtext
无
栏目设置
listorder
smallint(5)
0
排序
ismenu
tinyint
(1)
0
是否显示
sethtml
tinyint
(1)
0
是否生成到根目录
letter
varchar(30)
无
栏目拼音
如何显示PC标签中的数据:
默认情况下P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 教学 步骤
![提示](https://static.bdocx.com/images/bang_tan.gif)