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

if ( empty( 
$_POST['requests'] ) || ! is_string( $_POST['requests'] ) ) {
    
header( 'Content-type: application/json', true, 500 );
    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', true, 200 );
echo 
json_encode( $responses );
Онлайн: 1
Реклама