-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix.php
More file actions
31 lines (31 loc) · 1.15 KB
/
fix.php
File metadata and controls
31 lines (31 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$file = file_get_contents($argv[1]);
$settersStart = strpos($file, '$setters =');
if (!$settersStart){
return;
}
$settersEnd = strpos($file, ';', $settersStart);
$setters = substr($file, $settersStart + strlen('$setters = '), $settersEnd - $settersStart - strlen('$setters = '));
$settersParsed = eval('return ' . $setters . ';');
foreach ($settersParsed as $key => $val) {
if (strpos($key, '_') === 0) {
$file = str_replace("'$key' => '$val'", "'$key' => '_$val'", $file);
$orig = 'public function ' . $val . '($' . $key . ')';
$new = 'public function _' . $val . '($' . $key . ')';
$file = str_replace($orig, $new, $file);
// getter
$val = preg_replace("/^(set)/", "get", $val);
$file = str_replace("'$key' => '$val'", "'$key' => '_$val'", $file);
$orig = 'public function ' . $val . '()
{
return $this->container[\'' . $key . '\'];';
$new = 'public function _' . $val . '()
{
return $this->container[\'' . $key . '\'];';
$file = str_replace($orig, $new, $file);
}
}
file_put_contents($argv[1], $file);
//echo $file;
//echo $file;
//$x = eval($setters);