3 namespace Drupal\drupalmoduleupgrader\Plugin\DMU\Converter\Functions;
5 use Drupal\drupalmoduleupgrader\TargetInterface;
6 use Pharborist\Functions\FunctionCallNode;
7 use Pharborist\Objects\ClassMethodCallNode;
8 use Pharborist\Types\ArrayNode;
9 use Pharborist\Types\StringNode;
13 * id = "drupal_write_record",
14 * description = @Translation("Rewrites calls to drupal_write_record().")
17 class DrupalWriteRecord extends FunctionCallModifier {
22 public function rewrite(FunctionCallNode $call, TargetInterface $target) {
23 $rewritten = ClassMethodCallNode::create('\Drupal', 'database');
25 $arguments = $call->getArguments();
26 if (sizeof($arguments) == 3) {
27 $key = $arguments[2] instanceof StringNode ? ArrayNode::create([ clone $arguments[2] ]) : clone $arguments[2];
30 ->appendMethodCall('merge')
31 ->appendArgument(clone $arguments[0])
32 ->appendMethodCall('fields')
33 ->appendArgument(clone $arguments[1])
34 ->appendMethodCall('key')
35 ->appendArgument($key)
36 ->appendMethodCall('execute');
40 ->appendMethodCall('insert')
41 ->appendArgument(clone $arguments[0])
42 ->appendMethodCall('fields')
43 ->appendArgument(clone $arguments[1])
44 ->appendMethodCall('execute');