Можно ли выгрузить файл из памяти, загруженный через require?

Anghram

Новичок
Обработчик тега - это "класс" (читай набор функций), в котором описано несколько функций, в том числе и с одинаковыми именами.

Я так понял, что это решить можно только с помощью классов.
 

FractalizeR

Новичок
Вы невнимательно прочитали. В первом примере, который рассмотрен подробно, обработчиком тега выступает просто функция с уникальным в пределах проекта именем, которая объявлена внутри файла.
Так тоже можно решить задачу. Но это решение менее красивое.
 

Anghram

Новичок
Сорри, тогда я вас не понял. Что именно будет включать в себя эта функция?
 

FractalizeR

Новичок
Ну.... логику обработки тега. Я правильно понимаю, что вы сначала парсите текст на теги, а потом для каждого тега вызываете его обработчик? Вот эта функция и подразумевалась как обработчик тега.
 

Anghram

Новичок
Ааа, сплошные непонятки :)

Есть ядро, которое обрабатывает стандартные теги: "1", "2", "3". Все.

Подключаемый модуль не должен никаким образом зависеть от ядра и его версии. Все, что касается модуля - лежит в модуле.
Добавил новый тег "4". Обработчик его тега лежит в файле модуля.

Так? :)
 

FractalizeR

Новичок
Да, так. А что?

Послушайте, может вы мне пример приведете текста вашего и на какие теги и каким образом он конкретно парсится?
 

bgm

 
Anghram

Из всего прочитанного вообще непонятно зачем в каждом файле нужна функция myFunction, или вообще обёртка кода в функцию?
 

Anghram

Новичок
Попросил стороннего эксперта прочитать этот топик, чтобы он объяснил, почему меня не понимают :) Отвечаю на первый его вопрос:

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

bgm

 
Anghram

Ну так зачем названия функций одинаковые-то? Что мешает их, названия, делать разными? :)
 

Anghram

Новичок
1. Неудобно/некрасиво. Будь то, например, ф-я install для активации модуля. Неудобно же, если будет installModuleName в каждом модуле.
2. Лишний код в ядре.
 

FractalizeR

Новичок
Автор оригинала: Anghram
Попросил стороннего эксперта прочитать этот топик, чтобы он объяснил, почему меня не понимают :) Отвечаю на первый его вопрос:

В этих разных модулях-файлах лишь названия функций одинаковые, но действия они выполняют разные.
Интересно, а какой был вопрос эксперта?
 

Anghram

Новичок
Gas
имхо это уже перебор в том смысле, что все легко релизуется с помощью классов.

Спасибо всем за помощь! Извините, что так нечетко выразил задачу, что потребовало от вас излишнего времени на вникание в суть вопроса :)

-~{}~ 16.01.08 22:15:

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

Anghram

Новичок
Ну напиши алгоритм вызова функций с разными именами в цикле :)
 

FractalizeR

Новичок
Автор оригинала: Anghram

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

Разве вы не видите, что мы не понимаем друг друга? Я вас поэтому и просил привести пример вашей задачи со всеми подробностями. А до тех пор четкого ответа вы вряд ли получите.

Ну напиши алгоритм вызова функций с разными именами в цикле
PHP:
function parseText($text) {
  while ($currentTag = getNextTag() ) {
  if(!in_array($currentTag, $tagHandlers))
     die('No tag handler for tag '.$currentTag);
  ${$tagHandlers[$currentTag]}($param); //вызываем  обработчик текущего тега
}
}
Ну написал. ${$tagHandlers[$currentTag]}($param); - вызов функции, которого вы, похоже, не поняли. В цикле вызывается? В цикле. Дальше-то что?
 
Сверху