Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2013, 04:52   #1
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Радость Шаблонизация данных PHP

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

Заранее очень благодарен
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 15.01.2013, 08:20   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

написать свой
ADSoft вне форума Ответить с цитированием
Старый 15.01.2013, 11:19   #3
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

Самый банальный способ
PHP код:
<?php
        
// Template.php
    
class Template {
        
        private 
$variables = array();
        private 
$template;
        private 
$template_folder;
        
        function 
__construct($template) {
            
$this->template_folder APP_PATH."/application/view/templates/";
            
$this->template $template;
        }
        
        public function 
setVar($var,$value) {
            
$this->variables[$var] = $value;
        }
        
        public function 
getHTML() {
            
extract($this->variables);
            
ob_start();
            require 
$this->template_folder.$this->template.".tpl.php";    
            
$content ob_get_clean();
            return 
$content;
        }
    }
    
?>
PHP код:
<!-- main_menu.tpl.php -->
<div id="main-menu">
    <ul>
        <?php foreach($menu_links as $link_data): ?>
            <li><a href="<?=APP_URL.$link_data['link_path']?>"><?=t($link_data['link_title'])?></a></li>
        <?php endforeach; ?>
    </ul>
</div>
PHP код:
<?php
    
// file.php
    
$menu_tpl = new Template('main_menu');
    
$menu_tpl->setVar('menu_links'get_menu_links('main_menu'));
    
$content $menu_tpl->getHTML();
    echo 
$content;
?>
Я не понимаю зачем пользоваться всякими smarty, если сам php предоставляет нормальные возможности шаблонизации. Шаблон на php выглядит совсем не хуже чем на том же smarty или подобных. Главное не переборщить и не внести в него лишний код.
buriat вне форума Ответить с цитированием
Старый 16.01.2013, 05:06   #4
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Радость

Цитата:
Сообщение от buriat Посмотреть сообщение
Самый банальный способ
PHP код:
<?php
        
// Template.php
    
class Template {
        
        private 
$variables = array();
        private 
$template;
        private 
$template_folder;
        
        function 
__construct($template) {
            
$this->template_folder APP_PATH."/application/view/templates/";
            
$this->template $template;
        }
        
        public function 
setVar($var,$value) {
            
$this->variables[$var] = $value;
        }
        
        public function 
getHTML() {
            
extract($this->variables);
            
ob_start();
            require 
$this->template_folder.$this->template.".tpl.php";    
            
$content ob_get_clean();
            return 
$content;
        }
    }
    
?>
PHP код:
<!-- main_menu.tpl.php -->
<div id="main-menu">
    <ul>
        <?php foreach($menu_links as $link_data): ?>
            <li><a href="<?=APP_URL.$link_data['link_path']?>"><?=t($link_data['link_title'])?></a></li>
        <?php endforeach; ?>
    </ul>
</div>
PHP код:
<?php
    
// file.php
    
$menu_tpl = new Template('main_menu');
    
$menu_tpl->setVar('menu_links'get_menu_links('main_menu'));
    
$content $menu_tpl->getHTML();
    echo 
$content;
?>
Я не понимаю зачем пользоваться всякими smarty, если сам php предоставляет нормальные возможности шаблонизации. Шаблон на php выглядит совсем не хуже чем на том же smarty или подобных. Главное не переборщить и не внести в него лишний код.

Подобный я написал уже давненько. Я думал есть еще какие-то методы подхода
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 16.01.2013, 17:59   #5
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию

А если юзать шаблонизатор XSLT ?
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Старый 16.01.2013, 19:57   #6
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Радость

Цитата:
Сообщение от MyXa Посмотреть сообщение
А если юзать шаблонизатор XSLT ?
Нужно попробовать, еще не пробовал
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
база данных с php chegivara PHP 1 11.09.2011 16:47
Передача данных с php в js Natysya PHP 1 26.05.2011 17:10
упорядочивание данных из БД php Dimarik PHP 3 20.08.2010 17:47
Передача данных php-скрипту mikhea PHP 8 26.06.2010 22:12