fdevs/export-routing

该包已被废弃,不再维护。未建议替代包。

0.2.1 2018-03-13 10:01 UTC

This package is auto-updated.

Last update: 2023-06-29 01:44:25 UTC


README

Build Status

将 symfony 路由导出为 js/json

如果您与 js 一起使用,可以使用 npm 包 fos-routing

安装

Export routing 使用 Composer,请访问 composer 网站 获取更多信息。

以下简单的命令将安装 export-routing 到您的项目中。它还会在您的 composer.json 中添加一个新条目并更新 composer.lock

composer require fdevs/export-routing

导出您的路由

<?php
use FDevs\ExportRouting\Normalizer\RouteCollectionNormalizer;
use FDevs\ExportRouting\Normalizer\RouteNormalizer;
use FDevs\ExportRouting\Normalizer\RouteExtractorNormalizer;
use FDevs\ExportRouting\Encoder\JsCallbackEncoder;
use FDevs\ExportRouting\RoutesExtractor;
use FDevs\ExportRouting\Extractor\ChainExposed;
use FDevs\ExportRouting\Extractor\OptionExposed;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\JsonEncoder;

$router = ;//get your routes Symfony\Component\Routing\RouterInterface
$exposed = new ChainExposed([new OptionExposed()]);
$extractor = new RoutesExtractor($router,$exposed);

$normalizers = [
  new RouteCollectionNormalizer(),
  new RouteNormalizer(),
  new RouteExtractorNormalizer(),
  //your normalizers
];
$encoders = [
  new JsCallbackEncoder(),
  new JsonEncoder(),
  //your encoders
];

$serializer = new Serializer(normalizers, encoders);

echo $serializer->serialize(extractor,'js',['callback' => 'initRouting']);//js with callback
echo $serializer->serialize(extractor,'json');//json

与 Symfony 框架包一起使用

  • FDevs\ExportRouting\FDevsExportRoutingBundle 添加到您的内核

使用命令

使用 Console 组件 创建您的应用程序

###添加命令

 // ...
$serializer = new Serializer(\**\);//init serializer
$extractor = new RoutesExtractor(\**\);//init extractor
$application->add(new DumpCommand($serializer,$extractor,'fdevs:dump-routing:dump'));

###运行命令

bin/console fdevs:export-routing:dump