Вход Регистрация
Файл: DESURE-dcms-f12de01ac63e/sys/api.php
Строк: 47
<?php
include 'inc/start.php';

if ( empty( 
$_POST['requests'] ) || ! is_string$_POST['requests'] ) ) {
    
header'Content-type: application/json'true500 );
    exit;
}

$requests  json_decode$_POST['requests'], true );
$responses = array();

foreach ( 
$requests AS $key => $request_param ) {
    
$response $responses$key ] = new api_response();
    try {
        
$request = new api_request$request_param );

        
$module $request->module;
        
$method $request->method;

        
// проверяем, что необходимый модуль (класс) существует
        
if ( ! class_exists$module ) ) {
            throw new 
Exception'api_controller "' $module '" not found' );
        }

        
// проверяем, что класс реализует интерфейс api_controller
        
if ( ! in_array'api_controller'class_implements$module ) ) ) {
            throw new 
Exception'Class "' $module '" does not implement interface "api_controller"' );
        }

        
$reflection = new ReflectionClass$module );

        
// проверяем, что у класса имеется необходимый метод
        
$reflection->getMethod$method );
        
$response->data call_user_func( array( $module$method ), $request->data );
    } catch ( 
ApiException $e ) {
        
$response->error $e;
    } catch ( 
Exception $e ) {
        
$response->error $e->getMessage();
    }
}

header'Content-type: application/json'true200 );
echo 
json_encode$responses );
Онлайн: 2
Реклама