2013-05-13 2 views
0

Я создал пользовательский класс с несколькими методами в нем. напримерКак получить доступ к пользовательским классам в symfony2?

class MyClass{ 

    method1(); 

    method2(); 
} 

Теперь я хочу, чтобы создать объект этого класса и использовать его внутри метода контроллера

класса {

контроллера по умолчанию
public function myAction() 
{ 
    //here I want to able to create object of MyClass, is it possible? 
} 

}

Q1. где я должен хранить этот класс в symfony2 structuere, например. внутри src dir?

Q2. Как я могу использовать этот метод класса внутри контроллера пакета?

+0

Документация о [контейнере службы] (http://symfony.com/doc/current/book/service_container.html) может быть интересно для вас. –

ответ

1

Если вы поместите свой класс в папке Src, она будет автоматически загружаются, то есть: вы можете просто сделать:

$foo = new \MyClass(); 
$foo->method1(); 

в вашем контроллер.

Хороший подход был бы поставить свои классы в Bundle вы, вероятно, использовать их:

src/YourCompany/YourBundle/MyClass.php 

В этом случае, однако, не забудьте поставить объявление пространства имен в верхней части файла MyClass:

namespace YourCompany\YourBundle; 
class MyClass{ 
    //.. 
} 

Вы можете поместить свои классы на базовую папке пачки, или использовать другие вложенные папки, чтобы лучше различать набор классов друг от других, например:

src/YourCompany/YourBundle/Listener/MyClassListener.php 
src/YourCompany/YourBundle/Manager/MyClassManager.php 

Для получения дополнительной информации см Best practice on Bundles structure of Symfony2

Смежные вопросы