예제 #1
0
};
$update = $failure = [];
foreach ($get_dao_dump_func($file) as $arr) {
    $ref = new \ReflectionClass($arr['model']);
    $inst = $ref->newInstance();
    if (!array_key_exists($ref->getName(), $failure)) {
        try {
            foreach ($inst->props() as $k => $v) {
                if (array_key_exists($k, $arr['data'])) {
                    if ($inst->prop_anon($k, 'cond') == null && $inst->prop_anon($k, 'extra', false) === false) {
                        $inst->prop_anon($k, 'auto_now', false, true);
                        call_user_func_array([$inst, $k], [$arr['data'][$k]]);
                    }
                }
            }
            $inst->save();
            if (!array_key_exists($ref->getName(), $update)) {
                $update[$ref->getName()] = 0;
            }
            $update[$ref->getName()]++;
        } catch (\ebi\exception\BadMethodCallException $e) {
            $failure[$ref->getName()] = true;
        }
    }
}
foreach ($update as $class_name => $cnt) {
    \cmdman\Std::println_info(' Import ' . $class_name . ' (' . $cnt . ')');
}
foreach (array_keys($failure) as $class_name) {
    \cmdman\Std::println_danger(' Failure ' . $class_name);
}
예제 #2
0
파일: check.php 프로젝트: tokushima/ebi
        $failure['db']++;
        \cmdman\Std::println_danger(' ' . $class_name . ' Failure, ' . $e->getMessage());
    } catch (\Exception $e) {
        $failure['db']++;
        \cmdman\Std::println_warning(' ' . $class_name . ' Failure, ' . $e->getMessage());
    }
}
\cmdman\Std::println();
\cmdman\Std::println_info('Entry:');
foreach (\ebi\Util::ls(getcwd()) as $f) {
    $src = file_get_contents($f->getPathname());
    if (strpos($src, '\\ebi\\Flow::app(') !== false) {
        $map = \ebi\Flow::get_map($f->getPathname());
        $entry = str_replace(getcwd(), '', $f->getPathname());
        foreach ($map['patterns'] as $p) {
            if (array_key_exists('action', $p) && is_string($p['action'])) {
                try {
                    list($c, $m) = explode('::', $p['action']);
                    $mr = new \ReflectionMethod(\ebi\Util::get_class_name($c), $m);
                    \cmdman\Std::println_success($entry . ' ' . $p['name'] . ' OK');
                } catch (\ReflectionException $e) {
                    $failure['entry']++;
                    \cmdman\Std::println_danger($entry . ' ' . $p['name'] . ' Failure');
                }
            }
        }
    }
}
\cmdman\Std::println();
\cmdman\Std::println_danger('Failure: ' . (!empty($failure['db']) ? 'Database(' . $failure['db'] . ') ' : '') . (!empty($failure['entry']) ? 'Entry(' . $failure['entry'] . ') ' : ''));