зарезервированные слова — хорошая синонимия для & quot; списка & quot; как метод PHP?

Я создаю приложение, где клиент предоставляет $_GET['task'] который ограничен list, detail, или же editи в ответ сервер предоставит список доступных записей для всех идентификаторов, запись для $_GET['id']или форма для редактирования записи $_GET['id']соответственно.

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

Все работает хорошо, кроме list как это зарезервированное слово.

Что такое хорошая синонимия для «списка» как для обычного пользователя (так как они увидят его в URL), так и для разработчиков (поскольку они должны заставить его работать)?

0

Решение

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

В какой-то момент в вашем приложении вам понадобится немного логики, верно. Так почему бы не просто

  switch( $_GET['mode'] ){
case 'list':
do something
break;
}

На самом деле лучше использовать константу класса, для этого, как

  Class::MODE_LIST = 'list';

Кроме того, если вы действительно хотите назвать его список, вы можете использовать __call вот так.

class API {

const MODE_LIST = 'list';
const MODE_TASK = 'task';
const MODE_EDIT = 'edit';


public function __call($method, $args){
switch($method){
case self::MODE_LIST:
return $this->_list( $args );
break;
case self::MODE_TASK:

break;
case self::MODE_EDIT:

break;
default:
///error  -- do some error reporting.
}
}


protected function _list( $args ){

}


}

$API = new API();

$API->{$_GET['mode']}();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]