Вы не зашли.
Главная » PHP » Шаблонизаторы
#1. Morgan Off (10)
Участник
2010.08.01 01:01
всем привет, давно тут не был.
Решил разбавить залежавшийся мозг новой информацией.
// на говновапе некропостят
Какие сейчас популярные, и практичные шаблонизаторы?
Используете ли свои наработки?
Если да, то, по каким причинам понадобилось писать под себя?
Мир MVC Для меня пока нов, но хочу попробовать использовать его в своих проектах
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#2. ByVlad Off (1)
Участник
2010.08.01 09:09
Поставил smarty - 0.06 - генерация пустой страницы - выбросил нафиг.
Поставил xtemplate - тормознутый и не удобный.
Поставил twig - нормальной документации нету.
Написал свой smile, так сказать нативный шаблонизатор, обычные шаблоны с <?php ?> вставками, мне не понравилось, лучше использовать альтернативный синтаксис PHP.
#3. Morgan Off (10)
Участник
2010.08.01 09:09
"нативный" что значит?
Альтернативный синтаксис?
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#4. Fuelen Off (5)
Участник
2010.08.01 10:10
#3, нативный - native - родной.
Ну альтернативный тоже как родной, так что.... smile
Отредактировано Fuelen (2010.08.01 10:10)
на хую вас вертів
#5. Morgan Off (10)
Участник
2010.08.01 21:09
Fuelen написал:
#3, нативный - native - родной.
Ну альтернативный тоже как родной, так что.... smile
А ты чем пользуешься?
Да, и, Gemorroj, а ты чем?
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#6. Fuelen Off (5)
Участник
2010.08.02 10:10
5, пэхэпэшным синтаксисом пока что))
Вот здесь примеры аццких шаблонизаторов http://visavi.net/forum/topic.php?tid=12017
Добавлено спустя   3 минуты  6 секунд:
http://phpcodes.ru/code112.html вот моя наброска
на хую вас вертів
#7. Gemorroj Off (107)
Administrator
2010.08.02 10:10
Когда как. Если шаблонизатором, то Smarty. Не потому что он такой крутой, просто по привычке)
#8. Morgan Off (10)
Участник
2010.08.04 17:05
а велосипедами пользуется кто-нибудь?
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#9. Gemorroj Off (107)
Administrator
2010.08.04 21:09
Код:
span style="color: #0000BB"><?php/** * @author Gemorroj * @copyright 2010 */class DB_MySQL{ /** * Объект Bootstrap */ public $Bootstrap; /** * Ресурс соединения с БД */ private $_link; /** * Конструктор * * @param object $Bootstrap */ public function __construct (Bootstrap $Bootstrap) { $this->Bootstrap = $Bootstrap; } /** * Соединяемся с БД * * @param string $host * @param string $user * @param string $pass * @param string $db */ public function connect ($host, $user, $pass, $db) { $this->_link = mysql_connect($host, $user, $pass) or die('Error connect to DB'); mysql_select_db($db, $this->_link); mysql_unbuffered_query('SET NAMES `utf8`', $this->_link); } /** * Экранирование * * @param string $str * @return string */ public function escape ($str) { return mysql_real_escape_string($str, $this->_link); } /** * Экранирование таблиц * * @param string $str * @return string */ public function escapeTable ($str) { return str_replace('`', '``', $str); } /** * Экранирование для оператора LIKE * * @param string $str * @return string */ public function escapeLike ($str) { return str_replace(array('%', '_'), array('\%', '\_'), mysql_real_escape_string($str, $this->_link)); } /** * Старт транзакци * * @return bool */ public function transactionStart () { return (bool)$this->query('START TRANSACTION;'); } /** * Коммит транзакци * * @return bool */ public function transactionCommit () { return (bool)$this->query('COMMIT;'); } /** * Роллбэк транзакци * * @return bool */ public function transactionRollback () { return (bool)$this->query('ROLLBACK;'); } /** * ID вставленной строки * * @return int */ public function insertId () { return mysql_insert_id($this->_link); } /** * Текст ошибки * * @return string */ public function error () { return mysql_error($this->_link); } /** * Запрос * * @param string $sql * @return resource */ public function query ($sql) { return mysql_query($sql, $this->_link); } /** * затронутые строки после INSERT, UPDATE, DELETE и т.д. * * @return int */ public function affectedRows () { return mysql_affected_rows($this->_link); } /** * затронутые строки после SELECT * * @param resource $res * @return int */ public function numRows ($res) { return mysql_num_rows($res); } /** * Результат запроса * * @param resource $res * @param int $row * @param mixed $field * @return string */ public function result ($res, $row = 0, $field = 0) { return @mysql_result($res, $row, $field); } /** * Результат запроса с одной записью * * @param resource $res * @return array */ public function fetchAssocRow ($res) { if ($res && $this->numRows($res)) { return mysql_fetch_assoc($res); } return array(); } /** * Результат запроса с многими записями * * @param resource $res * @return array */ public function fetchAssoc ($res) { $tmp = array(); if ($res && $this->numRows($res)) { while ($row = mysql_fetch_assoc($res)) { $tmp[] = $row; } } return $tmp; }}?>
#10. aluka Off (0)
Участник
2010.08.14 02:02
Gemorroj написал:
Код:
span style="color: #0000BB"><?php/** * @author Gemorroj * @copyright 2010 */class DB_MySQL{ /** * Объект Bootstrap */ public $Bootstrap; /** * Ресурс соединения с БД */ private $_link; /** * Конструктор * * @param object $Bootstrap */ public function __construct (Bootstrap $Bootstrap) { $this->Bootstrap = $Bootstrap; } /** * Соединяемся с БД * * @param string $host * @param string $user * @param string $pass * @param string $db */ public function connect ($host, $user, $pass, $db) { $this->_link = mysql_connect($host, $user, $pass) or die('Error connect to DB'); mysql_select_db($db, $this->_link); mysql_unbuffered_query('SET NAMES `utf8`', $this->_link); } /** * Экранирование * * @param string $str * @return string */ public function escape ($str) { return mysql_real_escape_string($str, $this->_link); } /** * Экранирование таблиц * * @param string $str * @return string */ public function escapeTable ($str) { return str_replace('`', '``', $str); } /** * Экранирование для оператора LIKE * * @param string $str * @return string */ public function escapeLike ($str) { return str_replace(array('%', '_'), array('\%', '\_'), mysql_real_escape_string($str, $this->_link)); } /** * Старт транзакци * * @return bool */ public function transactionStart () { return (bool)$this->query('START TRANSACTION;'); } /** * Коммит транзакци * * @return bool */ public function transactionCommit () { return (bool)$this->query('COMMIT;'); } /** * Роллбэк транзакци * * @return bool */ public function transactionRollback () { return (bool)$this->query('ROLLBACK;'); } /** * ID вставленной строки * * @return int */ public function insertId () { return mysql_insert_id($this->_link); } /** * Текст ошибки * * @return string */ public function error () { return mysql_error($this->_link); } /** * Запрос * * @param string $sql * @return resource */ public function query ($sql) { return mysql_query($sql, $this->_link); } /** * затронутые строки после INSERT, UPDATE, DELETE и т.д. * * @return int */ public function affectedRows () { return mysql_affected_rows($this->_link); } /** * затронутые строки после SELECT * * @param resource $res * @return int */ public function numRows ($res) { return mysql_num_rows($res); } /** * Результат запроса * * @param resource $res * @param int $row * @param mixed $field * @return string */ public function result ($res, $row = 0, $field = 0) { return @mysql_result($res, $row, $field); } /** * Результат запроса с одной записью * * @param resource $res * @return array */ public function fetchAssocRow ($res) { if ($res && $this->numRows($res)) { return mysql_fetch_assoc($res); } return array(); } /** * Результат запроса с многими записями * * @param resource $res * @return array */ public function fetchAssoc ($res) { $tmp = array(); if ($res && $this->numRows($res)) { while ($row = mysql_fetch_assoc($res)) { $tmp[] = $row; } } return $tmp; }}?>
mojno odzin xoroshi primer kak rabotaet etot class? chtobi vse funqcii bili poniatni... izvini za takie ruski, ni znaiu xorosho
#11. Morgan Off (10)
Участник
2010.08.14 03:03
Gemorroj написал:
Код:
span style="color: #0000BB"><?php/** * @author Gemorroj * @copyright 2010 */class DB_MySQL{............................}?>
ну это для работы с бд.
А как же шаблонизатор?
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#12. Akdmeh Off (9)
Участник
2010.08.14 11:11
Павел, а какой понт юзать самодельную поделку, которая уж очень и очень сильно напоминает mysqli ну или PDO?wink
Или это нужно, когда в наличии нет этих классов в комплекте?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#13. Gemorroj Off (107)
Administrator
2010.08.14 12:12
Akdmeh, да никакого понта) просто ситуация вынуждала писать такую прослойку. Когда есть уже гонокод, который нужно переписать, и сроки жмут ппц. Решил что так пока что будет быстрей. В планах там вообще переход на СУБД Oracle и использование Doctrine2 smile)
Morgan, сейчас у меня нет своей велосипедной реализации шаблонизтора. Писал очень давно когда-то, получилось убого, смысла хранить код нет. Использую Smarty.
#14. Nu3oN Off (11)
Moderator
2010.08.16 01:01
юзал свой шаблонизатор, забил на это дело!
ша начал юзать smarty! кстати первое мое использование smarty в форуме который пойдет на конкурс на xwab'e
Я буду лучше голоден, но между креслом и рулем и на дороге.
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.021 s