注:这是thinkphp5框架零基础学习笔记,需要的拿走。我之所以学开发,是为了更好的了解一个网站。只有这样,才能思路清晰的拿下一个站点!
所谓的模块,就是对应的文件夹。。。
现在我终于理解为什么在渗透测试过程当中,可以用大小写来区别windows系统和linux系统了。
这里虽然说得是模块、控制器、控制器方法的关系。但是,用户访问网站的时候,访问的是模块,只要修改访问url中模块的大小写,看能否访问成功,就知道目标是windows系统还是linux系统了。我的是windows系统。
关于命名空间,不是太懂:
总结一下就是(仅限thinkphp框架中的用法,若没有thinkphp框架,那么这样肯定会报错):
域名/模块名/控制器名/函数/参数名/参数值/参数名/参数值……
这样的一个访问形式
之所以上面的路径错误还可以执行,那是因为有个apache的配置文件,但是,在application中也有个这样同样名字的配置文件。只不过那个application中的htacess文件中写的是deny all ,拒绝全部。而这个却不是的。
上面这个就是配置文件htaccess起到的作用。
下面在看一下控制器与控制器对应的文件夹的关系
可以看到,每个控制器对应的都是一个文件夹!是文件夹!不是文件!对应的都是view文件夹下的一个与控制器名字相像的文件夹。唯一的不同是,控制器开头字母大写,对应的view下的文件夹名字没有大写。
再进一步观看,会发现既然一个控制器,对应view下的一个文件夹,那么,一个控制器中的方法,对应的就是文件夹下的某个文件。名字都是一样的。很有规律,很有条理。当然这是默认情况下框架是这么对应的。
如果不想这么对应,也可以修改,可以看到,这里的index.php控制器中的index类对应的是view/index/index.html模板,但是经过 return $this->fetch('index2') 的渲染模板的修改,就渲染了index2.html这个模板