I have a mapper class, OrganizationMapper
that saves data to multiple tables with the save
method. The save
method looks like this:
public function save(OrganizationInterface $organization) {
$action = new Insert('TABLE NAME');
$action->values([<SOME VALUES>]);
$sql = new Sql($this->dbAdapter);
$stmt = $sql->prepareStatementForSqlObject($action);
$result = $stmt->execute();
$action1 = new Insert('OTHER TABLE NAME');
$action1->values([OTHER VALUES]);
$sql1 = new Sql($this->dbAdapter);
$stmt1 = $sql1->prepareStatementForSqlObject($action1);
$result1 = $stmt1->execute();
...
}
There are a couple more cycles of $action#
, $sql#
, $stmt#
, $result#
.
How can I avoid these repetitive cycles?
To avoid duplicate code create an additional method, let's call it insertIntoTable()
. This method will be an auxiliary function for inserting data into a certain table:
public function save(OrganizationInterface $organization) {
$result = $this->insertIntoTable('TABLE NAME', $values);
$result1 = $this->insertIntoTable('OTHER TABLE NAME', $values1);
...
}
private function insertIntoTable($tableName = "", $values) {
$action = new Insert($tableName);
$action->values($values);
$sql = new Sql($this->dbAdapter);
$stmt = $sql->prepareStatementForSqlObject($action);
$result = $stmt->execute();
return $result;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.