使用 Symfony2 并试图找出如何最好地整合供应商库。使用路由配置调用供应商库方法非常容易:use
适当的namespace
,生成类名,要调用的方法,以及来自几个路径组件和查询变量的参数,瞧,即时集成。
不过,我在使用表格时遇到了麻烦。我的目标似乎应该很容易。我想通过供应商类在 Symfony2 中制作表格。作为一个具体示例,请考虑google-api-php-client。看起来->createForm()
效果最好,因为它很好地连接到 ORM 和验证。但是,它依赖于一个MyBundle\Form\ThingType
文件和类。要创建这个类,我需要我的包中的一个实体。我不能(或无法弄清楚如何)只使用供应商库中现有的“实体”。当 API 术语中已经存在“模型”时,在 Symfony 命名法中创建“实体”似乎不灵活且非常不干燥
我开始工作的另一种方法是使用
$formBuilder = $this->createFormBuilder(new GoogleApi\Contrib\Event);
然后
foreach(get_object_vars($event) as $prop) { $formBuilder->add($prop); }
但这并没有利用 API 文档和内置验证工具之间看似现成的桥梁,这也意味着必须将每个单独的数据类型声明为单独的或数组来决定是否包含类的集合-based 表单或单个基于类的表单。
简而言之,我想使用 API 中可用的属性和 dataType 信息,如有必要,还可以使用像这样的资源表示来创建一个简单的函数(如我的调用函数),用于为类创建嵌套的、自我验证的表单在谷歌 API 中。我想在不创建一堆“实体”和“表单类型”的情况下实现这一点,这些“实体”和“表单类型”只是重写了库中已经编写的内容。