LINUX.ORG.RU

php и предопределенные массивы

 


0

1

я конечно понимаю что хочу странного - и это делаеться по другому
но

есть ли способ - не изменяя исходники пыха - заставить его на постоянную хранить мелкий массив/базу ?

чтоб без memcached без apcu и так далее - любой старт php - у него уже был в переменных какойто массив
(и чтоб его не надо было загружать с диска каждый раз и парсить)

грубо говоря есть несколько таблиц справочников - которые хотелось бы чтоб были просто всегда (не изменяемые)

★★
Ответ на: комментарий от fernandos

оно работает - но это не то
хотелось чтоб такой файл стартовал 1 раз при старте апача - и все переменные что он создаст - хранились и были доступны для любого другого след запроса

ae1234 ★★
() автор топика
Ответ на: комментарий от MOPKOBKA

apcu как раз через это и работает - но он в shm запихиваем сериализованные данные
а хотелось чтоб они были тупо в памяти уже массивом - без надобности парсинга

ae1234 ★★
() автор топика
Ответ на: комментарий от theNamelessOne

php модуль часть апач процесса - оно умирает после несколько тыщ обработанных запросов - но каждый запрос само собой очищает все данные у пхп

ae1234 ★★
() автор топика

может такое делает какойто из сторонних модулей для php ?

ae1234 ★★
() автор топика

А если сделать микро-формат данных и просто загружать когда надо без возможности изменять?

Ну или просто сделать в БД нужное.

NAY_GIGGER
()
Последнее исправление: NAY_GIGGER (всего исправлений: 1)
Ответ на: комментарий от ae1234

А что на счёт вообще радикально другого подхода - сменить язык?

NAY_GIGGER
()
Ответ на: комментарий от fernandos

хотелось чтоб такой файл стартовал 1 раз при старте апача - и все переменные что он создаст - хранились и были доступны для любого другого след запроса

Что значит «стартовал»? Все равно исходники остальной части скрипта разбираются, с opcache оверхед минимальный.

goingUp ★★★★★
()

написать на сишечке кастомный модуль для пыха, в котором будет этот статически объявленный в коде массив

Harald ★★★★★
()
Последнее исправление: Harald (всего исправлений: 1)
Ответ на: комментарий от NAY_GIGGER

последний раз, когда я смотрел, пых и модули к нему были на сишечке

не, теоретически конечно можно, но смысл

Harald ★★★★★
()
Ответ на: комментарий от cobold

а вы оказались правы - Opcache и прелоад в нем

ae1234 ★★
() автор топика

Нашел ! opcache.preload
позволяет при старте апача компилить какойнить файл а затем юзать классы функции и подобное из него где угодна
к сожалению просто переменные похоже не может

но если сделать например класс - и внутри предопределенный массив - то можно в скрипте нормальном создать такой класс и просто из него юзать нужный массив

тест - при загрузке базы в json на диске - 30 в секунду
при просто создание класса - и получение ссылки на массив нем - 3300 запросов в секунду

ae1234 ★★
() автор топика
Последнее исправление: ae1234 (всего исправлений: 1)

не изменяемые

db.php

<?php
return [
 'я у мамы' => 'дурачок'
]

index.php

<?php

$db = require('./db.php');

А вообще ты хочешь какую-то дичь. Сделай бочку синглтон-репозиторий через автозагрузку же.

no-such-file ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.