Один или несколько файлов?

Рейтинг: 1Ответов: 1Опубликовано: 27.03.2015

Ребят, как лучше будет:

  • Использовать 1 php файл для ajax (для всех методов)
  • Или не сколько. Каждый метод - отдельный php файл

Например:

В первом случае я буду делать все ajax запросы на www.example.com/ajax.php?m=showMore или www.example.com/ajax.php?m=addComment,

а во втором случае www.example.com/ajax/showMore.php или www.example.com/ajax/addComment.php

Первый для меня удобнее. В AJAX.php я принимаю основные, обязательные get-параметры. Там же их чекаю, а потом уже подгружаю метод (require_once). Не нагрузит этот способ систему?

А во втором мне придется писать один и тот же код в десятках файлов...


ИЛИ в этом вообще разницы нет?

Ответы

▲ 1Принят

Мне лично нравится второй способ - url короче. Но на самом деле все можно сделать красиво на apache/nginx, которые будут преобразовывать один тип урлов в другой, более того, даже поддерживать оба типа и фронтенд часть даже не будет знать, какой сейчас бекенд (то есть php или там вообще все на ассемблере переписано)

Оценивать нагрузку, не видя кода - сложно, но если считать, что код эквивалентный, то, скорее всего, разницы никакой не будет, два файла или пять. Тут я придерживаюсь стратегии, что на одну сущность должна быть одна сущность. Если рассчитывать, что управление комментариями (добавление/удаление/редактирование) - одна сущность, то тогда нужно в один файл. Если же это три разные сущности - тогда и три разных файла. Как узнать, как правильно? Очень просто. Если в случае с одним файлом получается, что его размер тысячи строк, а функции по 200-300 строк - значит нужно делить. Если всего кода 20 строк, то делить нет смысла.

А во втором мне придется писать один и тот же код в десятках файлов...

Для начала напишите два типичных "действия", посмотрите, сколько кода нужно сдублировать. Создайте новый файл "библиотеку" и аккуратно вынесите туда дубликаты. Начните писать третье действие, пытайтесь активно использовать библиотеку. Если получается неудобно - переписывайте библиотеку. Через какое то время код будет маленьким и красивым.