在做项目时,有时需要储存php代码,由于她是可执行的,我们并不希望被随意执行或者修改,drupal提供了一个php代码储存组件来保障这一点,她使用文件系统储存,本篇讲解她的使用和原理。
前备知识点:
首先我们需要明确知道文件系统操作的以下几点:
一个文件有三个时间:
创建时间、修改时间、最后访问时间,
她们分别对应php函数:
filectime()、filemtime()、fileatime()
修改时间是本篇的重点
更改文件名不会引起文件修改时间的变化,只有文件内容有变化才会
更改目录下文件的修改时间,不会引起目录修改时间的变化
php程序可以任意修改文件的修改时间
drupal提供的php代码储存组件:
她位于:\core\lib\Drupal\Component\PhpStorage,以组件方式提供,这意味着不依赖其他子系统,可以单独用于drupal以外的项目。
该组件使用文件系统来储存php代码,使用“.php”扩展名,并不以真实文件名来保存或加载内容代码,而是采用虚拟文件名(也可以叫做识别标志符,类似缓存id),真实文件名是经过哈希运算得出的;该组件对保存的代码文件提供两方面保护:
1、保护储存的代码不被浏览器直接访问
2、在通过该组件加载代码时保证代码不被非法修改
Now I Code 爱码文档汇,与您一起发现更好的自己。请关注微信订阅号:nowico
领取专属 10元无门槛券
私享最新 技术干货