Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / src / Plugin / DMU / Converter / Functions / DrupalWriteRecord.php
1 <?php
2
3 namespace Drupal\drupalmoduleupgrader\Plugin\DMU\Converter\Functions;
4
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;
10
11 /**
12  * @Converter(
13  *  id = "drupal_write_record",
14  *  description = @Translation("Rewrites calls to drupal_write_record().")
15  * )
16  */
17 class DrupalWriteRecord extends FunctionCallModifier {
18
19   /**
20    * {@inheritdoc}
21    */
22   public function rewrite(FunctionCallNode $call, TargetInterface $target) {
23     $rewritten = ClassMethodCallNode::create('\Drupal', 'database');
24
25     $arguments = $call->getArguments();
26     if (sizeof($arguments) == 3) {
27       $key = $arguments[2] instanceof StringNode ? ArrayNode::create([ clone $arguments[2] ]) : clone $arguments[2];
28
29       return $rewritten
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');
37     }
38     else {
39       return $rewritten
40         ->appendMethodCall('insert')
41         ->appendArgument(clone $arguments[0])
42         ->appendMethodCall('fields')
43         ->appendArgument(clone $arguments[1])
44         ->appendMethodCall('execute');
45     }
46   }
47
48 }