簡體   English   中英

在 TYPO3 9.5 LTS / Extbase 中擴展存儲庫

[英]Extend repository in TYPO3 9.5 LTS / Extbase

我正在嘗試擴展此IndexRepository以添加我自己的特殊搜索方法。

在 controller 中,我將自己的 IndexRepository 注入:

use Webian\Iancalendar\Domain\Repository\IndexRepository;

/**
 * Inject index repository.
 *
 * @param IndexRepository $indexRepository
 */
public function injectIndexRepository(IndexRepository $indexRepository)
{
    $this->indexRepository = $indexRepository;
}

我所做的工作有效,但我收到此警告:

PHP Warning
Core: Error handler (BE): PHP Warning: Declaration of Webian\Iancalendar\Controller\
BackendController::injectIndexRepository(Webian\Iancalendar\Domain\Repository\IndexRepository $indexRepository)
should be compatible with HDNET\Calendarize\Controller\
AbstractController::injectIndexRepository(HDNET\Calendarize\Domain\Repository\IndexRepository $indexRepository)
in /typo3conf/ext/iancalendar/Classes/Controller/BackendController.php line 42

那是因為我使用自己的Webian\Iancalendar\Domain\Repository\IndexRepository擴展H.NET\Calendarize\Domain\Repository\IndexRepository 如果我使用原來的警告不會出現,但顯然我自己的方法沒有被調用。

我怎樣才能避免這個警告?

您要么不擴展H.NET\Calendarize\Controller\AbstractController ,而是擴展 Extbase 的默認AbstractController ,那么您將需要自己實現所有必需的邏輯。

或者您只是為您的注入方法使用不同的名稱:

use HDNET\Calendarize\Controller\AbstractController;
use MyNamespace\MyExtension\Domain\Repository\IndexRepository;

class MyController extends AbstractController
{

...

    /**
    * The index repository.
    *
    * @var IndexRepository
    */
    protected $myIndexRepository;

    /**
    * Inject index repository.
    *
    * @param IndexRepository $myIndexRepository
    */
    public function injectMyIndexRepository(IndexRepository $myIndexRepository)
    {
        $this->myIndexRepository = $myIndexRepository;
    }

...

class IndexRepository extends \HDNET\Calendarize\Domain\Repository\IndexRepository
{

...

    // My method that extends \HDNET\Calendarize\Domain\Repository\IndexRepository functionalities
    public function findByStartDate(DateTime $startDate = null, DateTime $endDate = null)
    {

...

方法名並不重要,重要的是它以inject開頭,並且有一個類型提示指示要注入的依賴項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM