推荐的解决方案用于创建链接多种方法和/或属性的回调?
题
我们正在研究一个构建器类型接口,该界面基本上构造了用于对单个对象进行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序列化和反射的关闭. 。也就是说,我想知道这是否比原始解决方案不那么尴尬,因为您必须通过对象进行通过 - 实际上,它的编码略有不同,您可能最终会受到性能的打击。
不隶属于 StackOverflow