created mocks for testing
This commit is contained in:
68
flow.txt
Normal file
68
flow.txt
Normal file
@@ -0,0 +1,68 @@
|
||||
index.php
|
||||
web = new NetBiblio()
|
||||
parent::__construct(self::$version)
|
||||
web->Run() <=> parent->Run()
|
||||
| Logger::start(version) // initialize static log array
|
||||
| new Renderer::__construct()
|
||||
| |---ob_start()
|
||||
| $data = []
|
||||
| try {
|
||||
| $result = this->Call() //1) start session,
|
||||
| | //2) call webservice method and params passed in
|
||||
| | // http request after doing a few checks
|
||||
| | //3) log the request
|
||||
| | session_save_path(Configuration::get(session.save_path))
|
||||
| | session_start()
|
||||
| | $paras = GET or POST
|
||||
| | if empty(params) throw NoArguments
|
||||
| | if !isset(params["func"]) throw MissingMethod
|
||||
| | this->func = params["func"]
|
||||
| | unset(params["func"])
|
||||
| | Logger::info([
|
||||
| | "func" => this->func . '(' . implode(',' params) . ')'
|
||||
| | ]) // add func -> string to Logger::data
|
||||
| | if !is_callable([this, this->func]) throw BadMethod
|
||||
| | // descriptive wrapper for NetBiblio method
|
||||
| | $rm = new \ReflectionMethod(this, this->func)
|
||||
| | // check whether provided params match required
|
||||
| | //TODO here is where the magic happens !!!!!!!!!!!!!!!!!!!!
|
||||
| |---return call_user_func_array([this, this->func], params)
|
||||
| $data['result'][this->func] = $result
|
||||
| } catch (WebException $e) {
|
||||
| $data['error'] = ['code' => $e->getCode(), ... ]
|
||||
| $this->status = 400
|
||||
| Logger::info($e->getName(), 'error') // add to log
|
||||
| } catch (\Exception $e) {
|
||||
| $data['failure'] = ['code' => $e->getCode(), 'reason' ...]
|
||||
| Logger::info($e->getMessage, 'error')
|
||||
| }
|
||||
| Logger::stop(['status' => $this->status])
|
||||
| $renderer->render($this->status, $data) // default status:200
|
||||
| | header(sprintf(
|
||||
| | 'HTTP/1.0 %s %s',
|
||||
| | $status, self::$statusMessages[$status]
|
||||
| | ))
|
||||
| | header('Access-Control-Allow-Origin: *')
|
||||
| | ob_clean()
|
||||
| | flush()
|
||||
| | $formatter = Formatter::getFormatter();
|
||||
| | | self::loadFormatters() // call init on all formatters in dir
|
||||
| | | | foreach($files as f) {
|
||||
| | | | //infer class name from file name
|
||||
| | | | //and if it is not this current class
|
||||
| | | | //call init on the class
|
||||
| | | | //Ex:
|
||||
| | | | Json::init()
|
||||
| | | | | self::registerFormats([ //self parent
|
||||
| | | | | 'application/json',
|
||||
| | | | | 'application/x-json',
|
||||
| | | | | ]);
|
||||
| | | | | | forach($formats as $f) { // self
|
||||
| | | | | | self::$formats[$f] = get_called_class()
|
||||
| | | | |---|---}
|
||||
| | | | }
|
||||
| | | $format = self::getFormatFromHeader();
|
||||
| | | |---return 'BSR\Lib\Formatter\Json';
|
||||
| | |---return new $format()
|
||||
| | $formatter->render($data)
|
||||
|---|---|---echo json_encode($data)
|
||||
Reference in New Issue
Block a user