portrino/typo3-fractal-view

此包已被废弃且不再维护。未建议任何替代包。

将分形包(https://fractal.thephpleague.com/)集成到TYPO3 Extbase中

0.2.0 2017-10-10 14:35 UTC

This package is auto-updated.

Last update: 2024-02-20 01:09:44 UTC


README

Build Status Code Climate Test Coverage Issue Count Latest Stable Version Total Downloads

将分形包(https://fractal.thephpleague.com/)集成到TYPO3 Extbase中

安装

您需要将仓库添加到您的composer.json文件中

    composer require portrino/typo3-fractal-view

Extbase视图

您可以在动作控制器请求前添加 ?tx_par_pi1[format]=json,extbase将为您渲染相应的视图。通过将FractalView类放入$viewFormatToObjectNameMap$defaultViewObjectName,extbase能够获取您请求的正确视图类。

use Portrino\Typo3FractalView\Mvc\View\FractalView;
use Foo\Bar\Transformer\BookingTransformer;

class BookingController
{
    /**
     * @var array
     */
    protected $viewFormatToObjectNameMap = [
        'json' => FractalView::class
    ];
    
    /**
     * @var string
     */
    protected $defaultViewObjectName = FractalView::class;
    
    /**
     * Action Show
     *
     * @param \Foo\Bar\Domain\Model\Booking $booking
     *
     * @return void
     */
    public function showAction($booking)
    {
        $this->view->assign('booking', $booking);
        $view->setConfiguration([
            'booking' => BookingTransformer::class
        ]);
        $this->view->setVariablesToRender(['booking']);
    }
    
}

您需要做的唯一一件事是实现BookingTransformer类,具体实现方式请参考这里: https://fractal.thephpleague.com/transformers/

示例

namespace Foo\Bar\Transformer;

use Foo\Bar\Domain\Model\Booking;

class BookingTransformer
{
   /**
     * @param Booking $booking
     * @return array
     */
    public function transform(Booking $booking)
    {
        return [
            'uid' => $booking->getUid(),
            'start' => $booking->getStart()->format(DateTime::ISO8601),
            'end' => $booking->getEnd()->format(DateTime::ISO8601)
        ];
    }
}

作者

  • André Wuttig - 初始工作,单元测试 - aWuttig
  • Christian Deussen - 修复错误 - nullsub

还可以查看参与此项目的贡献者列表