Как обнаружить использование smarty шаблона фреймворка? - PullRequest
0 голосов
/ 06 апреля 2010

Помимо существования Smarty.class.php (что также является спорным), как мы узнаем, что проект php использует фреймворк smarty, просто взглянув на его файловую структуру?

Ответы [ 3 ]

3 голосов
/ 06 апреля 2010

Обычно хорошо структурированные проекты имеют папку template и template_c - хотя имена можно настраивать / изменять. Дополнительно ищите файлы .tpl в этих папках.

Лучший подход, который я вижу, это поиск общих умных функций, таких как fetch / assign / display или общих умных тегов, таких как {foreach}, {assign}, {if} и т. Д.

2 голосов
/ 09 апреля 2010

Возможно, вам придется поискать шаблоны и templates_c - в одном из моих проектов они даже не в htdocs - папка smarty находится на одном уровне с htdocs. И мы назвали наш класс Smarty на основе проекта, поэтому даже поиск «new Smarty ()» не сработает.

Я думаю, что первый ответ, в котором рекомендуется поискать обычные умные функции, может быть лучшим выбором.

1 голос
/ 06 апреля 2010

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

class View
{
    protected $tpl;
    protected $tplfilename;

    public function __construct()
    {
        $this->tpl = new Smarty();

        $this->tpl->template_dir = dirname(__FILE__)."/templates"; 
        $this->tpl->compile_dir = dirname(__FILE__)."/templates_c"; 
        $this->tpl->config_dir = dirname(__FILE__)."/configs"; 
        $this->tpl->cache_dir = dirname(__FILE__)."/cache"; 
        $this->tpl->left_delimiter = "{|";
        $this->tpl->right_delimiter = "|}";

        $this->tplfilename = "default.tpl";
    }

    public function show()
    {
        $this->tpl->display($this->tplfilename);
    }
}

Вероятно, это должен быть типичный умный стиль.

...