portrino / typo3-fractal-view
此包已被废弃且不再维护。未建议任何替代包。
将分形包(https://fractal.thephpleague.com/)集成到TYPO3 Extbase中
0.2.0
2017-10-10 14:35 UTC
Requires
- php: >=5.5.0
- league/fractal: ~0.17.0
- typo3/cms: ^7.6 || ^8.7
Requires (Dev)
- phpunit/phpunit: ^4.8
- squizlabs/php_codesniffer: ~3.0.2
This package is auto-updated.
Last update: 2024-02-20 01:09:44 UTC
README
将分形包(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) ]; } }
作者
还可以查看参与此项目的贡献者列表。