我们正在研究一个构建器类型接口,该界面基本上构造了用于对单个对象进行CRUD管理的列表(因为我们使用ActivereCord a activereCord ==数据库记录)。

为了使列表选项的指定列值和参数灵活,我们最初将回调参数作为一个看起来像这样的数组实现:

'params' => array(
              'static' => $this->institution->id, 
              array(
                'method1' => array(
                                'method_name', 
                                array('arg1', 'arg2')
                             ), 
                             'prop1' => 'id')

该解决方案仅在尴尬等方面提出了一些明显的缺点。但是它奏效了。

根据同事的建议,我们尝试实施封闭式,但是由于同类的另一项要求,我们必须序列化类中我们刚刚发现的所有数据中的所有数据,而这些数据无法与封闭式合作。封闭的语法显然要简单得多:

'params' => array(
               $this->institution->id,
               function($obj) { return $obj->method_name($arg1, $arg2)->id; }
             )

因此,我的第一个问题是,是否有一种方法可以以可序列化的格式(如字符串)存储封闭,然后一旦班级不介绍,然后将其转换回闭合?

还是可以提供有关解决此类回调问题的更好界面的建议?

有帮助吗?

解决方案

有一篇出色而详细的文章,讲述了如何使用反思扩展封闭以完成您想要的事情: 扩展PHP 5.3序列化和反射的关闭. 。也就是说,我想知道这是否比原始解决方案不那么尴尬,因为您必须通过对象进行通过 - 实际上,它的编码略有不同,您可能最终会受到性能的打击。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top