目前我使用DBAL 从db检索记录,然后我转换相应对象中的每一行。每个对象都附加到一个数组,最后它是converted to json with json() function。 示例代码:
class MyController extends BaseController {
public function getById(Request $request, Application $app, $id) {
$this->app = $app;
$sql = "SELECT * FROM table ...";
$stmt = $app['db']->prepare($sql);
$stmt->execute();
$obj = $stmt->fetchAll(\PDO::FETCH_ASSOC);
return $app->json($this->convert($obj));
}
public function convert($resultset) {
$result = array();
foreach ($resultset as $key => $row) {
$myObj = new MyObj();
$myObj->setId($row['id']);
// and so on
}
return $result;
}
}
这种序列化方法可以更快地修改吗?假设我必须发送一个REST客户端十万个对象,是否有a sort of streming mode like for files所以我可以避免在临时数组中缓冲所有结果? 感谢
答案 0 :(得分:2)
如果您的类属性映射到数据库中的列名,则可以使用Mat matrix;
string nodeName = "sample_matrix";
using (CvFileStorage fs = new CvFileStorage(xmlfile, null, FileStorageMode.Write))
{
fs.Write(nodeName, matrix.ToCvMat());
fs.StartNextStream();
}
直接获取对象。这不会给你任何流媒体,但它将跳过整个转换步骤:
PDO::FETCH_CLASS