Есть ли способ сохранить вызов различных функций PHP в базе данных MySQL без риска использования eval ()? - PullRequest
1 голос
/ 01 августа 2009

Я создаю очень простую CMS для конкретного проекта, которая содержит множество функций, таких как get_menu (), get_title (), get_recent () и т. Д. Однако я хочу иметь возможность хранить шаблоны, которые будут отображаться при загрузке страницы, которые содержат указанные функции в базе данных MySQL.

Выполнение str_replace для каждой возможной функции было бы пустяком, и я понимаю, что использование eval () иногда опасно. Есть ли лучший, более эффективный способ сделать это? Я почти уверен, что это можно сделать, поскольку именно так настроены шаблоны в Textpattern.

Ответы [ 2 ]

3 голосов
/ 01 августа 2009

По той причине, которую вы упомянули, я думаю, вам лучше использовать Smarty или какой-либо другой язык шаблонов. Если вы хотите загружать шаблоны динамически, просто сохраните имена файлов.

1 голос
/ 01 августа 2009

Smarty является одним из популярных вариантов. Я рекомендую свернуть свой собственный (извините, для этого вам понадобится внешний PHP по отношению к MySQL). Некоторые предложения здесь: https://stackoverflow.com/questions/1064916/how-should-i-design-my-code/1064946#1064946

...