Большой сеанс PHP замедляет работу веб-приложения

У меня есть веб-приложение, в котором сложные разрешения определяют, имеет ли пользователь доступ к каждому из тысяч различных файлов. Пользователь может видеть все файлы, но есть индикатор открытия файлов, к которым у него есть доступ.Пользователь имеет доступ к файлу, если кто-то другой в его организации имеет доступ к нему или если кто-то, с кем он работает, имеет общий доступ к этому файлу.

Прямо сейчас у меня есть сложная функция PHP, которая генерирует большой сеанс PHP, создавая массивы файлов, к которым пользователь имеет доступ, либо в своей организации, либо в их совместной работе, и объединяя эти массивы доступа. Когда эти файлы отображаются пользователю, PHP проверяет этот массив, чтобы узнать, есть ли у них доступ, и, если они есть, добавляет кнопку для открытия файла. Я делаю это таким образом, потому что выполнение запроса на проверку доступа для каждого отдельного файла в конечном итоге занимало слишком много времени при отображении длинных списков файлов, а PHP in_array () был значительно быстрее.

Проблема в том, что ...

Сеанс php стал настолько большим, что кажется, что он замедляет сканирование простых функций веб-сайта, и мне нужно придумать новый способ сделать это.

У меня такой вопрос ...

Как лучше всего заменить сеансы PHP для хранения прав доступа к файлам и расположения файлов для тысяч файлов, к которым пользователь имеет доступ, чтобы при отображении списков файлов PHP может быстро получить эту информацию без необходимости выполнять запрос для каждого отдельного файла?

8
задан Jared Farrish 24 September 2011 в 20:38
поделиться