Стиль кодирования остальных API ZF2 (верблюжий кейс или подчеркивание)

0

Я пишу код со следующим для mat в rest api.

Я думал, что валидация, выполняемая в контроллере, и уровень обслуживания заботится о написании бизнес-логики и модели, заботится о операциях с базой данных. Надеюсь, я прав.

Мое разъяснение здесь заключается в том, могу ли я отправить var_id (выделение подчеркивания) на уровень обслуживания или в виде varID (верблюжьей кейс).

Я искал много вызовов api, большинство из них - var_id, поэтому я тоже использовал себя.

Но как я могу использовать переменную здесь, потому что код рамки zend работает с верблюжьим футляром, если я назначаю переменные varID = var_id для каждой переменной, правильно ли это.

$dataSendToService = array(
    $varID = var_id,
    $varID2 = var_id2;
);

Я api как api ниже в методе create.

http://128.12.788.88/api/v1/users/72

Метод json get like this

{
    "var_id":"var_value",
    "var_id1":"var_value1"
}

В контроллере:

function create() {

    $body = $this->getRequest()->getContent();

    $data = json_decode($body); 
    $id  = $this->params('id');

    //validation
    if( !isset( $data->pat_id ) || empty( $data->pat_id ) ) {
        $resp = array(
            'status' => 'failure',
            'errorCode' => 531, 
            'errorMessage' => 'Patient ID should not be empty'
        );
        return new JsonModel($resp);
    }


    if( !isset( $data->doc_id ) || empty($data->doc_id )) {
        $resp = array(
            'status' => 'failure', 
            'errorCode' => 532, 
            'errorMessage' => 'Doctor ID should not be empty'
        );
        return new JsonModel($resp);
    }

    if( !isset( $data->apt_time ) || empty($data->apt_time )) {
        $resp = array(
            'status' => 'failure',
            'errorCode' => 533, 
            'errorMessage' => 'Appointment time should not be empty');
        return new JsonModel($resp);
    }

    if( !isset( $data->apt_subject ) || empty($data->apt_subject )) {
        $resp = array(
            'status' => 'failure', 
            'errorCode' => 534, 
            'errorMessage' => 'Appointment Subject time should not be empty');
        return new JsonModel($resp);
    }

    $sm = $this->getServiceLocator();
    $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
    $usersService = new UsersService($dbAdapter);
    $resp = $usersService->profile($data,$id);

}

В сервисе:

function create() {

    //get the data and pass it to model

}

В модели:

function create() {

    //get the data and insert in table and return the result       

}
Теги:
rest
zend-framework2

1 ответ

0

Совершенно точно использовать выделенные значения подчеркивания в ZF2 но, ZF2 верблюжьей оболочке является более распространенной практикой.

Вам определенно не нужно делать все это вручную, вы можете легко использовать фильтры для изменения ваших json переменных на верблюд-футляр:

use Zend\Filter\Word\CamelCaseToUnderscore;

...

$filter = new CamelCaseToUnderscore();
print $filter->filter('ThisIsMyContent');

И обратно, чтобы подчеркнуть выделение:

use Zend\Filter\Word\CamelCaseToDash;

...    

filter = new CamelCaseToDash();
print $filter->filter('ThisIsMyContent');

Если вы используете hydrator вы можете использовать гидратор ClassMethods ClassMethods, который может быть установлен для extract и hydrate между ними, передавая логическое значение конструктору:

underscore-separated, camel-case underscore-separated (истина) или camel-case (ложь)

use Zend\Stdlib\Hydrator\ClassMethods;

...

$boolean = true|false;
$hydrator = new ClassMethods($boolean)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню