Если я создаю «ajaxified» пользовательский интерфейс со многими вызовами ajax для создания, переименования, удаления различных вещей на моей странице – как лучше всего обрабатывать все эти «коды за» ajax-страницами? Сначала у меня был другой файл .php для каждого вызова (например, Candy_Rename.php, Candy_Delete.php). Но я обнаружил, что моя база кода становится подавляющей с количеством созданных файлов.
Теперь я отправляю параметр «command» с моим запросом, а затем я управляю всеми вещами, связанными с Candy, в одном файле «ajax_Candy.php». Так, например, мой запрос jQuery будет:
$.get('ajax_Candy.asp', { command: 'insert', candyName: 'Jolly Ranchers' }, function (response) { alert(response.candyId); }
Это хороший способ сделать это?
Редактировать: все ответы были отличными и говорили почти то же самое. Я должен был выбрать один, и я подумал, что упоминание о безопасности важно для всех, кто путешествует по этому пути – так что вы идете. Я использую оператор switch как один из упомянутых пользователей.
Предполагая, что вы работаете с проблемами безопасности на стороне сервера, я не вижу проблемы с вашим методом. Файл PHP должен удостовериться, что запросчик имеет привилегию выполнить команду. Вы не хотите, чтобы пользователь удалял все ваши записи …
Конечно, то, что вы сейчас делаете, намного лучше. Просто один файл, который контролирует все действия. Обычно я использую оператор switch для команды, чтобы сохранить все красивое и чистое.
switch($_GET[command) { case 'insert' : do insert stuff; break; case 'delete' : do delete stuff; break; }
Да, это лучше. Нет ничего плохого в большом количестве файлов, однако вы должны стремиться поддерживать взаимосвязанную функциональность вместе – высокая сплоченность.
Но не переходите за борт, и пусть один файл php обрабатывает больше, чем просто Candy. Если вы начнете искать дублирование кода среди ваших php-файлов, начните подклассу.