Я искал способ использовать оператор "include", используя файл fifo (именованный канал), созданный с помощью posix_mkfifo. Поскольку мои ожидания были высоки, я очень расстроился, увидев, что страница заблокирована, ожидая действия, которое, я уверен, никогда не произойдет.
Итак ... моя логика продиктовала, что в качестве "include" обязательно используется какая-то функция "fopen" -семейства, и fifo можно открыть таким образом, единственное, что мне нужно было сделать: создать один, а затем написать в нем , возможно, сохранить ресурс живым, пока он не будет включен, включить файл, закрыть обработчик, удалить файл. Но, конечно, ничего подобного не было. Я полагаю, что include открывает файл блокирующим образом, и это является причиной моей проблемы.
Поработав с fifos в c, я заметил, что в неблокирующем открытом методе информация в fifo сохраняется до тех пор, пока читатель не решит ее прочитать. Я надеялся на такое же поведение.
Несмотря на то, что я пытался открыть другую страницу для записи в тот же fifo, чтобы читатель мог продолжить, это тоже должно было произойти. Кроме того, не только страница больше не отвечала, но и не могла ответить на прерывание пользователя, а также потому, что мои сеансы были заблокированы на несколько минут, так как session_start () сообщит мне, что не может использоваться двумя процессами в один раз (я могу ошибаться в сообщении об ошибке, хорошо помню, и я удалил тестовые файлы.)
У меня вопрос, есть ли способ достичь этого эффекта: включая использование fifo.
В конце концов,
Отвечая на все вопросы о том, почему, черт возьми, я это делаю, я скажу, что моя система ставит себя между реальным кодом и его обработкой с целью его динамического изменения по необходимости, полностью обратимым. И для этого ему нужно прочитать исходный файл, проверить код, изменить его, когда он кажется, а затем записать его в файл, в новую «корневую» папку, сохранить иерархию папок и файлов и затем «включить» файл ,
На данный момент я заменил использование fifo на использование реальных файлов, но мне нужно отфильтровать много кода. И eval, хотя и чрезмерно используемый в моих функциях, не является решением, так как он не сохраняет текущий каталог и имя скрипта, или что-то специфическое для реального файла, кроме того, что он очень чувствителен ко многим вещам, особенно с относительными путями, и странное использование синтаксиса PHP. Так что я все еще застрял с записью в файлах.
Из-за того, что система является ужасным потребителем времени и плохим менеджером ресурсов, моя первоначальная идея заключалась в том, чтобы писать в пятерках, которые более легки, сохраняются в памяти, изменчивы и действительно созданы для единственной цели IPC.
С уважением,
Пол