Routing Symfony路由;用户生成内容中的内部URI

Routing Symfony路由;用户生成内容中的内部URI,routing,symfony1,Routing,Symfony1,我正在从事一个Symfony(1.4)项目,该项目要求用户能够在用户生成的内容体中插入内部URI,在TinyMCE/WMD编辑器中编写(尚未决定!)。用户可以将内部URI添加到网站上的其他位置。内容将以markdown/html的形式存储在数据库中 我可以简单地插入通过Symfony本身检索到的当前URI,但我希望有一种方法来存储相应的模块/action/etc变量,以便在需要更改路由时,整个网站上的URI都保持正确 我唯一能想到的是一个类似PHP Markdown的处理器,它执行文本搜索,在内

我正在从事一个Symfony(1.4)项目,该项目要求用户能够在用户生成的内容体中插入内部URI,在TinyMCE/WMD编辑器中编写(尚未决定!)。用户可以将内部URI添加到网站上的其他位置。内容将以markdown/html的形式存储在数据库中

我可以简单地插入通过Symfony本身检索到的当前URI,但我希望有一种方法来存储相应的模块/action/etc变量,以便在需要更改路由时,整个网站上的URI都保持正确

我唯一能想到的是一个类似PHP Markdown的处理器,它执行文本搜索,在内容块中提取自定义标记,并将其替换为生成路由的Markdown/html代码(使用Symfony的get_url()/link_to()方法)。[这还需要文本标记生成器等]


Symfony还有其他/更好的方法吗?我可以从用户生成的输入中访问Symfony helpers/etc吗?

只需告诉用户他们需要使用命名路由
@my\u custom\u url
,并在Symfony路由文件
routing.yml
中定义它们没有简单的方法可以做到这一点。最好的方法可能是:

  • 在提交时解析编辑器输入以查找所有URL
  • 用存储路由名称和参数的自定义语法替换URL
  • 每当检索/显示信息时,请删除自定义语法并将其替换为生成的路由(例如,通过preg_replace回调)
或者,对于路线相对不灵活的小型站点,可以显示可用路线的下拉列表


任何一种路由都可能会带来一些麻烦。

名称路由是否仍需要通过Symfony方法处理?我认为下面的方法行不通;是的,不知怎的,我认为你正在解析它们,你只是不想让用户输入模块/动作,我也这么想。谢谢你的建议。除非有人很快想出一些魔法,否则就只能这样了!