当我们放置use some_namespace
时,Symfony如何知道要包含哪些类。是否需要先将文件包含在某个地方,或者在我们调用use
语句时执行此操作 - 例如,我的文件为product.php
:
namespace Facebook\Bundle\FacebookBundle\Domain;
class Product{
//some codes
}
然后在默认控制器
中use Facebook\Bundle\FacebookBundle\Domain\Product;
use
语句是否找到该文件并包含它?
答案 0 :(得分:3)
Symfony2使用标准PSR-0。简而言之:它定义了类名必须如何映射到文件系统路径。例如,在您的示例中:
use Facebook\Bundle\FacebookBundle\Domain\Product;
//loaded from /path/to/project/Facebook\Bundle\FacebookBundle\Domain\Product.php
在幕后,Symfony有一个自动加载器 - 只要您尝试使用尚未定义的类,它就会将类名转换为路径并包含它,因此您赢得了#。需要在文件顶部添加任何require语句。