Ga naar inhoud

Blog

TextMate - replace associative Array to compact

Assign variables to a Laravel Blade template using an associative Array can be more code efficient when using PHP's compact function. Therefor i needed a script that allows me to manually replace the code into this shorter format:

Before

return View::make('account.edit', [ 'oUser' => $oUser, 'sTitle' => $sTitle, ]);

After

return View::make('account.edit', compact( 'oUser', 'sTitle' ));
  • In TextMate go to Bundles -> *Edit Bundles... *
  • Press + N
  • Create Bundle
  • Repeat, and create Command
  • Assign a Key Equivalant for quick access (optional)
  • copy-paste the code below:
#!/usr/bin/php <?php $a = explode(PHP_EOL, file_get_contents("php://stdin")); $c = count($a); $i = 1; foreach ($a as $s) { if ($i == 1) { echo str_replace("[", "compact(", $s)."\n"; } else if ($i == $c) { echo str_replace("])", "))", $s); } else { $pos1 = strpos($s, "'"); $pos2 = strpos($s, "'", $pos1 + strlen("'")); echo substr($s, 0, $pos2)."'"; if ($i < ($c - 1)) { echo ","; } echo "\n"; } ++$i; } ?>
Urls
Zoeken
Een moment geduld a.u.b....