多个php类(Symfony控制器)可访问的函数
在我的Symfony项目中,我有几个用于多个控制器的函数。我希望有一个单独的php文件(比如functions.php)来存储函数,而不是不断地复制和粘贴它们 我尝试了以下方法: 1) 包含并要求php文件和函数,但它不允许我使用$this->getDoctrine()。 我查看了以下帖子寻求帮助,但没有解决问题: 2) 我已经尝试将其设置为类,并将函数设置为方法,然后执行以下操作:多个php类(Symfony控制器)可访问的函数,php,function,symfony,methods,controller,Php,Function,Symfony,Methods,Controller,在我的Symfony项目中,我有几个用于多个控制器的函数。我希望有一个单独的php文件(比如functions.php)来存储函数,而不是不断地复制和粘贴它们 我尝试了以下方法: 1) 包含并要求php文件和函数,但它不允许我使用$this->getDoctrine()。 我查看了以下帖子寻求帮助,但没有解决问题: 2) 我已经尝试将其设置为类,并将函数设置为方法,然后执行以下操作: $f = new Functions(); $variable = $f->myMethod();
$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/wikilosts/MainBundle/Controller/DBFunctions.php
我现在只需要能够使用$this->getDoctrine()
或者类似的东西。我试过使用上面链接中建议的services.yml
,但没有雪茄。谢谢
找到文件,但类不在其中,类名或
命名空间可能有输入错误
这个问题实际上经常发生。如错误所述,有两种情况解释了返回此错误的原因:
- 如果文件的命名空间与文件的路径不同
- 如果文件名与类中使用的名称不同
例子 假设您希望在另一个类中使用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
}
}
谢谢现在我只需要处理错误:在不在对象上下文中时使用$this。除了我上面发布的链接之外,还有什么建议吗?如果你用一般文件的名称及其路径更新你的问题,我可以根据你的具体情况更新我的答案。这是一个经常发生的普遍问题:)