2015-01-10 1 views
0

Возможно ли записать нормальную функцию в контроллер?Нормальная функция в контроллере Extbase

Я хочу немного очистить свой код, поэтому я хочу написать несколько методов для повторяющихся сегментов кода, но я не хочу создавать специальный класс.

Как это можно сделать?

Если я нормальный

private function xyz() {} 

я получил ошибку function not found.

+0

Пожалуйста покажите больше кода, если ответ ниже вам не поможет. – pgampe

+0

Пожалуйста, потратьте некоторое время на предоставление правильно отформатированных вопросов с лучшей орфографией и пунктуацией. Имейте в виду, что в один прекрасный день у другого человека будет такая же проблема, и он захочет воспользоваться вашим вопросом и ответами. Не зависеть от других, фиксирующих ваши сообщения, быть хорошим примером. Вам не нужно использовать TYPO3 в заголовке сообщения, если вы помечаете его «typo3». – lorenz

ответ

2

Вы должны использовать protected, а не private, если у вас нет веских оснований для этого. Во всяком случае, определение дополнительных методов отлично работает для меня.

Этот метод необходимо использовать с помощью $this->xyz().

2

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

abstract class AbstractController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController{ 
    protected function myFunction(){} 
} 

контроллеров наследует от абстрактного класса и будете иметь все доступные методы:

class FirstController extends AbstractController { 
    public function firstAction(){ 
     // has access to myFunction() 
    } 
} 

class SecondController extends AbstractController { 
    public function secondAction(){ 
     // has access to myFunction() 
    } 
} 
+0

спасибо за этот намек. Я знаю эту возможность, но разве это не так, как в java, что я могу расширить только один класс? – Felix

+0

Да, это действительно так, но поскольку сам 'AbstractController' расширяет' \ TYPO3 \ CMS \ Extbase \ Mvc \ Controller \ ActionController', вы будете иметь все методы и свойства контекста TYPO3, как обычно. – konsolenfreddy

+0

ok да ваше право! Хорошая идея Нужно это, а также спасибо! – Felix