Symfony自动加载结构

时间:2013-01-19 16:41:56

标签: php symfony

晚上好!

我在使用symfony2.1.6访问自定义类时遇到一些问题 自动加载磁带机。 我需要做的是访问  Mangress / src / Qkprod / Classes / api / APIEntry.php类来自于  DefaultController。显然我太傻了,无法找到扩展的方法  autoload.php这样做。现在我处在一直存在的地步  阅读那么多我不知道的博客文章和解决方案  怎么办......

我的文件结构如下所示:

Mangress
 -app
 -src
    -Qkprod
      -MangressBundle
      -Controller, Entity, Resources, Tests
      -Classes
         -api
            -APIEntry.php
         -db
         -security
    -QkprodMangressBundle.php
 -vendor
 -web
 
Classes文件夹包含我到目前为止所写的所有类。

到目前为止我所读到的是我需要注册的命名空间  要加载的类 Mangress / app / autoload.php
 Autoloading a class in Symfony 2.1

  

$装载机>添加( 'Qkprod \ MangressBundle \ API',                  的 DIR '/ .. / SRC / Qkprod / MangressBundle /类别/ API /');   虽然这似乎是错误的..

我对symfony的命名或理解有问题吗? 我将名称空间“Qkprod \ MangressBundle \ api”注册到自动加载器 这样symfony就知道在哪里看

  

使用Qkprod \ MangressBundle \ api \ APIEntry;

所以它必须查看我的 Mangress / src / Qkprod / MangressBundle / Classes / api 文件夹我错了吗?

我真的很感激一些指导:)

1 个答案:

答案 0 :(得分:1)

为什么不使用symfony开发人员推荐的directory structure

即使只是symfony开发人员,这个结构也称为PSR-0,并被许多PHP框架采用。

如果您遵守惯例,默认的自动加载器将很好地加载您的类,其他开发人员将更容易理解您的代码。

只需删除“Classes”目录,然后将其中的所有内容向上移动:

Mangress
 -app
 -src
    -Qkprod
      -MangressBundle
        -Controller, Entity, Resources, Tests
        -Api
          -APIEntry.php
        -Db
         -security
        -QkprodMangressBundle.php
 -vendor
 -web

当你写

时这样
use Qkprod\MangressBundle\Api\APIEntry

它会知道在哪里看。