Как создать / использовать пользовательские классы и помощник в Symfony 1.4? - PullRequest
5 голосов
/ 06 марта 2011

Каков наилучший способ поместить пользовательскую библиотеку или вспомогательные методы в Symfony?Я использую учение с моим проектом.Одно из мест, которое я хотел бы поместить, находится под

<strong>project_root/lib/vendor/MyClasses/</strong>
Но если я хочу создать класс или вспомогательную функцию, которая будет использовать некоторые основные методы symfony / doctrine и вернет результат, то как это сделать и где мне его поместить?Я хочу, чтобы он вызывался из разных модулей, чтобы избежать дублирования кода.

Ответы [ 2 ]

7 голосов
/ 07 марта 2011

Что касается пользовательской части библиотеки, возможно, вы захотите поместить вашу внешнюю библиотеку в папку lib / vendor .Так как symfony не загружает автоматически все, что находится там, вам нужно будет указать его автозагрузчику.

Вы можете расширить config / ProjectConfiguration.class.php (какописано здесь ) или (и это гораздо более простой и понятный способ) добавить их в config / autoload.yml (возможно, вам придется создать его).Для последнего варианта это - отличное место, чтобы начать смотреть.

2 голосов
/ 06 марта 2011

Кажется, что это дубликат вопроса .

Как задано в документах Symfony's 1.2 Definitive Guide:

Помощникфункции (обычные функции PHP, возвращающие HTML-код) должны быть сохранены в файле с именем FooBarHelper.php, где FooBar - имя группы помощников.Сохраните файл в каталоге apps / myapp / lib / helper / (или в любом каталоге helper /, созданном в одной из папок lib / вашего проекта), чтобы его можно было автоматически найти с помощью помощника use_helper ('FooBar') для включения.,

Итак, если вы хотите создать пользовательский помощник FooBar для функции foo (), создайте файл lib / helper / FooBarHelper.php :

function foo() {echo "foo!"; }

чтобы использовать его в вашем шаблоне:

use_helper('FooBar')
....

foo(); //outs "foo!"
...