如何在symfony2中访问自定义类?
I have created a custom class with few method in it. e.g.
class MyClass{
method1 ();
method2();
}
Now I want to create object of this class and use it inside a controller method
class DefaultController{
public function myAction()
{
//here I want to able to create object of MyClass, is it possible?
}
}
Q1. where should I store this class in symfony2 structuere e.g. inside src dir?
Q2. How can I use this class method inside the controller of a bundle?
我创建了一个自定义类,其中包含很少的方法。 例如 p>
class MyClass {
method1();
method2();
}
code> pre>
\ n 现在我想创建这个类的对象并在控制器方法中使用它 p>
类DefaultController { p>
public function myAction()
{
//这里我希望能够创建MyClass的对象,这可能吗? \ N}
代码> PRE>
} P>
Q1。 我应该在symfony2结构中存储这个类,例如 在src dir里面? p>
Q2。 如何在bundle的控制器中使用此类方法? p>
div>
If you put your class in the src folder, it will be autoloaded, ie: you can simply do:
$foo = new \MyClass();
$foo->method1();
in your Controller.
A good approach would be to put your classes in the Bundle you are likely to use them:
src/YourCompany/YourBundle/MyClass.php
In this way however don't forget to put the namespace declaration on top of your MyClass file:
namespace YourCompany\YourBundle;
class MyClass{
//..
}
You can put your classes on the base folder of your bundle, or use other nested folders to better differentiate a set of classes from each others, for eg:
src/YourCompany/YourBundle/Listener/MyClassListener.php
src/YourCompany/YourBundle/Manager/MyClassManager.php
For more info see the Best practice on Bundles structure of Symfony2