• thinkphp中的__DIR__ __ROOT__ __APP__ __MODULE__ APP_PATH LIB_PATH MODULE_PATH 等是在哪里定义的?


    1. 为什么会产生这样的 路径 常量等 的 困扰?
      是由于 在tp中, 使用了多种形式的常量导致的, 比如, 有php语言本身的 "魔术常量", 有 php函数, 比如dirname定义的常量, 还有 define定义的常量等等, 所以 就感到 混淆了.

    2. 魔术常量:

    3. 魔术常量和tp定义的路径常量在使用上的区别?
      魔术常量本身定义的 路径, 是不包含 后面的 '/'的;
      而tp中使用的路径常量, 如 ROOT, APP


    __DIR__ :
    模板调整, 默认的模板替换行为只支持下列替换规则:
    'ROOT' => ROOT, // 当前网站地址
    'APP' => APP, // 当前应用地址
    'MODULE' => MODULE,
    'ACTION' => ACTION, // 当前操作地址
    'SELF' => SELF, // 当前页面地址
    'CONTROLLER'=> CONTROLLER,
    'URL' => CONTROLLER,
    'PUBLIC' => ROOT.'/Public',// 站点公共目录

    对于废除的替换规则你可以在模块的配置文件中自行添加,例如:
    'TMPL_PARSE_STRING'=>array(
    '../Public'=> MODULE_PATH.'View/Public/',
    'TMPL' => MODULE_PATH.'View/default/'
    )

    **因此, 你可以看到 实际上没有 PUBLIC 这个系统常量的, 只有在 模板文件中才能使用 PUBLIC, 而在 php文件中, 如各种Common目录下的配置文件 config.php中 是不能使用 __PUBLIC__的, 是无效的. **


    dirname 就是 获取完整文件名的 路径部分. 注意不带, 最后的斜杠

    参考: http://www.cnblogs.com/xianglongsdu/p/5894631.html https://blog.tanteng.me/2014/11/php-line-class-dir/

    结果__JS__等几个变量在模板文件中无法正确解析。原因是__PUBLIC__是模板替换变量,只有出现在模板文件中时才会被替换为对应的字符串。而__ROOT__、__APP__、__MODULE__、__CONTROLLER__、__ACTION__、__SELF__既是模板替换变量,也是系统常量,它们可以应用在模板文件和配置文件中,所以这里可以用__ROOT__
    
    
    
    Home/Conf/config.php
    
    <?php
    return array(
        'TMPL_PARSE_STRING'    => array(
            '__CSS__'    =>    '__PUBLIC__/Home/css',
            '__JS__'    =>    '__PUBLIC__/Home/js',
            '__IMG__'    =>    '__PUBLIC__/Home/img',
        ),
    );
    
    结果__JS__等几个变量在模板文件中无法正确解析。原因是__PUBLIC__是模板替换变量,只有出现在模板文件中时才会被替换为对应的字符串。而__ROOT__、__APP__、__MODULE__、__CONTROLLER__、__ACTION__、__SELF__既是模板替换变量,也是系统常量,它们可以应用在模板文件和配置文件中,所以这里可以用__ROOT__
    
    
    

    ROOTPUBLIC 模板常量在ThinkPHPLibraryBehaviorContentReplaceBehavior.class.php 文件中定义

  • 相关阅读:
    锚接口(上)——hashchange api 和 $.uriAnchor
    仿B站项目(4)webpack打包第三方库jQuery
    仿B站项目(3)页面配置
    微信小程序:scroll滑到指定位置
    开发微信小程序——古龙小说阅读器
    仿B站项目——(2)环境配置,文件目录
    仿B站项目——(1)计划,前端工程
    腾讯Alloy团队代码规范
    webpack热加载:修改文件自动刷新浏览器并更新
    日时相克,困龙被伤。日落死地
  • 原文地址:https://www.cnblogs.com/bkylee/p/6483170.html
Copyright © 2020-2023  润新知