Sky
Well-Known Member
От: От: Предложете темплейт енджин
Благодаря ти много за примерите но днес вече се убедих, че на twig му е рано. Днес за 1 час си прехвърлих един скрипт на смарти и ми допадна.
Сигурен съм, че twig си има предимства но ще се спра на смарти. Някак по-лесен ми е а това и е главната цел.
Още един път благодаря.
Разбирам защо питаш. Чудиш се как да структурираш масива, който подаваш на twig-енджина.
Ще ти дам пример с PDO. И не ти трябва някакъв туториал, нещата не са толкова сложни. Трябва ти просто сламка. Ще имаш още един-два такива препъни камъни.
Нещо важно: поне в началото не включвай кеширането на тимлейтите, може много да страдаш, докато се усетиш защо гърми някаква дреболия. Няма значение с който тимплейт енджин работиш.
MySQL
Приемаме, че си оставил файловете от горния пример, за да не ги пиша отново. И ще създадем само един файл, който да чете от MySQL-базата:Код:CREATE DATABASE IF NOT EXISTS `test`; USE `test`; -- Dumping structure for table test.users CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL, `name` varchar(50) NOT NULL, `gsm` varchar(18) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `users` (`id`, `name`, `gsm`) VALUES (1, 'User1', '08995647'), (2, 'User 2', '+359084451'), (3, 'User 3', '00256554');
db_test.php
Слагаш го в същата директория, където е bootstrap.php.PHP:<?php $dbh = new PDO('mysql:dbname=test;host=localhost', 'username', 'password'); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "SELECT users.name as username, users.gsm as gsm FROM users"; $sth = $dbh->query($sql); $row = $sth->fetchAll(PDO::FETCH_ASSOC); $assign['users'] = $row; $assign['root'] = "D4rkN1ll"; require "bootstrap.php"; echo $twig->render('index.html', $assign); ?>
В ртезултат ще получиш абсолютно същото, като на картинката по-горе.
Ето и целия сорс код с дъмп на базата данни: http://dox.bg/files/dw?a=aeaba8fa1f
ПС: Няма нужда да асоциираш данните при SQL-заявката. Т.е. можеш да го направиш и така:
$sql = "SELECT name, gsm FROM users";
С PDO::FETCH_ASSOC автоматично ще се асоциират с имената на колоните. Но трябва да промениш в тимплейт-файла username на name.
Благодаря ти много за примерите но днес вече се убедих, че на twig му е рано. Днес за 1 час си прехвърлих един скрипт на смарти и ми допадна.
Сигурен съм, че twig си има предимства но ще се спра на смарти. Някак по-лесен ми е а това и е главната цел.
Още един път благодаря.