2010-06-26 3 views
2

Есть ли способ получить функции __callStatic или аналогичные функции в PHP 5.2?PHP вызов статического обходного пути для PHP 5.2

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

Class::find_by_col2_or_col4(); 

Я уже сделал это в PHP 5.3 и она прекрасно работает, но я пытаюсь сделать то же самое для тех, кто использует PHP 5.2.

Или есть ли другой способ получить имя статического метода и аргументов с помощью PHP 5.2?

Спасибо.

ответ

0

Не в статическом состоянии. Технически говоря, Rails, CakePHP и т. Д. Не ставят эти типы динамических методов статически. Не вступать в философские дебаты, но если требуется обратная совместимость, вы можете перенести свою парадигму и использовать __call(). В этом случае вы должны позвонить с таким объектом, как ModelObject->find_by_col2_or_col4. Конечно, я понимаю, что это, вероятно, не то, что вы хотели услышать.

Это PHP, возможно, существует какой-то способ взломать его, но я не верю, что существует собственный метод.

+0

Thanks Jason, Я искал способ сделать это для PHP 5.2, но не мог найти никаких хаков или обходных путей. Также не удается найти хаки для проверки того, какие статические функции вызывают. В любом случае, функциональность, которая полагается на __callStatic, требуется только для модулей ORM форм и базы данных, поэтому потребность не является платформой. Я думаю, для пользователей, которые не могут переключиться на 5.3, им придется работать с совместимой с 5.2 функциональностью. Они все равно смогут делать все, но не самыми крутыми способами, например. База данных ORM. Cheers. –

+0

Удачи человек. Похоже, что вы делаете довольно аккуратно и, вероятно, стоите обновления. –

Смежные вопросы