如何创建应用程序之间的联系
一个ob娱乐下载symfony项目是由一个或多个应用程序。应用程序共享,但模型类。但有时,你需要能够创建链接到前端应用程序从后端。思考一个CMS的后端,您希望用户编辑一篇文章然后在前端链接到相应的文章。
在本教程中,我将向您展示一个简单的解决这个问题。
在解析配置文件和生成的数组转换成一个PHP缓存,一些配置处理程序类也可以“评估”的配置直接消费(自动装载、数据库和路由配置处理程序体育这个新行为)。
举个例子,如果你想把一个文件包含YAML格式定义路由到相应的路由对象,你可以像下面这样:
美元配置=新sfRoutingConfigHandler();美元的路线=美元配置- >评估(数组(“/道路/ / routing.yml”));
如果你执行上面的代码片段中,美元的路线
数组将填充一个路由对象数组,相当于在YAML文件中定义的路线。的生成()
方法以一个数组的YAML文件名作为其第一个参数和合并的文件的内容。
提示
的evaluate ()
方法以一个数组的配置文件。如果你有一些插件定义路线routing.yml
文件,添加的文件路径数组和配置将被合并与主配置。
由于框架解耦和sfPatternRouting: setRoutes ()
方法,您可以轻松地从任何PHP脚本创建一个前端路由对象:
美元的路由=新sfPatternRouting(新sfEventDispatcher());美元的路由- >setRoutes(美元的路线);
现在生成的url简单地调用路由对象生成()
方法:
美元的路由- >生成(“主页”);美元的路由- >生成(“文章”,数组(“id”= >$ id));
的生成()
方法采用路线名称作为它的第一个参数,以及作为其第二个数组参数。
让我们用这些知识来简化创建前端后端应用程序的url。
在backendConfiguration
类,添加以下代码:
/ /应用程序/后端/配置/ backendConfiguration.class.php类backendConfiguration扩展sfApplicationConfiguration{受保护的frontendRouting美元=零;公共函数generateFrontendUrl(美元的名字,美元的参数=数组()){返回“http://frontend.example.com”。这个美元- >getFrontendRouting()- >生成(美元的名字,美元的参数);}公共函数getFrontendRouting(){如果(!这个美元- >frontendRouting){这个美元- >frontendRouting=新sfPatternRouting(新sfEventDispatcher());美元配置=新sfRoutingConfigHandler();美元的路线=美元配置- >评估(数组(sfConfig::得到(“sf_apps_dir”)。' /前端/ config / routing.yml '));这个美元- >frontendRouting- >setRoutes(美元的路线);}返回这个美元- >frontendRouting;}/ /……}
请注意
请注意,generateFrontendUrl ()
方法对显而易见的原因总是生成绝对url。这是唯一的信息仍然需要硬编码,因为symfony没有这方面的知识,不能想它。ob娱乐下载
有了这段代码,您现在可以生成一个前端后端URL从任何地方。这是例如如何将用户重定向到前端后端操作:
这个美元- >重定向(这个美元- >getContext()- >getConfiguration()- >generateFrontendUrl(“你好”,数组(“名字”= >“酒吧”)));
您还可以创建一个小型辅助模板:
函数link_to_frontend(美元的名字,美元的参数){返回sfProjectConfiguration::getActive()- >generateFrontendUrl(美元的名字,美元的参数);}
这就是所有!
如果你有许多应用程序,这是很容易重构上面的代码生成URL和其他应用程序。
请注意
在这篇文章中描述的技术是由symfony的内部使用ob娱乐下载应用:路线
任务。
这个工作许可适用创作共用署名下衍生著作3.0 Unported许可执照。