Creating api model traits - Kaoschuks/php-angularJS GitHub Wiki

*** Need To Know **

*** Creating Traits *** e.g

#!php

Trait Test
{
    use DBManager;
    static $map = array(),
                   $response;

    final static function init()
    {
        $key = explode('/', $_REQUEST['controller']);
        unset($key[0]);
        $count = count($key);
        DBManager::connect();
        switch($_SERVER['REQUEST_METHOD'])
        {
            case "DELETE":
            {
                if($count !== 2)
                {
                    self::$response = 'Bad request';
                }
                DBManager::$data[$key[1]] = str_replace("-", " ", $key[2]);
                DBManager::$key = str_replace("-", " ", $key[1]);
                self::$response = (self::$response !== 'Bad request') 
                                    ? Response::json(200, DBManager::Delete())
                                    : self::$response;
                break;
            }
            case "POST":
            {
                DBManager::$data = mapping($_POST, Manager::$map);
                DBManager::$data = $_POST;
                self::$response = (DBManager::Add() === 'Inserted') 
                                    ? Response::json(200, " inserted") 
                                    : Response::json(200, " not inserted") ;
                break;
            }
            case "PUT":
            {
                parse_str(file_get_contents("php://input"), $GLOBALS['PUT']);
                $GLOBALS['PUT'] = mapping($GLOBALS['PUT'], Manager::$map);
                if($count !== 2)
                {
                    self::$response = 'Bad request';
                }
                @ DBManager::$data[$key[1]] = @ str_replace("-", " ", $key[2]);
                @ DBManager::$key[0] = @ str_replace("-", " ", $key[1]);
                self::$response = (self::$response !== 'Bad request') 
                                    ? Response::json(200, DBManager::Update())
                                    : Response::json(400, self::$response);
                break;
            }
            case "GET":
            {
                DBManager::$key = null;
                if($count % 2 == 0)
                {
                    foreach($key as $index => $values)
                    {
                        if($index % 2 === 0)
                        {
                            DBManager::$data[@ $key[$index-1]] = str_replace("-", " ", $values);
                        }elseif($index % 2 !== 0){
                            DBManager::$key[] = str_replace("-", " ", $values);
                        }
                    }
                }
                elseif($count % 2 != 0 && $count < 4 && $count > 1)
                {
                    DBManager::$key[0] = 0;
                    DBManager::$key[1] = 1;
                    DBManager::$data[0] = $key[2];
                    DBManager::$data[1] = str_replace("-", " ", $key[3]);
                    DBManager::$cat = str_replace("-", " ", $key[1]);
                }
                self::$response = (self::$response !== 'Bad request') 
                                    ? Response::json(200, DBManager::Read())
                                    : Response::json(400, self::$response);
                break;
            }
        }
        DBManager::disconnect();
        return self::$response;
    }
    
    final static function Search()
    {
        DBManager::connect();
        $response = Response::json(200, DBManager::Search());
        DBManager::disconnect();
        return $response;
    }
}