当我们使用类名称空间调用时,Symfony如何包含类?

时间:2012-08-12 07:52:15

标签: php symfony

当我们放置use some_namespace时,Symfony如何知道要包含哪些类。是否需要先将文件包含在某个地方,或者在我们调用use语句时执行此操作 - 例如,我的文件为product.php

namespace Facebook\Bundle\FacebookBundle\Domain;

class Product{
    //some codes
}

然后在默认控制器

use Facebook\Bundle\FacebookBundle\Domain\Product;

use语句是否找到该文件并包含它?

1 个答案:

答案 0 :(得分:3)

Symfony2使用标准PSR-0。简而言之:它定义了类名必须如何映射到文件系统路径。例如,在您的示例中:

use Facebook\Bundle\FacebookBundle\Domain\Product;
//loaded from /path/to/project/Facebook\Bundle\FacebookBundle\Domain\Product.php

在幕后,Symfony有一个自动加载器 - 只要您尝试使用尚未定义的类,它就会将类名转换为路径并包含它,因此您赢得了#。需要在文件顶部添加任何require语句。