Есть файл php в нем массив с часто используемыми словами, "Войти", "Выйти", "Регистрация" файл где то занимает около 10 кб, это нужно что бы в случае чего создать мультиязыковой ресурс, такой вопрос, если я этот массив запишу в $_SESSION что бы каждый раз не подгружать этот файл, это нормально? или 10 кб для $_SESSION это многовато? Вообще речь идет даже не о файле, а о том что бы создать отдельную таблицу в БД и туда все эти слова забить, а потом при заходе на сайт разово подгружается эта таблица, записывается в $_SESSION и все.
10 кб не много. Но хранится инфа в обычных сессионных файлах, те же операции чтения-записи в файловой системе.
Если ты готов написать надёжный код, который будет проверять, создана ли сессия, и если не создана - возьмёт из БД слова и поместит в $_SESSION, то почему бы и нет? Я бы не стал заморачиваться. Если используешь БД, то время подключения будет намного больше того времени, которое потребуется на получение массива слов. Если кешируешь страницу, то вообще смысла нет.
Если рассматривать один отдельный запрос, то в 10кб файле нет ничего страшного. А вот нужно ли эти данные дублировать для каждого отдельного посетителя — это большой вопрос! По моим наблюдениям за форумными хомячками, стоит начинающему разрабу познакомиться с сессиями, как он начинает заначивать туда всё, к чему прикоснется. Используй голову! У любого действия должны быть причины. Добавлено спустя 1 минуту 35 секунд: нам пох. честно.
Да я сам толком не знаю, что то примерно того, что набор слов будет хранится в БД, где я их смогу редактировать через админ панель, а не через файл как сейчас. Пользователь заходит, из БД я получаю набор слов записываю их в сессию и все. Единственное о чем я не подумал когда создавал эту тему это так если что я подключаю один файл, а так кучу сессионных файлов.
действительно, там есть класс для сессии и есть вариант хранения в базе, но он необязателен. я часто натыкался на примеры CI + сессия в базе, поэтому закрепилась такая ассоциация Добавлено спустя 4 минуты 5 секунд: VLK, просто подумал "а не засунуть ли мне еще немножко данных в сессию?", так чтоли? Может хотел организовать файловый кеш? Тут есть что обсудить.
Пишется сайт, планируется что он будет мультиязычным, везде где надо в шаблоне писать любые слова, "Регистрация", "Войти" и т.д. стоит метод например: Код (Text): cm::gw('enter'); и в итоге если зайдет пользователь с RU, тогда у него будет выведено (echo) "Войти", а у иноземца, будет выведено "Enter". сейчас набор этих слов хранится в файле и что бы что то дописать надо открывать этот файл и через редактор PHP дописывать, мне хотелось не через редактор, а через сам сайт, через админ панель с удобным интерфейсом, а для этого засунуть все эти слова в БД, а потом из БД в сессию ну и.. Вообщем как я понимаю глупость.
Редактор это не глупость, а очень даже здравая мысль. Вот сессия здесь реально не при чем. Надо абстрагироваться от способа хранения файл/база, придумать интерфейс и реализовать разные загрузчики по мере надобности. Редактор не должен знать о том, как именно хранится перевод. Добавлено спустя 16 минут 5 секунд: Общая схема Код (PHP): interface TranslationStorageInterface { public function load($language, $domain); public function save($language, $domain, $data); } class TranslationEditorController { private $storage; public function __construct(TranslationStorageInterface $storage) { $this->storage = $storage; //... } public function editAction() { $data = $this->storage->load($_GET['lang'], $_GET['domain']); // ... if ($_SERVER['REQUEST_METHOD'] == 'POST') { // ... помещаем что там наредактировал юзер в $data ... $this->storage->save($_GET['lang'], $_GET['domain'], $data); } $view->render('Trans/edit', $data); } // ... } ... }