php 自动加载机制,为什么单文件可以访问没有use的类?

新建一个Thinkphp5.1项目:

composer  create-project  topthink/think  tp5.1  5.1.*  --prefer-dist

config\app.php:

<?php

return [
   // ...
   'dispatch_success_tmpl'  => Env::get('think_path') . 'tpl/dispatch_jump.tpl',
   // ...
]
  1. 请问这里的 Env 并没有使用 use think\facade\Env; 为什么也可以使用呢?
  2. 请问我使用 vscode 代码检查提示 Undefined type 'Env'.intelephense(1009) 有什么方法避免这个错误提示吗?
阅读 2.7k
1 个回答

1.第一个问题涉及涉及到应用容器。简而言之,应用内部内置了一些常用的门面(facade)与别名的映射,在使用时应用会通过搜寻别名Env找到映射的真实空间think\facade\Env,然后通常composer加载机制,找到类文件,从而实现自动加载

2.vscode 错误提示请自行查阅官网,或在vscode用户自定义配置文件中关闭该提醒

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题