tp框架基础(详细步骤分解,易懂)下
在浏览器中如果要访问操作方法的时候以什么方式来访问
有四种方式
第一种是get方式,第二种是访问路径
这四种方式我们可以通过修改配置文件来改掉url的模式
我们需要来改一下我们的配置文件
在这个路径下来改配置,打开这个文件
改什么配置呢
再打开这个路径下的文件
找到这个文件url打头的
把这句话复制一下,把它拿到我们自己的配置文件里粘贴
在这里面进行修改
这里有个数字,代表我们的访问模式,如果是0的话,就是普通方式,get方式,如果改1的话,就是路径模式,如果改2的话就是重写模式,如果是3的话就是兼容模式
无论数字那里改成几,在浏览器访问的时候这四种依然可以使用,所以这个地方改不是针对我们访问用的,是针对我们生成用的,如果改成0,我们想生成一个url地址的话,可以看一下到底生成什么样
打开这个路径里面的文件
打开文件,然后输出一下u
然后在浏览器中,输出tp地址
会出来它的地址,也就是get模式
然后再把配置文件中的0 改成 1
然后再刷新一下
就会变回这种方式
所以生成的这种方式是按照我们的配置文件来的,访问的时候,配置文件没有作用,哪种都可以访问,生成的时候配置文件才会有作用
如果这里只写一个参数的话
它创建的这个路径就是home文件夹下index控制器下index操作方法
如果想创建别的控制器里面的操作方法的话,前面要写控制器名,如图
这个就代表 创建的目录是另外一个控制器,里面有个操作方法叫index
来创建这个访问路径
如果不写的话就是指当前控制器下的操作方法
如果模块都不一样的话,可以这样写,如图
这样就代表,在该控制器下创建一个Admin模块下的Two,这个控制器下的操作方法
根据参数的不一样,创建的路径也是不一样的
下面再来自己的配置文件里,加上这样一段话
显示tract信息
然后再来刷新页面看一下
在页面的右下角出来了一个图标
单击图标,会出来这些内容
上面的文件、错误、sql什么的都可以点击
这个配置尽量要打出来
打开入口文件,也就是index.php ,找到这句话
有一个常量APP_PATH ,默认定义的是当前目录下的application文件夹
如果一个程序不想使用application文件夹,可以把它改掉,如图
然后保存一下。本来tp文件夹里没有shop文件夹
我们需要重新访问一下入口文件
再来看一下tp目录下有没有Shop文件夹
已经有了,而且里面还有三个文件夹
打开home模块,里面该有的内容都有
所以以后要切换程序的话,就改这个地方
Shop文件夹下,home模块完全可以自定义
例如,定义一个Admin模块
自定义的这个模块怎么才能和home一样使用呢
这就要在Admin文件下建好相应的文件夹
第一个文件夹 Common
第二个文件夹 Conf
第三个文件夹 Controller
第四个文件夹 Model
第五个文件夹 View
都建好后就是这样
可以在Controller 里面写自己的控制器,这里要注意,这五个文件夹的名字是固定的,格式也是固定的,就不能随便写了
先来看一下控制器该怎么写
现在Controller里面建个文件
名字格式也是有约定的,名字可以随便起,但要使用驼峰法,后面跟Controller控制器,然后点class点php
打开这个控制器
再来书写里面的代码,可以参考它自带的控制器里面的内容写
写法格式一定要参照着来写
我们来从浏览器,试一试能不能访问到
结果访问到了
这个就是怎么来操作控制器
再来看一下模板文件应该放在哪里
就是放在View里面,打开这个文件夹
在里面不能直接扔模板,要先建控制器的文件夹
这里的文件名要和控制器的名字一致
再在里面建一个文件
这里要注意这两个名字要和控制器里面写的名字一致
然后再给index文件添加内容
控制器里调用一下
用display方法
然后再刷新一下浏览器的访问地址
模块里面的内容被调出来了
还有一种方法可以调
show方法
display方法属于smarty的一种风格
show方法属于tp的一种风格
在tp这里,这两种方法都可以用,都能把模板调出来显示
除了能显示模块,还能往模块里面注入变量
注入变量要这么写
调用assign方法
这样就给tp框架注册了一个变量
接下来在index模板想把test拿过来使用
应该怎么写
在模板里面如果想调变量过来使用,要先知道左分隔符右分隔符是什么,才能调出来
在这个目录下打开这个文件
找到这两句话
如果觉得花括号会冲突的话,可以把它改一下,但要注意不要在这里面改,把它复制到我们自己的配置文件里面去改
先在Shop自己做个配置文件,要在这里写,目录如下
新建一个文件,文件名是固定的
然后给里面添加内容
先来参考一下它的配置文件是怎么写的
第一句话不用写,从第二句开始,然后里面的内容光放我们需要改的那部分就好
把分隔符改成了'<{' 这样的形式
改完后,回到index文件里
调一下变量,看看能不能出来
刷新一下原来的页面
测试被成功调出
tp框架的语法和smarty里面的语法基本相似
显示和注册变量是一致的
smarty里面可以调数组,试试tp框架里面能不能调取数组
模块文件里调取数组索引0
刷新页面
运行成功,arr索引0,是1
再把它改成一个关联数组,试试
index文件中
刷新页面
运行成功,输出111
在这里点语法也是支持的
刷新一下
运行成功
tp框架和smarty基本类似,没有太大的差别
再来看,如果在index文件里面写个提交表单的话,提交的地址要写什么
它应该指向的是控制器的操作方法
在控制器那里再写一个操作方法,先让它输出一句话,如下
因为换了一个操作方法,所以在浏览器地址上把index 改成chuli ,看看能不能把这句话输出来
成功输出
然后把chuli的这个操作方法的网址复制下来,粘贴到这个地方
可以写个按钮,然后我们提交一下,试一试
然后刷新页面运行一下,还是改回index
然后点击提交
页面立马跳转到了chuli页面
不过在提交表单的路径那里,直接那么写的话,麻烦了一点,我们来看看怎么写能把路径简化了
我们先获取一下系统常量看一下
刷新一下chuli的浏览页面,会出来许多的常量
我们拉到最后,从这里开始
user下面的常量是我们经常用的
有很多显示的路径
chuli和index是在同一个控制器下,所以我们就可以使用__CONTROLLER__
这个代表着 找当前控制器下的操作方法
我们可以试一下
点击提交
跳转成功