我的Symfony项目中有多个函数用于多个控制器。我不想经常复制和粘贴它们,而是希望有一个单独的php文件(比如functions.php)来存储函数。
我尝试了以下内容:
1)包含并要求带有这些功能的php文件,但它不会让我使用$ this-> getDoctrine()。 我已经查看了以下帖子以寻求帮助,但它没有解决问题:
Symfony2: get Doctrine in a generic PHP class
Symfony2 Use Doctrine in Service Container
2)我已经尝试将它变成一个类,然后将函数作为方法:
$f = new Functions();
$variable = $f->myMethod();
但它返回:
The file was found but the class was not in it, the class name or namespace probably has a typo.
感谢您的帮助。对此,我真的非常感激。
通用类是Symfony/src/WikiRoster/MainBundle/Controller/DBFunctions.php
我现在只需要能够以某种方式使用$this->getDoctrine()
之类的东西。我已尝试使用上面链接中建议的services.yml
,但没有雪茄。谢谢!
答案 0 :(得分:0)
找到了文件但该类不在其中,类名或 命名空间可能有拼写错误。
这个问题实际上经常发生。正如错误所提到的,有2个案例解释了为什么会返回此错误:
假设你想在不同的类中使用GeneralClass:
use Acme\YourBundle\General\GenericClass
为了实现这一目标,GeneralClass
需要位于Acme/YourBundle/General/
,您需要:
namespace Acme\YourBundle\General
class GenericClass
你会:
namespace Acme\YourBundle\General;
class GenericClass
{
public function __construct()
{
// some cool stuff
}
}