我有一个php.class来处理我的symfony2项目中的gd-functions。哪里可以找到这个课程的最佳位置?
此致
答案 0 :(得分:2)
在src /中创建一个文件夹。要自动加载您将创建的文件夹中的类,请使用Composer Autoload功能(https://getcomposer.org/doc/04-schema.md#classmap)或在/ app /(https://github.com/symfony/symfony-standard/blob/2.7/app/autoload.php)中自动加载
答案 1 :(得分:1)
如果您的类在没有Symfony2上下文的情况下也可以使用,则不应将其放在Acme\Bundles\DemoBundle
中,而应放在Acme\Components\ChangeThisToWhateverYourLibsNameIs
下。然后,您可以在捆绑包中为此类定义服务,以将其用作Symfony上下文中的服务。
<强>为什么吗
因为通过这种方式,您可以在其他框架中重用该命名空间中的库。您可以为它创建一个新的composer包,并将其添加为捆绑包的依赖项。 正如您所看到的,Symfony核心团队以同样的方式做到了: https://github.com/symfony/symfony/blob/2.7/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml
答案 2 :(得分:0)
将其添加到任何捆绑包中。你肯定必须创建包。在捆绑包中添加目录。该目录可以命名为任何名称。我通常将其命名为Services
。将命名空间添加到您的类。假设您的软件包名称为AcmeDemoBundle
且目录名称为Services
,则您的名称空间为Acme\Bundles\DemoBundles\Services
然后,您可以将此课程注册为服务,并通过DI进行访问。