Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> MVC - разделение логики от шаблона, делимся опытом, примеры макс. приближен. реализации
Игорь_Vasinsky  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26442
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 11 дней
Карма: 739




В продолжении темы
http://phpforum.ru/index.php?showtopic=558...5&#entry1664755

Хотелось бы в первую очередь увидеть наработки участников вышеуказанной темы.

На примере заполнения таблицы HTML в TPL шаблоне, данными из БД - while (несолько строк)

Нужно полностью разделить шаблон и контроллер использую модель



Спустя 7 минут, 15 секунд (9.01.2012 - 20:03) Игорь_Vasinsky написал(а):
в моём примере есть жерва в виде верстки в цикле (контроллер), но это компенсируется тем что стиль подключён выше, а сам цикл буферизуется и ставиться в шаблон в моделе (фронт контроллере)

при этом шаблон не содержит php, ну я думаю уже многие знакомы с моей методой - псевдоСмарти.

вот я и хочу узреть того умельца - у которого есть такая реализация.

можно даже самописный аналог {foreach} смарти выложить - тока приветствуется.

Спустя 18 минут, 32 секунды (9.01.2012 - 20:22) m4a1fox написал(а):
Игорь_Vasinsky
В чем конкретно вопрос Игорь?

Спустя 4 минуты, 7 секунд (9.01.2012 - 20:26) m4a1fox написал(а):
Я тут посидел чуток за компом, и вот такой велик получился...

<?php
echo '<J>PDO::</J><br />';

define('M4A1_DB_TYPE', 'mysql');
define('M4A1_DB_HOST', 'localhost');
define('M4A1_DB_NAME', 'wyd_black');
define('M4A1_DB_USER', 'root');
define('M4A1_DB_PASS', '');

class Database extends PDO{

private $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');

public function __construct($M4A1_DB_TYPE, $M4A1_DB_HOST, $M4A1_DB_NAME, $M4A1_DB_USER, $M4A1_DB_PASS){
parent::__construct($M4A1_DB_TYPE . "::host=". $M4A1_DB_HOST ."; dbname=".$M4A1_DB_NAME, $M4A1_DB_USER, $M4A1_DB_PASS, $this->options);
}

public function selectAll($table, $row = '*'){
if(is_array($row)) $row = implode(', ', $row);

$stn = $this->query("SELECT $row FROM `$table`");
while($row = $stn->fetch(PDO::FETCH_ASSOC)){
include './tpl/view.tpl';
}
}
}



$db = new Database(M4A1_DB_TYPE, M4A1_DB_HOST, M4A1_DB_NAME, M4A1_DB_USER, M4A1_DB_PASS);
$ar = $db->selectAll('user', array('name', 'id', 'email', 'surname'));
?>
<style>
.
show{
width: 650px;
margin: 10px;
border: 1px solid red;
padding: 20px;
background: #c0deed;
color: #184154;
}

.inside-block{
margin-left: 30px;
font-size: 14px;
color: green;
}
</style>
<?php
echo $ar;
?>


И самое вкусное. Файл с view

<div class="show">
<span
style="color: purple;">Name of person::</span> <?php echo $row['name'];?>
<hr />
<div
class="inside-block"><?php echo $row['email'];?></div>
</div>



соответственно, что бы новые поля вытащить, нужно только в массив $ar, кот. вторым аргументом идет, добавить нужное поле, а в шаблоне, просто вытащить ее в нужное вам место. :)

Спустя 1 минута, 43 секунды (9.01.2012 - 20:28) caballero написал(а):
Цитата
Нужно полностью разделить шаблон и контроллер использую модуль

Нельзя полностью разделить (во всяком случае не в шаблонизаторазх и не в MVC паттерне)
Замена скриплетов PHP на какие то самопальные в фигурных скобках сути дела не меняет.

Спустя 5 минут, 7 секунд (9.01.2012 - 20:33) Игорь_Vasinsky написал(а):
вот моя реализация, как я и говорил - грязноватая, и тема именно для того чтобы сделать чисто

СПЕЦИАЛЬНО ДЛЯ ЮВСИКА, КОТОРЫЙ НИ РАЗУ не слышал о моей реализации и не видел.

шаблон template.tpl:

Свернутый текст
<html>
......
<table class="view">
<tr>
<th>
ID</th><th>NAME</th><th>PRICE</th>
</tr>

{*VIEW_TABLE*}
</table>
</html>


контроллер controller.php
Свернутый текст

<?php
$view = mysql_query("SELECT * FROM `table`");

ob_start();

if(mysql_num_rows($view))
{
while($row = mysql_fetch_assoc($view))
echo '<tr><td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>'.$row['price'].'</td></tr>';
}

$view_tpl = ob_get_contents()
ob_end_clean();
?>


модель (который подключается в index - switch->case) module.php
Свернутый текст

<?php
include "controller.php";
$tpl = file_get_contents("template.tpl");

//Не давно решил юзать strtr(), но здесь и так пойдёт

echo str_replace('{*VIEW_TABLE*}', $view_tpl, $tpl);
?>



видим что в контроллере присутствует вёрстка, но я легко закрываю глаза на это т.к. у тадлицы есть класс и лезть в контроллер мне не придётся (тока если координально менять вывод, например добавить столюец)


вот я и хочу поглядеть на самодельные шаблонизаторы (ирбис не в счёт)

Спустя 2 минуты, 49 секунд (9.01.2012 - 20:36) Игорь_Vasinsky написал(а):
Цитата
Нельзя полностью разделить (во всяком случае не в шаблонизаторазх и не в MVC паттерне)
Замена скриплетов PHP на какие то самопальные в фигурных скобках сути дела не меняет.


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


m4a1fox
вывод таблицы из БД на несколько строк данных. не одну.

Спустя 2 минуты, 48 секунд (9.01.2012 - 20:38) m4a1fox написал(а):
Игорь_Vasinsky
Цитата
вывод таблицы из БД на несколько строк данных. не одну.

Ну..... несколько из одной таблицы! Даже не несколько а все!

Спустя 7 минут, 35 секунд (9.01.2012 - 20:46) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 9.01.2012 - 19:33)
//Не давно решил юзать strtr(), но здесь и так пойдёт

echo str_replace('{*VIEW_TABLE*}', $view_tpl, $tpl);
?>

Правильно решил, str_replace здесь использовать нельзя smile.gif

Спустя 3 минуты, 25 секунд (9.01.2012 - 20:49) Игорь_Vasinsky написал(а):
да. мы не давно обсудили это в какой то теме.

Спустя 10 минут, 53 секунды (9.01.2012 - 21:00) johniek_comp написал(а):
я не был в той теме, а что тебе нужно вывести данные в таблицу что бы в контроллере не было верстки вообще?

Спустя 2 минуты, 7 секунд (9.01.2012 - 21:02) Игорь_Vasinsky написал(а):
да. именно.

Спустя 1 минута, 31 секунда (9.01.2012 - 21:04) johniek_comp написал(а):
ну хоть одна интересная тема за последнее время! wink.gif

Спустя 1 минута, 15 секунд (9.01.2012 - 21:05) Игорь_Vasinsky написал(а):
ну как видишь и не для всех и видимо по той причине что это "Не реально", хотя смарти делает, но его не трогаем, интересны - велосипеды - т.е. ход мыслей программиста.

Спустя 5 минут, 27 секунд (9.01.2012 - 21:11) YVSIK написал(а):
ну вот начнем все оп порядку
вот это что ?
Свернутый текст
<?php
$view = mysql_query("SELECT * FROM `table`");

ob_start();

if(mysql_num_rows($view))
{
while($row = mysql_fetch_assoc($view))
echo '<tr><td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>'.$row['price'].'</td></tr>';
}

$view_tpl = ob_get_contents()
ob_end_clean();
?>

это контроллер а на какие запросы он будет отвечать? точнее, ещё точнее,
от кого будут приходить запросы , на чьи запросы он будет реагировать?
ещё точнее как это будет работать по какому принципу ? откуда этот запрос будет приходить и вообще зачем
Пяснительная записка
где коменты и прочие если ты выкладываешь как надо делать то самое сремя пояснять что каждый код делает
если понятно ? а если нет то могу повторить вопрос?
смысл этих телодвижений и этого контроллера каков ?

Спустя 2 минуты, 57 секунд (9.01.2012 - 21:14) YVSIK написал(а):
Цитата (johniek_comp @ 9.01.2012 - 21:00)
я не был в той теме, а что тебе нужно вывести данные в таблицу что бы в контроллере не было верстки вообще?

теперь ответ что ты спросил )
ты хоть понял что написал ?
полный коломбур не связанного меду собой текста
причем тут контролеер вообще? каково его действо ? для чего он служит это контроллер ?

Спустя 2 минуты (9.01.2012 - 21:16) caballero написал(а):
Цитата (Игорь_Vasinsky @ 9.01.2012 - 18:05)
ну как видишь и не для всех и видимо по той причине что это "Не реально", хотя смарти делает, но его не трогаем, интересны - велосипеды - т.е. ход мыслей программиста.

возьми любой фреймворк коих в инете полно притворись что это велосипед и смотри
не очень понятно что ты хочешь узреть- какието идеи или убедится что у тебя всетравно круче или еще чего
В чем собственно вопрос?

Спустя 2 минуты, 2 секунды (9.01.2012 - 21:18) YVSIK написал(а):
поехали дальше )
вот что это за модуль такой
МОДУЛЬ ??? хМ?
Свернутый текст
<?php
include "controller.php";
$tpl = file_get_contents("template.tpl");

//Не давно решил юзать strtr(), но здесь и так пойдёт

echo str_replace('{*VIEW_TABLE*}', $view_tpl, $tpl);
?>

модуль это отдельный файл(вернее сказать ПАПКА) в котором сохраняем некоторый обшего вида данные и придерживающихся одним правилам
вот вам что хзначит модуль а не модуль файл и все
и коменты опять нет !!

Спустя 51 секунда (9.01.2012 - 21:19) Игорь_Vasinsky написал(а):
laugh.gif
это формирования вывода из БД в переменную.

что ещё?

я с ирбиса не слизываю.

Ювсек, а что в модуле должно быть????????????????????? это - модуль.


ohmy.gif ну скока мне раз говорить кабалеро? не нужны мне шаблонизаторы фреймворков - я хочу видить попытки программистов, которые хотели или реализовали эти моменты своей головой, а не перебирая класс готового шаблонизатора.


мне нах ни кому чёт доказывать, я и не утверждаю что он круче, но я не вижу другого - чтобы сравнить. так понятно?


Спустя 32 секунды (9.01.2012 - 21:19) Игорь_Vasinsky написал(а):
YVSIK
Цитата
вернее сказать ПАПКА
laugh.gif да хоть весь винт на сервере.

Спустя 33 секунды (9.01.2012 - 21:20) Игорь_Vasinsky написал(а):
YVSIK
пля... для чего комменты??? для чего??? там что хитрые классы?? или что?

Спустя 33 секунды (9.01.2012 - 21:20) johniek_comp написал(а):
YVSIK
Все верно у него. МОДУЛЬ ДОЛЖЕН СОЕДИНЯТЬ ВИД И КОНТРОЛЛЕР
что он благополучно и делает

Спустя 16 секунд (9.01.2012 - 21:20) YVSIK написал(а):
так вот я продолжу долбить Игоря
модуль служит для сбора во едино логику РНР которой пользоваться отдельно будем и применять по зпросу юзера

Спустя 2 минуты, 27 секунд (9.01.2012 - 21:23) Игорь_Vasinsky написал(а):
Цитата
так вот я продолжу долбить Игоря

долбилка то доросла?

Цитата
модуль служит для сбора во едино логику РНР которой пользоваться отдельно будем и применять по зпросу юзера

почти википедия.... доведёшь ты меня до бана.


что ещё не так?

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

держите меня семеро.

Спустя 14 секунд (9.01.2012 - 21:23) YVSIK написал(а):
Цитата (johniek_comp @ 9.01.2012 - 21:20)
YVSIK
Все верно у него. МОДУЛЬ ДОЛЖЕН СОЕДИНЯТЬ ВИД И КОНТРОЛЛЕР
что он благополучно и делает

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

Спустя 2 минуты, 24 секунды (9.01.2012 - 21:26) Игорь_Vasinsky написал(а):
Цитата
так если ты не знаешь что говориш то поддакиват не место
это контролер соединяет воедино а не модуль модуль отдает то что у него есть и по зпросу юзера
так что пока не лезь сюжы если не знаешь про что речь


где остальные..остановите его ради бога у мен щас мозг взорвётся....


что должен делать модуль в архитектуре MVC????????? ЮВСИК???

Спустя 25 секунд (9.01.2012 - 21:26) YVSIK написал(а):
и чтоб говорить подобное
Цитата
Все верно у него. МОДУЛЬ ДОЛЖЕН СОЕДИНЯТЬ ВИД И КОНТРОЛЛЕР

самое время показать что ты построил ) ну ладно ))
теперь так где сказано что это так как ты говоришь ? гИдЕ?

Спустя 1 минута, 34 секунды (9.01.2012 - 21:27) Игорь_Vasinsky написал(а):
Цитата
самое время показать что ты построил ) ну ладно ))


я понять не могу. ты просилка чтоли???? ты говоришь что у меня херня. аргументируй.

парень наблюдатель. я с тобой спорю, а ты со мной. в толпе любишь прятаться?

Спустя 23 секунды (9.01.2012 - 21:28) johniek_comp написал(а):
YVSIK
Как не знаю!!!???
Меня то за что? Контроллер (программная часть) Вид (то что видит пользователь в результате работы контроллера) Модель (собирает это все до кучи)

Что не так?

Спустя 1 минута, 20 секунд (9.01.2012 - 21:29) YVSIK написал(а):
Цитата
что должен делать модуль в архитектуре MVC????????? ЮВСИК???
ответ на Цитатту))
модуль ещё раз это отделная часть сайта и он ничего не должен он содержит ифу так необходимую сайту и всего
которую используют при необходимости

сам по себе модуль не может ничего делать ) уж поверь ) ну не может хранилище скриптов само по себе генерировть действо пока небудет запроса на эти действа от Юзера

Спустя 1 минута, 41 секунда (9.01.2012 - 21:31) YVSIK написал(а):
Цитата (johniek_comp @ 9.01.2012 - 21:28)
YVSIK
Как не знаю!!!???
Меня то за что? Контроллер (программная часть) Вид (то что видит пользователь в результате работы контроллера) Модель (собирает это все до кучи)

Что не так?

ну и не свтреваЙ пока если для тебя эти слова что для садовника программирование

Спустя 1 минута, 36 секунд (9.01.2012 - 21:32) Игорь_Vasinsky написал(а):
Цитата
модуль ещё раз это отделная часть сайта и он ничего не должен он содержит ифу так необходимую сайту и всего
которую используют при необходимости

сам по себе модуль не может ничего делать ) уж поверь ) ну не может хранилище скриптов само по себе генерировть действо пока небудет запроса на эти действа от Юзера


а я говорю - что будет. и делает. чем докажешь?

Спустя 2 минуты, 21 секунда (9.01.2012 - 21:35) Игорь_Vasinsky написал(а):
вот роутер. смотрит что и как юзер делает

Свернутый текст
<?php
error_reporting(E_ALL);
header("Content-type: text/html; charset=utf-8");

define("VAS_HOME", $_SERVER['DOCUMENT_ROOT']);

include VAS_HOME."/admin/vars.php";
include VAS_HOME."/admin/config.php";

# Для отладки
include VAS_HOME."/libs/funct.debug.php";


include VAS_HOME."/moduls/common/header.php";

switch($route)
{
case "posts":
include VAS_HOME."/moduls/posts.php";
break;

case "search":
include VAS_HOME."/moduls/search.php";
break;

case "admin":
include VAS_HOME."/admin/moduls/admin.php";
break;

case "editPosts":
include VAS_HOME."/admin/moduls/edit_posts.php";
break;

case "addPosts":
include VAS_HOME."/admin/moduls/add_posts.php";
break;

case "dropPosts":
include VAS_HOME."/admin/moduls/drop_posts.php";
break;

case "editComments":
include VAS_HOME."/admin/moduls/edit_comments.php";
break;

case "addComments":
include VAS_HOME."/admin/moduls/add_comments.php";
break;

case "dropComments":
include VAS_HOME."/admin/moduls/drop_comments.php";
break;

default:
include VAS_HOME."/moduls/posts.php";
break;
}

include VAS_HOME."/moduls/common/footer.php";
?>

Спустя 16 секунд (9.01.2012 - 21:35) YVSIK написал(а):
контроллер это от слова контроль
Вид это вывод от слова вид или внешний вид
модуль это част сайта от слова модуль или точнее общие скрипты для пользованием ими сайтом вот их и соединили в одном месте ПАПКУ иназвами модулем ЛОГИКИ

Спустя 2 минуты, 49 секунд (9.01.2012 - 21:38) Игорь_Vasinsky написал(а):
Цитата
контроллер это от слова контроль
Вид это вывод от слова вид или внешний вид


так по твоим определениям модуль - мод делает. ты ни чё не путаешь?

ты всё ещё утверждаешь что можешь реализовать сайт на архитектуре паттерна MVC?

а теперь ещё что знаешь что вообще это такое?

Спустя 1 минута, 46 секунд (9.01.2012 - 21:40) Игорь_Vasinsky написал(а):
Цитата
модуль это част сайта от слова модуль

laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif

стреляйте...стреляйте.. убежит ведь.

Спустя 12 секунд (9.01.2012 - 21:40) killer8080 написал(а):
О каком модуле вы вообще тут спорите?
В аббревиатуре MVC нет слова модуль wink.gif

Спустя 34 секунды (9.01.2012 - 21:40) YVSIK написал(а):
а вот роутер это не точка входа
это)))) указатель пути или ещё его зовут при переводе на английски МАршрутизатор
а то что ты показал это просто скписок подключенных файлов
а вот путей там нет , а если они и есть пути то не активные
путь можно указывть так где брать и как выводить () откудаи куда , А ПОКА ЭТО ЛЕЖИТ БЕЗ ДВИЖЕНИЯ ЭТО просто список

гы?
Цитата
вот роутер. смотрит что и как юзер делает

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

Спустя 1 минута, 32 секунды (9.01.2012 - 21:42) YVSIK написал(а):
killer8080вот про это и говориться, что там нет а вот у Игоря есть и этот модуль что-то делает куда-то посылает юзера

Спустя 35 секунд (9.01.2012 - 21:43) killer8080 написал(а):
Цитата (YVSIK @ 9.01.2012 - 20:40)
а вот роутер это не точка входа

роутер ничего общего не имеет с MVC, о котором вы тут твердите. Этого всего лишь архитектура с общей точкой входа. wink.gif

Спустя 1 минута, 20 секунд (9.01.2012 - 21:44) Игорь_Vasinsky написал(а):
Цитата
а вот роутер это не точка входа


а что это? точка выхода?

Цитата
это)))) указатель пути или ещё его зовут при переводе на английски МАршрутизатор

laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif

Цитата
а вот путей там нет , а если они и есть пути то не активные

ph34r.gif
Цитата
как может список смотреть что делает Юзер

да кавычками он смотрит - кавычками mad.gif

я тебя христом богом молю. уйди. разговор закончен.

Цитата
О каком модуле вы вообще тут спорите?
В аббревиатуре MVC нет слова модуль


есть есть.. читай внимаетельней.

Спустя 52 секунды (9.01.2012 - 21:45) Игорь_Vasinsky написал(а):
killer8080
Цитата
роутер ничего общего не имеет с MVC, о котором вы тут твердите. Этого всего лишь архитектура с общей точкой входа.


этого никто, даже ювсик не утверждал.

Спустя 51 секунда (9.01.2012 - 21:46) Игорь_Vasinsky написал(а):
Цитата
killer8080вот про это и говориться, что там нет а вот у Игоря есть


есть и будет. если надо то и все 3 роутера будут.

Спустя 1 минута, 57 секунд (9.01.2012 - 21:48) Игорь_Vasinsky написал(а):
ой пля.. я везде модуль написал biggrin.gif biggrin.gif biggrin.gif biggrin.gif дур-дом.

Спустя 14 секунд (9.01.2012 - 21:48) YVSIK написал(а):
модель контроллер вид !
где слово модуль? ещё раз где ?
я три раза прочитал ) нет там такого слова
покажи может ты видишь лучше
ну уж нет у тебя есть
вот он
Цитата
модуль (который подключается в index - switch->case) module.php
Свернутый текст

из его предыдущего поста

Спустя 1 минута, 45 секунд (9.01.2012 - 21:50) Игорь_Vasinsky написал(а):
да. этот файл и есть модуль и он в этой архитектуре и есть модель и есть фронт контроллер.

а то не так7

Спустя 1 минута, 25 секунд (9.01.2012 - 21:51) YVSIK написал(а):
ну ладно пока помолчу, посмотрю когда ты все расскажешь а потом !! wink.gif
может быть и соглашусь
может что новое для себя увижу и возьму на вооружение smile.gif

Спустя 4 минуты, 31 секунда (9.01.2012 - 21:55) caballero написал(а):
Игорь_Vasinsky


Цитата
ну скока мне раз говорить кабалеро? не нужны мне шаблонизаторы фреймворков - я хочу видить попытки программистов, которые хотели или реализовали эти моменты своей головой, а не перебирая класс готового шаблонизатора.Игорь_Vasinsky

Вообще то большинство фреймворков не используют готовые шаблонизаторы. Тот же CI, Drupal, Yii и прочие.
Там свои решения написаные головой разработчиков фреймворка. Или ты думаешь там писали какие то особые программисты отличные от тех кто тут на форуме?

Спустя 1 минута, 34 секунды (9.01.2012 - 21:57) Игорь_Vasinsky написал(а):
да. я так думаю.

Спустя 1 минута, 14 секунд (9.01.2012 - 21:58) caballero написал(а):
Цитата
да. я так думаю.

А я думаю что их писали такие же ребята как здесь, ничем не отличающиеся.

Спустя 2 минуты, 35 секунд (9.01.2012 - 22:01) Игорь_Vasinsky написал(а):
Цитата
может быть и соглашусь

Свернутый текст
user posted image


кабаллеро. мне мнение имеено здешьних хотелось услышать, так как я с ними уже давно, мне хотелось увидеть на скока может отличаться ход мышления, т.к. учились мы здесь одинаково и у одних и тех же.

Спустя 4 минуты, 6 секунд (9.01.2012 - 22:05) caballero написал(а):
И вообще как я вижу здесь в основном тот же контингент который так и не разобрался намедни что такое ООП. Оказывается не могут разобратся что такое MVC что такое модули роутеры и прочее. Да и с шаблонизаторами какапя то неувязка.
Что правла не мешает всем спорить и доказывать свое.

Цитата
кабаллеро. мне мнение имеено здешьних хотелось услышать, так как я с ними уже давно, мне хотелось увидеть на скока может отличаться ход мышления, т.к. учились мы здесь одинаково и у одних и тех же.

Так мнение ивестное - все лепят MVC по образу и подобию других фреймворков или по курсам ирбиса попова и прочих которые преподают то же самое.

Спустя 3 минуты, 45 секунд (9.01.2012 - 22:09) Игорь_Vasinsky написал(а):
я не изучал на ирбисе и уж темболее не ковырял фреймворки. в вики почитал и пример глянул.
Свернутый текст

тыж смотри..и не слова про ассемблер

Спустя 3 минуты, 47 секунд (9.01.2012 - 22:13) johniek_comp написал(а):
ну..почти убрал верстку в контроллере, не знаю заработает ли :) так можно сказать наугад сделал

<?php
$view = mysql_query("SELECT * FROM `table`");

ob_start();

function yusik($row['id'], $row['name'], $row['price']) {

$ar = array($row['id'], $row['name'], $row['price']);
foreach ($ar as $value)
{
echo "<tr><td>" . $value . "</td></tr><br />";
}
}

if(mysql_num_rows($view))
{
while($row = mysql_fetch_assoc($view))
yusik($row['id'], $row['name'], $row['price']);
}





$view_tpl = ob_get_contents()
ob_end_clean();
?>

Спустя 1 минута, 5 секунд (9.01.2012 - 22:14) Игорь_Vasinsky написал(а):
речь о том чтобы вообще убрать.

Спустя 5 минут, 4 секунды (9.01.2012 - 22:19) YVSIK написал(а):
Цитата (Игорь_Vasinsky @ 9.01.2012 - 22:14)
речь о том чтобы вообще убрать.

и не только тут а вывести за пределы все функции и положить их в отдельное место
что там у него так это не разделение это смесь всего и
вид и кнтроллер и даже массив и все в одном месте
весь фокус разделить а не мешать воедино

Спустя 1 минута, 22 секунды (9.01.2012 - 22:20) Игорь_Vasinsky написал(а):
Цитата
и не только тут а вывести за пределы все функции и положить их в отдельное место
что там у него так это не разделение это смесь всего и
вид и кнтроллер и даже массив и все в одном месте
весь фокус разделить а не мешать воедино


нк там фокусв. а функция - это не лигическая состовляющая скрипта?

Спустя 5 минут, 41 секунда (9.01.2012 - 22:26) caballero написал(а):
Цитата
я не изучал на ирбисе и уж темболее не ковырял фреймворки. в вики почитал и пример глянул.

Понятно - чукча не читатель чукча писатель. Мануалы PHP хоть читал или то же по википедии? Чтобы не забить голову стандартными функциями PHP.


johniek_comp
Кстати, а что делают определения функций внутри ob_start(); ob_end_clean();
Это тоже чтобы отличатся от нормального кодирования? типо свое!
Тут акуратно надо потому что варианты отличные от нормального кодирования часто именуются говнокодированием.

Спустя 4 минуты, 34 секунды (9.01.2012 - 22:30) Игорь_Vasinsky написал(а):
Цитата
Кстати, а что делают определения функций внутри ob_start(); ob_end_clean();
Это чтобы отличатся от нормального кодирования?
Тут акуратно надо потому что варианты отличные от нормального кодирования часто именуются говнокодированием.


сх это говнокодирование?

тут на примере одного загружаемого шаблона, а вообще из несколько.
и чё мне склеивать 4 file_get_contents()?

Цитата
Понятно - чукча не читатель чукча писатель. Мануалы PHP хоть читал или то же по википедии? Чтобы не забить голову стандартными функциями PHP.


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

Спустя 8 минут, 18 секунд (9.01.2012 - 22:39) caballero написал(а):
Цитата
  сх это говнокодирование?

тут на примере одного загружаемого шаблона, а вообще из несколько.
и чё мне склеивать 4 file_get_contents()?


Еще раз - что делает ОПРЕДЕЛЕНИЕ функции после ob_start();

Цитата
а ты по форуму полазь, да почитай, чем у меня голова забита

Я уже понял что забита черти чем поэтому и повторил выше.

Спустя 1 минута, 36 секунд (9.01.2012 - 22:40) Игорь_Vasinsky написал(а):
да я не про это. функц. там делать вообще не**.

и она не моя.

я понял так что пользование буфера- стиль говнокодирования.

Спустя 1 минута, 57 секунд (9.01.2012 - 22:42) caballero написал(а):
Цитата
этот файл и есть модуль и он в этой архитектуре и есть модель и есть фронт контроллер.

Жесть! Шестирукий Шива отдыхает.

Спустя 1 минута, 18 секунд (9.01.2012 - 22:43) caballero написал(а):
Цитата
я понял так что пользование буфера- стиль говнокодирования.

Нет. ОПРЕДЕЛЕНИЕ функции внутри буфера.
Ну ладно код не твой - проехали

Спустя 2 минуты, 52 секунды (9.01.2012 - 22:46) Игорь_Vasinsky написал(а):
и это не правильная функция. вкорне.

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


про определение функции в ob_start() я ответил выше. нефиг ей там делать, вызвать да..

Спустя 3 минуты, 18 секунд (9.01.2012 - 22:50) johniek_comp написал(а):
caballero
Функцию нельзя внутри буфера?

Спустя 2 минуты, 27 секунд (9.01.2012 - 22:52) Игорь_Vasinsky написал(а):
а зачем? от функции требуется её отработка и результат выполнения, нафига её там определять. - кроме как там она работать и не будет больше ни где. так нафиг она вообще?

Спустя 1 минута, 57 секунд (9.01.2012 - 22:54) johniek_comp написал(а):
Игорь_Vasinsky
я хотел уменьшить верстку в том файле, все...вот моя задача была, может вас это не устраивает, а мне пойдет laugh.gif

Спустя 2 минуты, 13 секунд (9.01.2012 - 22:56) Игорь_Vasinsky написал(а):
тогда кабаллеро прав на счёт схожести стиля. biggrin.gif если это было осознанно.

Спустя 1 минута, 48 секунд (9.01.2012 - 22:58) YVSIK написал(а):
мы отклонились от главной нашей темы
так надо не говорить что мол то не так это не этдак надо расскрыть что надобно видеть в этой теме а именно вот это

MVC - разделение логики от шаблона, делимся опытом, примеры макс. приближен. реализации !!

Спустя 1 минута, 13 секунд (9.01.2012 - 22:59) caballero написал(а):
Цитата
Функцию нельзя внутри буфера?

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

Спустя 2 минуты, 21 секунда (9.01.2012 - 23:02) Игорь_Vasinsky написал(а):
ювсик - это тема по большей мере была для тебя (под прикрытием всех)


т.к. твои стандартные "а вот теперь надо решить", "а вот ту надо определиться"

и "ммс - это как ты сам решишь так и будет работать"

и решить этот спор. это клнечн вносить изюминку твои посты, но по большей мере в них вообще невижу смысла. Имею Мнение Хрен Оспоришь.

ТС и те заходят с более сформулированными вопросами, какие они не были.

Спустя 1 минута, 1 секунда (9.01.2012 - 23:03) caballero написал(а):
Цитата
MVC - разделение логики от шаблона, делимся опытом, примеры макс. приближен. реализации !!


MVC понятие растяжимое. Поэтому проблемма определить сначала какая реализация считается приближенной. Точнее по каким критериям определяется что эта приближена на три метра а та на четыре.
Иначе спор до бесконечности.

или по другому что надо получить в результате? MVC ради MVC или нормальную структуру сайта.
Как в изветсном анекдоте про таксиста - Вам надо ехать или шашечки?

Спустя 3 минуты, 28 секунд (9.01.2012 - 23:06) Игорь_Vasinsky написал(а):
1/моя реализация схожа с MVC?
2/Желание полность исключить участие html тегов везде, кроме как в tpl файлах.

всё таки большой соблазн использовать подобие forech if и т.д. смарти. видимо и буду в этом направлении двигаться.

Спустя 6 минут, 47 секунд (9.01.2012 - 23:13) YVSIK написал(а):
не, это твоя тема, тебе и вести её, вот и ещё раз ты скаканул в кусты biggrin.gif

Спустя 52 секунды (9.01.2012 - 23:14) caballero написал(а):
Цитата
1/моя реализация схожа с MVC?

Что то типо того.

Цитата
2/Желание полность исключить участие html тегов везде, кроме как в tpl файлах.

Обычно проблемма искоючить логику из HTML.


Цитата
всё таки большой соблазн использовать подобие forech if и т.д. смарти

Даже если ты напишешь свой парсер псевдоязыка - это не решит проблемму - потому как все равно в HTML будут намешаны чужеродные теги. Так почему не оставить там PHP а городить какую то прослойку?



Спустя 58 секунд (9.01.2012 - 23:15) YVSIK написал(а):
двигаться то двигайся только покажи что есть
а не это
Цитата
всё таки большой соблазн использовать подобие forech if и т.д. смарти. видимо и буду в этом направлении двигаться.

это просто опять треп а вот что есть НЕТ!! smile.gif

Спустя 1 минута, 36 секунд (9.01.2012 - 23:16) Игорь_Vasinsky написал(а):
YVSIK
ты чё придурок? какие кусты.

я те ни чё не обязан. ты и 1% от моего не показал. тока ахинею какую то несёшь и всё.

Спустя 20 секунд (9.01.2012 - 23:17) YVSIK написал(а):
biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif
а где содержательное обьяснение того что ты задал гИде ?
и тему создал для чего чтоб поболтать что знаешь

Спустя 3 минуты, 38 секунд (9.01.2012 - 23:20) Игорь_Vasinsky написал(а):
Цитата
Обычно проблемма искоючить логику из HTML.

ph34r.gif пля. именно.

да кстати - менять шило на мыло (псевдотеги) ... видать пара недель юзаниья смарти дало о себе знать.. на уровне подсознания и стало навязчивой идеей.

Цитата
а где содержательное обьяснение того что ты задал гИде


гидето.


ты тока закрепил моё мнение сформировавшееся о тебе. ни о чём. абсолютно ни очём.
скоморох одним словом.

Спустя 47 секунд (9.01.2012 - 23:21) YVSIK написал(а):
Цитата (Игорь_Vasinsky @ 9.01.2012 - 23:16)
YVSIK
ты чё придурок? какие кусты.

я те ни чё не обязан. ты и 1% от моего не показал. тока ахинею какую то несёшь и всё.

а вот это уже хамство с ващей стороны товарищ Игорь_Vasinsky
я тебя ещё никак не называл )) ты спросил я ответил и даже тему сделал чтоб обьяснить в чем я не догоняю вот и смотрю и ничего не вижу.

Спустя 2 минуты, 34 секунды (9.01.2012 - 23:24) caballero написал(а):
как и следовало ожидать, тема свелась к обменом мнениями по принципу - сам дурак.



Спустя 44 секунды (9.01.2012 - 23:24) Игорь_Vasinsky написал(а):
YVSIK
да тебе и не надо. и своими идиотскими усмешками абсолютно не аргумертированными ещё больще хамишь.

Цитата
ты спросил я ответил


чего ты ответил?? гиде гиде... о у нас ох****я коллекия "гиде" в теме про MVC.

(если забуду - модеры процензурьте, но высказаться должен был.)

Спустя 2 минуты, 48 секунд (9.01.2012 - 23:27) Игорь_Vasinsky написал(а):
Цитата
как и следовало ожидать, тема свелась к обменом мнениями по принципу - сам дурак.


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

Спустя 1 минута, 3 секунды (9.01.2012 - 23:28) YVSIK написал(а):
Цитата (caballero @ 9.01.2012 - 23:24)
как  и  следовало  ожидать, тема  свелась  к  обменом  мнениями  по  принципу  - сам  дурак.

во- во ) эт точно
кстати он мне неплохо помогал раньше, вот это у него не отнять,
за то и уважаю , да и знает он на много больше меня , я что просто так старый забывчивый пожилой человек и всего
huh.gif

Спустя 1 минута, 52 секунды (9.01.2012 - 23:30) Игорь_Vasinsky написал(а):
так ну нафига клоунить то старый забывчевый пожелой? чисто опираясь на твои ответы завёлся, чисто на них.

Спустя 7 минут (9.01.2012 - 23:37) YVSIK написал(а):
Свернутый текст
а что это не так?
мне с 1961 года рождения уже 50 лет и у меня дочери столько сколько может твоей жене 21 год и то что я могу забыть что-то и это тож факт только тебя он никаким боком не касем вот и сказал что есть и ничего не придумал ,
а когда дожиешь до моих лет тогда только и поймешь что это такое
не острый ум и слабая мона так сказать память , и как все время вспоминать . рядом с тобой , схватывающего на лету что мне дается с большим трудом

ну ладно !!

Спустя 1 минута, 4 секунды (9.01.2012 - 23:38) johniek_comp написал(а):
Игорь_Vasinsky
Выложи, пожалуйста код своей реализации. Или скинь в скайп.

Спустя 3 минуты, 1 секунда (9.01.2012 - 23:41) Игорь_Vasinsky написал(а):
проехали. мне 30. здесь на форумк нет возростных границ, особеннов в холиваре, особенно в спровоцированном холиваре и уж особенно когда видишь что аппонент по простсту издевается. ни чего личного.

джонек. что выложить? в первых постах есть этталон моей реализации на простом примере

Спустя 4 минуты, 2 секунды (9.01.2012 - 23:45) Игорь_Vasinsky написал(а):
так с задачей исключения логики из шаблона нет....у меня в этом смысле порядок. ну т.е. я просто меняю метки на переменные в моделе, кроме инклудов....

Спустя 23 секунды (9.01.2012 - 23:46) caballero написал(а):
Вообще то если каму интересно есть способы стопроцентного отделения логики от представления.
Парсишь HTML шаблон получаешь DOM и манипулируя содержимымм и атрибутами тэгов строих страницу с данными.
Особенно полезны либы типа phpQuery и QueryPath которые реализуют работу с DOM селекторами аналогичными jQuery


  jQ('#hello').val('Hello  world');




<span id="hello"></span>

Спустя 2 минуты, 50 секунд (9.01.2012 - 23:48) YVSIK написал(а):
докатились !! Игорь это просто набор и всё))
если есть то покажи как это работает
я свой уже показал
а так в твоем примере это просто обрезки из отрывков
Свернутый текст
а что до возраста ты прав тут все могут что им разрешено только не разрешено ))ММ ну ты сам знаешь что не разрешено ))

Спустя 6 минут, 57 секунд (9.01.2012 - 23:55) Игорь_Vasinsky написал(а):
Цитата
докатились !! Игорь это просто набор и всё))
если есть то покажи как это работает
я свой уже показал
а так в твоем примере это просто обрезки из отрывков


ты мне показал ирбис

я тебе показал то что реализовал. всё.

Спустя 4 минуты, 4 секунды (9.01.2012 - 23:59) m4a1fox написал(а):
Фигасе расписали! Неожиданно! smile.gif И приятно! Не читал все, если честно - влом просто. Но первые 3 прочитал... и поддерживаю YVSIK'a если еще не определились.... ИМХО конечно, но модель соединяет в себе controller+view.

Вот ссылка! вики

Спустя 3 минуты, 5 секунд (10.01.2012 - 00:02) johniek_comp написал(а):
m4a1fox
Цитата
модель соединяет в себе controller+view.


так почитай, я юсику это писал, он говорит я не прав!!!
я так и писал как ты говоришь: модель соединяет контроллер и вид вместе!
он говорит бред
Так где ж тогда правда скажите мне!?

Спустя 18 секунд (10.01.2012 - 00:03) caballero написал(а):
Цитата
модель соединяет в себе controller+view

В честь чего?
не хотите задать себе вопрос что это не модель вообще (типа фотомодели) а модель чего то.

И кстати где там по сцылке сказано что модель объединяет в себе.

Спустя 4 минуты, 44 секунды (10.01.2012 - 00:08) m4a1fox написал(а):
Едрид качерижка. Я дико извиняюсь. По не знанию и не опытности не правильно сказал! Прошу прощение. Контроллер всему голова.

Спустя 46 секунд (10.01.2012 - 00:08) m4a1fox написал(а):
Банально, открывает учебник котерова, и смотрим на 985 стр.

Спустя 56 секунд (10.01.2012 - 00:09) SoMeOnE написал(а):
Хотелось бы в этой теме показать пример реализации своих кодов. Довольно похожи на твои коды Игорь_Vasinsky.
Допустим пример вывода публикации
Дико извиняюсь за стиль) Взял куски из готового сайта. Ну так думаю логика понятна.

Свернутый текст

public function article() {
$center = file_get_contents('templates/article.tpl');
$img = empty($this->article['thumb'])? '': '<img src="'.$this->url.'/uploads/news/'.$this->article['thumb'].'" width="263" height="184" class="floatLeft" />';

if ($this->category['type']==0) {
$date = '';
// Bottom block linkes
$parent_id = cmsApi::getNavigationParentId($this->category['id']);
if ($parent_id!=0) {
$categories_id = cmsApi::getNavigationCatId($parent_id);
$cur_id = $this->category['id'];
$other_cat.='<div class="box-link">
<div>
<div class="box-link-in">
<h3>'
.$this->lang_site['see_section'].' "'.$this->category['p_name'].'":</h3>';
foreach ($categories_id as $categorie_id) {
if ($categorie_id==$cur_id) {continue;}
$category = cmsApi::getCatCat('', $categorie_id);
$link = empty($category['sef'])? '': cmsApi::$url.'/'.$category['sef'].'/lang,'.$this->lang.'/';
$other_cat.='<a href="'.$link.'" title="">'.str_replace('<br />', '', html_entity_decode($category['name'])).'</a>';
}
$other_cat.='<div class="clearer"></div></div></div></div>';
}
}

$replacer = array(
'{content}' => $this->lang_site['content'],
'{news}' => str_replace('<br />', '', html_entity_decode($this->category['name'])),
'{title}' => str_replace('<br />', '', html_entity_decode($this->article['title'])),
'{date}'=> $date,
'{site_url}'=>$this->url,
'{lang}'=>$this->lang,
'{path}' => $this->path,
'{img}' => $img,
'{other_link}' => $other_link,
'{other_cat}' => $other_cat,
'{text}'=>strtr($this->article['text'], array(
'{site_url}' => $this->url,
'src="../uploads' => 'src="'.$this->url.'/uploads'
)),
'{urlpath}'=>"{$this->sef},{$this->article['id']}",
'{gallery}' => (!empty($this->article['gid'])? blocks::printInnerGallery(cmsApi::getGallery($this->article['gid'])): '')
);


$center = strtr($center, $replacer);
return $center;
}


ну и получение из базы примерно такое.

public static function getArticle($id, $search = null, $sitemap = null){
global $db_pre, $lang, $show, $lang_id;
if ($sitemap) {
$res = DB::query("select title from {$db_pre}article a where a.status='1' AND a.id='{$id}' AND show_date<=UNIX_TIMESTAMP() limit 0, 1");
if (DB::num_rows($res) == 1) {
$row = DB::fetch_object($res);
$article['name'] = $row->title;
}
}
else {
if (self::$tr) {
$query = "SELECT a.id,tv1.value as title,tv2.value as full, a.gid, a.show_date, a.thumb,tv3.value as name, c.sef
FROM
{$db_pre}translate t
LEFT JOIN
{$db_pre}article a ON a.id=t.ref_id AND t.ref_table='{$db_pre}article' AND t.lang='".self::$lang_id[self::$lang]."'
LEFT JOIN
{$db_pre}translate_value tv1 ON t.id=tv1.tid AND tv1.ref_field='title'
LEFT JOIN
{$db_pre}translate_value tv2 ON t.id=tv2.tid AND tv2.ref_field='full'
LEFT JOIN
{$db_pre}category_article ca ON a.id=ca.aid
LEFT JOIN
{$db_pre}category c ON ca.cid=c.id AND a.status=c.status
LEFT JOIN
{$db_pre}translate t2 ON c.id=t2.ref_id AND t2.ref_table='{$db_pre}category' AND t2.lang='".self::$lang_id[self::$lang]."' AND t2.status=c.status
LEFT JOIN
{$db_pre}translate_value tv3 ON t2.id=tv3.tid AND tv3.ref_field='name'
WHERE a.id='
{$id}' AND c.status='1' AND show_date<=UNIX_TIMESTAMP() LIMIT 0,1";
} else {
$query = "SELECT a.id,a.title,full, a.gid, a.show_date, a.thumb,c.name as name,c.sef from {$db_pre}article a
LEFT JOIN
{$db_pre}category_article ca ON a.id=ca.aid
LEFT JOIN
{$db_pre}category c ON ca.cid=c.id AND a.status=c.status
WHERE a.id='
{$id}' AND c.status='1' AND show_date<=UNIX_TIMESTAMP() LIMIT 0,1";
}
$res = DB::query($query);
if (DB::num_rows($res) == 1) {
$row = DB::fetch_object($res);
$article['id'] = $row->id;
$article['p_name']= $row->name;
$article['sef']= $row->sef;
$article['show_date']= $row->show_date;
$article['thumb'] = $row->thumb;
$article['gid'] = $row->gid;
$article['title'] = ($search) ? strip_tags($row->title) : $row->title;
$article['text'] = ($search) ? strip_tags($row->full) : preg_replace('@(../)?uploads@', self::$url . '/uploads', $row->full);
$article['text'] = strtr($article['text'], array(
'{site_url}' => self::$url
));
$article['link'] = self::$url.'/'.$row->sef.','.$row->id.'/'. self::$_end;
}
}

//print "<!-- \n"; print_r($article); print "\n -->";
return $article;
}



article.tpl
<div class="right-column">
<div
class="breadcrumb"><a href="#" title="">{path}</a></div>
<div
class="box-box">
<p
class="hidden">{content}</p>
{date}
<h2>{title}</h2>
<div
class="cms_area">
{text}
<div style="margin-top:50px;">
{gallery}
</div>
</div>


{other_link}

{other_cat}
</div>
</div>



Оцени Игорь_Vasinsky.
Логика очень похожа. Единственно я никогда не пользовался такими ф-ми как ob_start(); и ...

Спустя 1 минута, 1 секунда (10.01.2012 - 00:10) m4a1fox написал(а):
SoMeOnE
у вас html в методах. Не есть гуд...

Спустя 1 минута, 1 секунда (10.01.2012 - 00:11) m4a1fox написал(а):
caballero
Цитата
И кстати где там по сцылке сказано что модель объединяет в себе.

Уже понял свою нелепость и не знание шаблона mvc!

Спустя 2 минуты, 18 секунд (10.01.2012 - 00:14) johniek_comp написал(а):
user posted image

Посмотрите на рисунок. 2 стрелки ведут на модель.

Спустя 1 минута, 30 секунд (10.01.2012 - 00:15) SoMeOnE написал(а):
Цитата (m4a1fox @ 9.01.2012 - 21:10)
SoMeOnE
у вас html в методах. Не есть гуд...

Так проще и понятно. Это конкретные места которые мне удобней там прогонять. Так как все берется из базы. А в шаблоне глобально подменяется различный контент.

Извините но в Вашей реализации тоже есть недочеты...
ИМХО

Спустя 1 минута (10.01.2012 - 00:16) Игорь_Vasinsky написал(а):
нигде.

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

пттернов то под эту архитектуру хватает.

и что касается моего метода - "толстые тупые уродливые контроллеры"

Цитата
Среднестатистический ТТУК получал данные из БД (используя уровень абстракции базы данных, делая вид, что это модель) или манипулировал, валидировал, записывал, а также передавал данные в вид. Такой подход стал очень популярен потому, что использование таких контроллеров похоже на классическую практику использования отдельного php файла для каждой страницы приложения.


пассивная модель, которая обрела наибольшую популярность среди начинающих прораммистов в связи их не опытности.

Спустя 26 секунд (10.01.2012 - 00:16) YVSIK написал(а):
johniek_comp !!!!!!!
гЫ какаято смесь бульдога с насорогом
все куче черт ногу сломит
ну хоть это хотя и работает
public static function.............
по определения не верно впрочем счас тебя Игорь поправит
и коментерии если таковые есть надо показывать ещё раз
этим и отличается программист от не программиста
что все у него на своих местах
это ты пока можешь разобрать что сам свалял , дык другого и слова не найти чтоб было полмЯчее

Спустя 13 секунд (10.01.2012 - 00:17) caballero написал(а):
Цитата
Посмотрите на рисунок. 2 стрелки ведут на модель.


чтрелок там до фига и что подразумавет тнаправление стрелки то же непонятно
Это самая общая картинка по ней вообще ни о чем судить нельзя

Спустя 2 минуты, 24 секунды (10.01.2012 - 00:19) SoMeOnE написал(а):
YVSIK
А это пока не готовый сайт. И не тебе мне говорить кто программист, а кто нет. laugh.gif

Я уже увидел как ты с Игорем спорил. И посмотрел на "твои" коды.

Спустя 9 секунд (10.01.2012 - 00:19) m4a1fox написал(а):
SoMeOnE
Цитата
Извините но в Вашей реализации тоже есть недочеты...

Можно ваши замечания. Я учусь, поэтому важно знать. Какие конкретно места. Если конечно не трудно и не в лом. Спасибо.

Спустя 52 секунды (10.01.2012 - 00:20) YVSIK написал(а):
[bSoMeOnE]SoMeOnE [/b] а как ты засунул ДИВЫ в класс мне это не понятно тут бьются чтоб вывести логику за пределы вывода а ты наоборот в логику ещё и вид засунул biggrin.gif biggrin.gif

Спустя 29 секунд (10.01.2012 - 00:21) caballero написал(а):
Цитата
модель по определение - это всего лишь представление работы контроллера и вида, она не содержит вид, но реагирует на данные пользователя, а как произвести эту виазулизацию - говорит контроллер.


Модель по определению - это модль ДАННЫХ и никакого отношения ни к контроллеру ни к виду не имеет. Поэтому на кртинке выше - три ОТДЕЛЬНЫХ кубика а не один в другом

Спустя 47 секунд (10.01.2012 - 00:21) YVSIK написал(а):
гы два орла и я вас перпутал

Спустя 2 минуты, 26 секунд (10.01.2012 - 00:24) caballero написал(а):
Цитата
гы два орла и я вас перпутал


надеюсь те что летают а не те что скалы обсирают biggrin.gif

Спустя 30 секунд (10.01.2012 - 00:24) johniek_comp написал(а):
YVSIK
Какие классы, какие дивы?

Спустя 2 минуты, 13 секунд (10.01.2012 - 00:27) Игорь_Vasinsky написал(а):
путаешь ты меня, может я не так донёс мысль или т не так принял.

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


чё опять пальцем в небо?

Спустя 1 минута, 41 секунда (10.01.2012 - 00:28) YVSIK написал(а):
SoMeOnEизвиняй я так все перпутал
а тема не про то что показать свои классы они тут не причем
ту причем модель MVC
моя вот так звучит
С-controller---(контроллер) ____принимает и передает
M-model-------(модель) _______обрабатывает, собирает сайт в единое целое
V-view --------(представление)_представляет, выводит на экран монитора

Спустя 1 минута, 1 секунда (10.01.2012 - 00:29) m4a1fox написал(а):
johniek_comp
Цитата
Какие классы, какие дивы?

наша песня ХАРАША! Начинай сначала!

Спустя 55 секунд (10.01.2012 - 00:30) Игорь_Vasinsky написал(а):
во всяком случае на этом построена концепция моей реализации.


ювсик..еслиб ты хоть на грамм больше понимал об этом каждый раз говоря

С-controller---(контроллер) ____принимает и передает
M-model-------(модель) _______обрабатывает, собирает сайт в единое целое
V-view --------(представление)_представляет, выводит на экран монитора



ты бы стал вторым твином, но так как этого не произошло - делаем выводы.


Спустя 18 секунд (10.01.2012 - 00:30) YVSIK написал(а):
johniek_comp biggrin.gif biggrin.gif biggrin.gif это ещё раз я вас спутал с
SoMeOnE
думал это уже ты выложил классы laugh.gif laugh.gif вы-же оба орлЫ!!


таААААААкс уже стали подтягиваться все и кто во что горазд
хорошая тема выходит тут у нас !! biggrin.gif biggrin.gif biggrin.gif

Спустя 1 минута, 10 секунд (10.01.2012 - 00:32) Игорь_Vasinsky написал(а):
YVSIK
Цитата

хорошая тема выходит тут у нас
ты же её говнотечкой нозвал в смсках. решил сам окунуться?

Спустя 2 минуты, 29 секунд (10.01.2012 - 00:34) caballero написал(а):
Цитата
С-controller---(контроллер) ____принимает и передает
M-model-------(модель) _______обрабатывает, собирает сайт в единое целое
V-view --------(представление)_представляет, выводит на экран монитора


Звучит сомнительно.
ЧТО в каждом конкретном случае принимает, передает, обрабатывает , представляет и собирает.

Спустя 9 секунд (10.01.2012 - 00:34) SoMeOnE написал(а):
Цитата (YVSIK @ 9.01.2012 - 21:20)
[bSoMeOnE]SoMeOnE [/b] а как ты засунул ДИВЫ в класс мне это не понятно тут бьются чтоб вывести логику за пределы вывода а ты наоборот в логику ещё и вид засунул  biggrin.gif  biggrin.gif

Если бы Вы немного разбирались в структуре MVC. и поработали бы на нескольких работах с разными людьми и соответственно разными взглядами (не совсем глобально конечно), то понели бы больше. А сейчас бесмысленно разговаривать на эту тему.
Не обижайтесь. Вы помоему старше меня на очень много лет. И совсем не хочется грубить.
Спорить с Вами.

Я ни в коем случае не хочу сказать, что я крутой программист. Всего лишь пол года работаю в "боевых условиях". Успел познакомиться как действительно работают.
А я всего лишь начинающий. Еще толком ничего не знаю.
Но Вы очень много иронизируете, не понимая сути. Основываясь только на учениях ирбиса.

Спустя 45 секунд (10.01.2012 - 00:35) johniek_comp написал(а):
Вы все говорите правильно про эту MVC, но разными словами как-то, и почему-то не понимаете друг друга, вы бы вчитались что пишет YVSIK
Игорь_Vasinsky они оба правы насчет MVC!
Вроде такого:
-солнце светит днем
- нет, ты не прав, солнце может светить только днем

Спустя 24 секунды (10.01.2012 - 00:35) YVSIK написал(а):
не так не называл
Цитата
ты же её говнотечкой нозвал

ещё все на местах в СМСсках посмори и убедись

Спустя 1 минута, 11 секунд (10.01.2012 - 00:37) Игорь_Vasinsky написал(а):
Цитата
Основываясь только на учениях ирбиса.
игнорируя их и постоянно виляя заученной записанной фразой в 3 строки про MVC laugh.gif

Спустя 59 секунд (10.01.2012 - 00:38) Игорь_Vasinsky написал(а):
Цитата
а так что там дано все это жидковато

Цитата
а в теме не небуду боле пусть сам выпла=ывает что сам и наколбасил

речь о шоколаде.

Спустя 1 минута, 49 секунд (10.01.2012 - 00:39) YVSIK написал(а):
Цитата (Игорь_Vasinsky @ 10.01.2012 - 00:37)
Цитата
Основываясь только на учениях ирбиса.
игнорируя их и постоянно виляя заученной записанной фразой в 3 строки про MVC laugh.gif

а что можно ещё выжить из трех букввок? что?Т
целое сочинение?
ну))



тихо крышею шурша Крыша едет не спеша !!

Спустя 3 минуты, 59 секунд (10.01.2012 - 00:43) Игорь_Vasinsky написал(а):
вообщем я тебе так скажу старый пожелой человек - ты вполне заслуживаешь того к себе отношения - которое заслуживаешь.

Спустя 9 минут, 28 секунд (10.01.2012 - 00:53) m4a1fox написал(а):
Я повторюсь!
Цитата
SoMeOnE
Цитата
Извините но в Вашей реализации тоже есть недочеты...

Можно ваши замечания. Я учусь, поэтому важно знать. Какие конкретно места. Если конечно не трудно и не в лом. Спасибо.


Спустя 2 минуты, 30 секунд (10.01.2012 - 00:55) SoMeOnE написал(а):
Вот эти моменты очень не читабельны

public function __construct($M4A1_DB_TYPE, $M4A1_DB_HOST, $M4A1_DB_NAME, $M4A1_DB_USER, $M4A1_DB_PASS){
parent::__construct($M4A1_DB_TYPE . "::host=". $M4A1_DB_HOST ."; dbname=".$M4A1_DB_NAME, $M4A1_DB_USER, $M4A1_DB_PASS, $this->options);
}
$db = new Database(M4A1_DB_TYPE, M4A1_DB_HOST, M4A1_DB_NAME, M4A1_DB_USER, M4A1_DB_PASS);


В классе базы данных должен храниться общий метод выборки из базы. Что то вроде этого
Свернутый текст
public static function sqlSelect($what, $from = null, $where = null, $order = null, $start = null, $end = null, $debug = false) {
if (! empty($where)) {
$where = ' WHERE ' . $where;
}
if (! empty($order)) {
$order = ' ORDER BY ' . $order;
}
if (! empty($end)) {
if (! empty($start)) {
$limit = ' LIMIT ' . $start . ', ' . $end;
} else {
$limit = ' LIMIT ' . $end;
}
}

if (! empty($from)) {
$from = ' FROM ' . $from;
}
if ($debug) {
echo "<pre>\n SELECT ".$what.$from.$where.$group.$order.@$limit."\n</pre>\n";
}
$result = self::query('SELECT ' . $what . $from . $where . $order . @$limit);
return $result;
}


А уже из модели или как там это назвается (я лично запутался как это называется ) ) нужно вызывать со своими параметрами данные из базы.
подключение шаблона внутри ф-ии бд вообще не вписывается в логику.

А вообще я не еще не том уровне, что бы давать оценку. Сам впринципе начинающий по- большому счету. Вот только повезло работаю.
Потому что вначале вообще без опыта работы очень сложно найти работу, особенно в моем городе).

UPD
Извини, что поздно ответил. В этой теме труднее рзобраться, чем в MVC :lol:
Я думаю можно на ты) Мы кстати в один день зарегистрированы на форуме)))


UPD
Хотя нет. Сейчас заметил. Ты раньше)

Спустя 1 минута, 54 секунды (10.01.2012 - 00:57) m4a1fox написал(а):
SoMeOnE
Ok

Спустя 3 минуты, 40 секунд (10.01.2012 - 01:01) johniek_comp написал(а):
а зачем делать вот такую штуку
public function __construct($M4A1_DB_TYPE, $M4A1_DB_HOST, $M4A1_DB_NAME, $M4A1_DB_USER, $M4A1_DB_PASS){
parent::__construct($M4A1_DB_TYPE . "::host=". $M4A1_DB_HOST ."; dbname=".$M4A1_DB_NAME, $M4A1_DB_USER, $M4A1_DB_PASS, $this->options);
}
$db = new Database(M4A1_DB_TYPE, M4A1_DB_HOST, M4A1_DB_NAME, M4A1_DB_USER, M4A1_DB_PASS);


ради простого подключения в базе? или ты что бы научится?

Спустя 1 минута, 39 секунд (10.01.2012 - 01:03) m4a1fox написал(а):
johniek_comp
C PDO познакомься!

Спустя 9 минут, 35 секунд (10.01.2012 - 01:12) YVSIK написал(а):
SoMeOnE тут разговор не про классы и их реализация как таковая,
тут идет разговори про модель МВЦ вот хочешь и применяй их там если есть ахота )) только эти классы не продвинули тему про МВЦ
самое время показать свою модель а не вырезку
покажи свою структуру если это и есть структура этот класс то распиши Где и что и как работает )
а то влетел выдал класс чтоб остальным было ещё непонятней про что речь и давай подерживать беседу )) не про что !

повторюсь тема про структуру MVC
вот и будем ждать кто сможет объяснить её, эту структуру а не отдельный класс

а что до кода это просто
любой начинающий или нет прогер должен )) нет)) он просто обязан выработать свой стиль коддинга а не кашу

Спустя 2 минуты, 50 секунд (10.01.2012 - 01:15) johniek_comp написал(а):
m4a1fox

это штука что бы с разными БД работать? а зачем разные? с мускулом дружишь и норм. или в ней есть что-то коварное?

Спустя 4 минуты, 16 секунд (10.01.2012 - 01:19) m4a1fox написал(а):

Спустя 42 секунды (10.01.2012 - 01:20) m4a1fox написал(а):
YVSIK
Цитата
любой начинающий или нет прогер должен )) нет)) он просто обязан выработать свой стиль коддинга а не кашу

Аминь! rolleyes.gif

Спустя 2 минуты, 12 секунд (10.01.2012 - 01:22) Winston написал(а):
Спасибо - поржал biggrin.gif laugh.gif
Вот это отожгли Игорь_Vasinsky и YVSIK ппц... laugh.gif laugh.gif laugh.gif

Спустя 1 минута, 28 секунд (10.01.2012 - 01:24) caballero написал(а):
Цитата
вот и будем ждать кто сможет объяснить её, эту структуру

Долго придется ждать.
Еше раз - MVC в общем виде это даже не структура а просто принцип. Возник задолго до веба, разумеется.
Дальше речь идет о реализации. MVC паттерн - одна из реализций и то там множетво разновидностей.
Вопросы которые возникают вызывают холиввары постоянно . Наприме что такое модель (М)
Должна ли модель данных содержать и методы работы с ними (работу с БД) или нет. То есть "тонкая" или "толстая" модель. Если тонкая , что ближе к понятию модель как принципа, то где должны быть методы работы с данными в контролере или виде. Оба варианта имеют место быть. Либо контроллер дергает данные и скармливает виду, либо вид сам вынимает себе данные. Однако же функции обновления модели логичнее передать в контроллеер а функции выборки в вид. но тогда получается размазанная логика.
А если модель "толстая" тот кто ею управляет - контроллер или вид. Можно так и так.
Шаблонизаторы к MVC непосредственно отношения не имеют - но все их туда норовят воткнуть.
А еще как не крути нужен роутер (или суперконтроллер который все собирает в кучу). Куда его отнести.

И т.д. и т.п.

Спустя 2 часа, 23 минуты, 59 секунд (10.01.2012 - 03:48) Invis1ble написал(а):
Цитата
вывести данные в таблицу что бы в контроллере не было верстки вообще?

все комменты пока не читал, но всё делается элементарно (код естественно сферический и в вакууме, поэтому сильно упрощен):
контроллер:
// получаем необходимые для представления данные, основываясь на запросе клиента
$data = getData();
// эта часть кода может находиться в другом месте, например в роутере
include 'view.php'; // (echo file_get_contents(); и еще 100500 способов)

модель:
function getData() {
$result = mysql_query('select * from `table`');
$data = array();
while ($row = mysql_fetch_assoc($result))
$data[] = $row;

return $data;
}

представление (view.php):
<?php foreach ($data as $item) : ?>
<!-- тут будет html, а var_dump() просто для наглядности -->
<?php var_dump($item) ?>
<?php
endforeach ?>


PS. Почитал все комменты. Как я понял - у большинства отписавшихся каша в голове касательно MVC. В целом согласен с последним постом caballero.

Спустя 3 часа, 57 минут, 33 секунды (10.01.2012 - 07:45) Игорь_Vasinsky написал(а):
ща твин подведёт итого.

Спустя 34 минуты, 54 секунды (10.01.2012 - 08:20) twin написал(а):
Цитата (Игорь_Vasinsky @ 10.01.2012 - 04:45)
ща твин подведёт итого.

Неа. Итог подвести невозможно. Я сто раз писал уже и устал. Даже тот, кто придумал аббревиатуру MVC ни за что не сможет толком объяснить, что это такое. Каждый решает для себя. Придумал себе схему, обманул себя, что это MVC и можешь смело гордится, что ты профессионал и научился-таки чего-то там делить. А остальные - лохи. Или не используют MVC или используют не правильно. На самом деле правильно понимать и использовать эту.... я даже не могу архитектурой назвать, не то что паттерном, хрень - тоже самое, что правильно плавать. Как правильнее - кролем или брасом? А может на спине? Главное не утонуть, а оно не тонет)))

Что касается сабжа - как не крутите, как не изгаляйтесь суррогатами как смарти (тот еще шедевр), логики из шаблонов не убрать. Это невозможно по определению на динамических сайтах. Так а какого тогда рожна менять шило на мыло? Обычный foreach на foreach смарти? Есть нативный синтаксис, это классика. Все остальное - говнокод. Ибо засерает чистый код какашками суррогатных тегов.

Спустя 40 минут, 10 секунд (10.01.2012 - 09:00) Игорь_Vasinsky написал(а):
Цитата
Так а какого тогда рожна менять шило на мыло? Обычный foreach на foreach смарти? Есть нативный синтаксис, это классика. Все остальное - говнокод. Ибо засерает чистый код какашками суррогатных тегов.


это всё верно, с этим мы уже с середины темы не спорим.

тока логику можно убрать из шаблона - но тогда вёрстка в контроллере появляется - это на моём примере.

Спустя 3 минуты, 42 секунды (10.01.2012 - 09:04) Invis1ble написал(а):
имхо, геморрой связанный с полным исключением логики из представления не стОит того

Спустя 19 минут, 28 секунд (10.01.2012 - 09:23) Игорь_Vasinsky написал(а):
да. знаю. во всё виновато ошибочное мнение о понятии MVC, т.е слишком буквальное понятие всего этого. , да и редактор хреново синтаксис PHP подводит в tpl файлах

Спустя 22 минуты, 52 секунды (10.01.2012 - 09:46) Invis1ble написал(а):
не знаю как в твоем редакторе, я в NetBeans своем настроил за 2 минуты подсветку синтаксиса в .tpl

Спустя 15 минут, 8 секунд (10.01.2012 - 10:01) SoMeOnE написал(а):
А я с tpl файлами всегда в нотепад работаю, используя синтаксис html.
Он летает в плане скорости. Очень удобно работать.

Спустя 57 минут, 20 секунд (10.01.2012 - 10:59) caballero написал(а):
вобще то я приводил пример как можно убрать логику с шаблона полностью. Наверно некоторые были заняты - обзывли друг друга обидными словами

Спустя 6 минут, 35 секунд (10.01.2012 - 11:05) Invis1ble написал(а):
caballero
я прочитал твой пример (оригинально smile.gif), только не понимаю зачем нужны такие извращения.

Спустя 31 минута, 58 секунд (10.01.2012 - 11:37) twin написал(а):
Как зачем))) Убрать логику из шаблона. Нет шаблона - нет логики. Нет человека - нет проблем)))

Спустя 2 минуты, 38 секунд (10.01.2012 - 11:40) Игорь_Vasinsky написал(а):
как вариант решения для моей задачи

Спустя 1 минута, 22 секунды (10.01.2012 - 11:41) Invis1ble написал(а):
получается, мы убираем логику, чтобы убрать логику, а то что мы нагружаем клиента и жрем дополнительный трафик (заголовки) - это нас не касается smile.gif

Спустя 1 минута, 20 секунд (10.01.2012 - 11:43) Игорь_Vasinsky написал(а):
а как же буферизация?

Спустя 1 минута, 39 секунд (10.01.2012 - 11:44) Winston написал(а):
Цитата (Invis1ble @ 10.01.2012 - 10:41)
получается, мы убираем логику, чтобы убрать логику, а то что мы нагружаем клиента и жрем дополнительный трафик (заголовки) - это нас не касается

Пофиг на клиента, главное, что мы круто написали biggrin.gif

Спустя 40 минут, 42 секунды (10.01.2012 - 12:25) killer8080 написал(а):
Цитата (Invis1ble @ 10.01.2012 - 10:41)
а то что мы нагружаем клиента и жрем дополнительный трафик (заголовки) - это нас не касается

Вообще то Cabalero говорил о phpQuery, не путайте с jQuery wink.gif
Но в любом случае это изврат похлеще смарти smile.gif

Спустя 3 минуты, 22 секунды (10.01.2012 - 12:28) Invis1ble написал(а):
Цитата (killer8080 @ 10.01.2012 - 11:25)

Цитата (Invis1ble @ 10.01.2012 - 10:41)
а то что мы нагружаем клиента и жрем дополнительный трафик (заголовки) - это нас не касается

Вообще то Cabalero говорил о phpQuery, не путайте с jQuery 
Но в любом случае это изврат похлеще смарти

точно, прошу прощения, провтыкал... ph34r.gif
Все равно, минусов у такого подхода наверное больше, чем плюсов.

Спустя 28 минут, 7 секунд (10.01.2012 - 12:56) SlavaFr написал(а):
Игорь_Vasinsky тебе пытались уже сказать, что темплаты не являются неприемлимой частью концепта MVC и я с этим тоже согласен. Вид (View) не обязательно представлять в виде темплаты. Рассматривай View как обычный скрипт, который занимается только тем, чтоб вывести output в подходящем для тебя виде.
Давай попробуем разабратся почему собственно возникла идея MVC. Ведь это делали не просто чтоб скрипт на несколько частей поделить, а для того, чтоб эти чати можно было реальо многократно использовать.

Давай ответить на такие вопросы
1)Является ли к примеру PDF или опрдеделенная картинка в формате jpg или flash Видом(View)?
Да, 100% является, но избавится от пхп в таких Видах(View) не получится. Да собственно зачем от них избавлятся то?
Заявления, что Дезайнеры не в сотоянии понять PHP-выражения в HTML не убедительное, так как тот kто не понял <?php foreach{ ?> с таким же успехом не поймет и {foreach}.
Опыт паказывает что в конечном итоге мы берем сами участки хтмл-темплат и встовляем туда циклы и условия, так что для меня и для многих других применение кода в View-скриптах обсолютно оправданно.
До тех пор, пока скрипт занимается формированием оутпута не вникая в то от куда взялись переданные ему переменные он в праве называтся View не зависемо от того используеш ли ты для этого темплат-систему или скрипт.
Я в общем ни чего против темплат не имею, но хотел бы иметь для этого основания.
Например "нехочу видеть пхп в хтмл" это для меня не основание, а вот если кто то скажет, что благодоря тому, что я напишу {kalenadar} то на этом месте календарь выскочит и если этот вариант мне покажется более простым чем вызывать тот же календарь посредством обектов и методов, то по чему бы и нет?

Спустя 5 минут, 8 секунд (10.01.2012 - 13:02) Игорь_Vasinsky написал(а):
Цитата
что темплаты не являются неприемлимой частью концепта MVC


в моём представлении - это именно шаблоны.

Цитата
Да, 100% является, но избавится от пхп в таких Видах(View)

легко, вот именно php - легко

Спустя 2 минуты, 31 секунда (10.01.2012 - 13:04) twin написал(а):
А зачем?

Спустя 2 минуты, 52 секунды (10.01.2012 - 13:07) SlavaFr написал(а):
Цитата (Игорь_Vasinsky @ 10.01.2012 - 10:02)
Цитата
что темплаты не являются неприемлимой частью концепта MVC


в моём представлении - это именно шаблоны.

Цитата
Да, 100% является, но избавится от пхп в таких Видах(View)

легко, вот именно php - легко

ок,
твое мнение я вижу, мне хотелось бы увидеть обоснование твоего мнения.

Спустя 3 минуты, 38 секунд (10.01.2012 - 13:11) Игорь_Vasinsky написал(а):
да это уже в принципиальный спор перешло.


для чтого чтобы стремиться к "название темы".

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

тут 8 раз написано.

Спустя 1 минута, 2 секунды (10.01.2012 - 13:12) Игорь_Vasinsky написал(а):
было время я и html с php и всё в одном файле, потом с инклудами, - это 3 этап.

Спустя 5 минут, 30 секунд (10.01.2012 - 13:17) caballero написал(а):
Цитата (Invis1ble @ 10.01.2012 - 08:05)
caballero
я прочитал твой пример (оригинально smile.gif), только не понимаю зачем нужны такие извращения.

Вообще то решение опробовано на ряде фреймворков. Конечно оно больше подходит к компонентным фреймворкам (где вписывается вполне логично) и к страницам с насыщеным юзерским интерфейсом. На информационных сайтах где просто выводится поток данных вообще нечего делать чему либо кроме обычного PHP.

Вот представте вам надо отрисовать комбобокс. чтобы указать выделенный элемент нужен цикл чтобы ифом ткнуть где selected. Если это какой то шаблон еще хуже. Какие то самопальные {foreach} начинаются и куча всего.

Гораздо проще что то типа
<?php
jQ("#ComboBox").val(2);
?>

Спустя 51 секунда (10.01.2012 - 13:18) SlavaFr написал(а):
Цитата (SlavaFr @ 10.01.2012 - 10:07)
мне хотелось бы увидеть обоснование твоего мнения.

Цитата (Игорь_Vasinsky @ 10.01.2012 - 10:11)
а тут не чего обосновывать. это моё видиние, к которому я стремлюсь, моё желание видеть всё это максимально раздельно

интерессное обоснование.

Спустя 1 минута, 45 секунд (10.01.2012 - 13:20) Игорь_Vasinsky написал(а):
Цитата
это моё видиние, к которому я стремлюсь, моё желание видеть всё это максимально раздельно

Спустя 2 минуты, 15 секунд (10.01.2012 - 13:22) caballero написал(а):
Цитата
в моём представлении - это именно шаблоны.

Нет - щаблоны никакого отношения не имеют к видам и вообще MVC.
Так же как и PHP не имеет отношения к MVC. Все это существует само по себе даже если где то может комбинироватся.

Спустя 4 минуты, 32 секунды (10.01.2012 - 13:26) SlavaFr написал(а):
Игорь_Vasinsky может тебе лучше в блоге писать чем в форуме? ты ведь все ровно из за твоей целеноправлености сейчас чужое мнение не особо воспринемаеш.

Спустя 7 минут, 47 секунд (10.01.2012 - 13:34) YVSIK написал(а):
Цитата (SlavaFr @ 10.01.2012 - 13:26)
Игорь_Vasinsky  может тебе лучше в блоге писать чем в форуме? ты ведь все ровно из за твоей целеноправлености сейчас чужое мнение не особо воспринемаеш.

поддерживаю полностью и предыдущий пост тем более ,
Свернутый текст
Цитата
Цитата (SlavaFr @ 10.01.2012 - 10:07)
мне хотелось бы увидеть обоснование твоего мнения.

Цитата (Игорь_Vasinsky @ 10.01.2012 - 10:11)
а тут не чего обосновывать. это моё видиние, к которому я стремлюсь, моё желание видеть всё это максимально раздельно

интерессное обоснование.

он выдает желаемое за дейтвительное но ни грамма не показывает эту желаемую действительно в действии
всё время говорю Покажи! как это действует, он нет у него это действует только пока я так и не увидел КАК и где

Спустя 1 минута, 43 секунды (10.01.2012 - 13:36) caballero написал(а):
Цитата
он выдает желаемое за дейтвительное но ни грамма не показывает эту желаемую действительно в действии
всё время говорю Покажи! как это действует, он нет у него это действует только пока я так и не увидел КАК и где

Если бы он знал как оно должно действовать и мог это написать - не начинал бы тему вообще.

Спустя 2 минуты, 58 секунд (10.01.2012 - 13:39) Игорь_Vasinsky написал(а):
по ка что я отвечаю на вопросы, которые задаёшь ты. я не проектирую высоконагруженные проекты, поэтому вполне могу пойти на некие жертвы, так же кроме того как работать с заказами я стараюсь всё больше практиковать для себяЮ расширять кругозор, уже после можно сравнивать что было лучше - до или после. я сам на своей шкуре вижу что - да - действительно, стараясь убрать логику из шаблонов - я делаю больше телодвижений, без которых раньше нормально жил - но так же я вижу порядок в своих файлах, и воспринимаю этока положительный момент.

на данный момент - пример моей реализации меня устраивает более чем, но как я сказал - довелось мне поработать со смарти, отсюда появился интерес именно косаемо вывода работы цикла в шаблон, при этом - не кодя в шаблоне и не размещая разметки в обработчике, к этой моделе у меня ещё и привязывается ajax, который работает со всеми формами (в админке или других разделах).

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

не юзаю джумлу и прочее.

я тока понять не могу - либо вы не углядели мысли в моих постах, либо я вообще не понял что вы хотите услышать.

а для ювсика, этого пожелого старого человека, твои подковыривания вообще не уместны - так как ты бум-бум вообще. как я уже писал - скоморох.


 ! 

М
Не нужно оскорблять других форумчан, тем более на людях, переносите свой срач в личку
Invis1ble

Спустя 2 минуты, 49 секунд (10.01.2012 - 13:42) Игорь_Vasinsky написал(а):
Цитата
он выдает желаемое за дейтвительное но ни грамма не показывает эту желаемую действительно в действии
всё время говорю Покажи! как это действует, он нет у него это действует только пока я так и не увидел КАК и где


biggrin.gif ты понимаешь - если тя даже в мои посты с примерами носом тыкать (на первой страницы) - ты там все равно ни чего не увидешь, как и не видел раньше. мне что тебе этот пример на хост залить и на зарегенный домен прикрепить чтоб ты по кликал? или чё?

biggrin.gif яа я ещё вчер его предупредил, что он до бана меня доведёт... а скоморох - это шут, только на нашей родине..

Спустя 12 минут, 49 секунд (10.01.2012 - 13:55) YVSIK написал(а):
Итак с точке входа есть это index.php
ob_start(); 
switch($page)
{
/**
* Подключаем страницу Главная ..................1*/

case '1':
include './modules/page/home.php';
include './skins/page/home.tpl';
break;

$content = ob_get_contents();
ob_end_clean();
/**
* Подключаем главный шаблон
**/

include './skins/index.tpl';

в шаблоне есть только одна переменная )) только одна $content
и весь буфер будет виден через неё в главном шаблоне а вот поменяв это

include './modules/page/home.php'; 
include './skins/page/home.tpl';


всеголишь на один файл которы и называться будет router и поместив в него эти два файла

вот тути будет все подключения,
котроллер
<?php 
/**
* Маршрут для вывода страниц
**/

// берем из контролера его утравляющие элементы
include RYYT.'modules/titles/controller.php';

/**
* Подготовка к выводу переменной
* названия страниц
*/

include RYYT.'modules/titles/view.php';

проверит как пример базу controller.php

?php 
// это сответствие названия страниц (массив)
$hame_p = array (1 =>HOME,
2 =>ENTERPRISET,
3 =>AGENCY,
4 =>SUMMARY,
5 =>LAW,
6 =>SEFRCH,
7 =>AUTHORIZES,
8 =>ENTERPRISET,
9 =>ENTERPRISET,
10 =>PERSONAL,
11 =>TREN
);
$name = $_GET['page']; // берем из урла № страницы!

а дополнительный вывод
include RYYT.'modules/titles/view.php'; 

прицепит небходимый лежащщий в скинах разметrу
и то-же сюда-же добавит
и всё это отработав сложится в той-же переменной $content
а так как все это мы скадываем в буфере оно там и есть
только потом все это выйдет и будет подготовленное к выводу и будет видно
получился внутренний механиз не видимый пользователю но он все отработав соединив и выдал готовую страницу по gравилам которые беруться из путей контроллера и дополнительного выводаи засовывется в одну переменную а она уже и будет видна

Спустя 6 минут, 56 секунд (10.01.2012 - 14:02) Игорь_Vasinsky написал(а):
Цитата
в шаблоне есть только одна переменная )) только одна $content

у тебя да. у меня нет. это видимо по количеству извилин...а может и совпадение.

или потому что ты с ирбиса код выложил, а как чё изменить чтоб их стало 2 не знаешь.

Цитата
include './modules/page/home.php';
include './skins/page/home.tpl';


ну хоть бы на pages папку изменил....

а дальше я не читал, т.к. это ирбис.


Спустя 2 минуты, 46 секунд (10.01.2012 - 14:04) YVSIK написал(а):
это примеры а не точное написание папок и и их названия
тут много чего ещё не хватает
не хватает файла переменных конфига файла функции и тд.

Спустя 1 минута, 30 секунд (10.01.2012 - 14:06) YVSIK написал(а):
вот это ещё раз прочти и не спеши
Цитата
ты ведь все ровно из за твоей целеноправлености сейчас чужое мнение не особо воспринемаеш.

Спустя 7 минут, 33 секунды (10.01.2012 - 14:13) Игорь_Vasinsky написал(а):
Цитата
это примеры а не точное написание папок и и их названия

ну вот по твоему - 100 страниц - 100 папок.

а по моему 1 папка - 100 файлов и все с логичными именами.

Спустя 7 минут, 15 секунд (10.01.2012 - 14:21) YVSIK написал(а):
Игорь_Vasinsky так как ты сделал тему и перепутал кто задает вопросы а кто отвечает ) дою себе слово в эту тему сморю но говорить не буду ни слова
АмЭн user posted image

Спустя 4 минуты, 22 секунды (10.01.2012 - 14:25) Игорь_Vasinsky написал(а):
Цитата
так как ты сделал тему и перепутал кто задает вопросы а кто отвечает

а чё у на ТС обычно сидит и головой качает не произнося не слова?

Спустя 3 минуты, 47 секунд (10.01.2012 - 14:29) Игорь_Vasinsky написал(а):
холивар можно считать законченным и тему закрытой по желанию ТС.

Спустя 25 секунд (10.01.2012 - 14:29) inpost написал(а):
Игорь_Vasinsky
Не понимаю твою ненависть в сторону ирбиса? Я подчерпнул там очень много полезного. Даже если я меняю ту схему в свою, частично она пропитана духом ирбиса.

Спустя 28 секунд (10.01.2012 - 14:30) inpost написал(а):
Закрыть? Эх, а я только пришел...

Спустя 8 минут, 42 секунды (10.01.2012 - 14:38) Игорь_Vasinsky написал(а):
если есть мнение - буду рад.

ирбис я не критикую, у уж темболее не ненавижу biggrin.gif

как ты заметил мой спор в основном с одним старым пожилым человеком, я ему показываю свою реализацию на примере 3х составных частей

он просит комменты - т.к. ....... (меня предупредили) - ну ты понял для чё ему комменты. Но там по факту то комментировать нечегу - уж темболее не каждую строчку. Принцип реализации я описал.

Всё это я делаю - чтобы увидеть его реализацию взамен, хотя знаю что её нету по определению, но хочу чтобы он сам понял что её у него нету.

А он мне готовое с ирбис показывает. Вот и всё.

Спустя 2 минуты, 18 секунд (10.01.2012 - 14:41) inpost написал(а):
Страница№1:
Представь себе, что лишний str_replace будет выполнять у тебя на 1 лишнее действие. К чему панты с {}, когда можно <?=?> , хотя суть от этого меняться не будет, лишние 3 символа, а получаешь прирост в скорости.
Последним шагом я вывод с циклами перенёс в .tpl .
Так вот я это к тому, что индусский код - это и есть попытка 3-х строк заменить на 5-6-7, чтобы больше денюшек получить.

Спустя 3 минуты, 18 секунд (10.01.2012 - 14:44) Игорь_Vasinsky написал(а):
я уже сказал что strtr()

Цитата
Последним шагом я вывод с циклами перенёс в .tpl

в сабже.

выглядит так как будто я постоил дом, покрасил в свой любимый цвет и дверь сделал слева, а ты зашёл - сказал, цвет не тот, а дверь не стой стороны.

не забывай - это мой дом. он что будет меньше меня греть или рассыпиться если он по твоему идеалу не такой?

Спустя 29 минут, 7 секунд (10.01.2012 - 15:13) inpost написал(а):
Игорь_Vasinsky
Ну понятно, "я дурак? Сам дурак!". По твоему последнему сообщению понятно, что тему создал о том, чтобы показать, какой ты молодец, а никто тебя в этом не поддержал. Хотя и лживое название было, что тебе интересно было мнение других smile.gif

Yvsik
Твоей выдержке я завидую. Может жизнь научила, но этого мне сейчас ой как не хватает. Ты и без того забавную тему превратил в блеск! Было весело читать первые 5 страниц.

calbero
Кто хотел, тот увидел. А если "некоторые" не могут найти в стоге сена важную иголку, то это их проблема.

Спустя 2 минуты, 13 секунд (10.01.2012 - 15:15) Игорь_Vasinsky написал(а):
бред ohmy.gif в середины темы есть суть. поищи прежде чем обманывать себя.

Спустя 23 секунды (10.01.2012 - 15:16) Invis1ble написал(а):
А мне вот совсем не забавно читать чужой срач.
Я захожу сюда на форум обычно за новыми знаниями и опытом в сфере программирования, а не личных отношений.

Спустя 3 минуты, 45 секунд (10.01.2012 - 15:19) Игорь_Vasinsky написал(а):
всё зависит от обстаятельств, а тупо улыбаться ему и говорить ему какой он молодец - это же вроде лицимерие. остальное я тебе в лс отписал.

Спустя 16 минут, 32 секунды (10.01.2012 - 15:36) inpost написал(а):
Игорь_Vasinsky
"Хотелось бы в первую очередь увидеть наработки участников вышеуказанной темы." А во вторую и мои. И на заявление:
Каждый день учусь чему-то новому, последним шагом доработки моего движка стало: "Я вывод с циклами перенёс в .tpl".
А ты мне в ответ: "не забывай - это мой дом. он что будет меньше меня греть или рассыпиться если он по твоему идеалу не такой?"

Ну а как я должен к тёркам относиться? Банами махать? В таком случае ты попал бы первее, потому что оскорбления личностного характера будут более тяжелыми, чем офф-топ в тематической теме. В моём представлении об адекватном поведении. К тому же офф-топа у Ювсика было лишь 50%, остальное было по теме.

Спустя 7 минут, 33 секунды (10.01.2012 - 15:43) Игорь_Vasinsky написал(а):
я как посчитал нужным поступить так и поступил.

Цитата
Хотелось бы в первую очередь увидеть наработки участников вышеуказанной темы." А во вторую и мои


а здесь чё ты акцентировал внимание????

ты глянь по теме: гиде гиде гиде... вот я выложил, не хотел так сразу ну вот из за этого товарища пришлось выложит. а от него ... в итоге.... ему оказывается раскоментировать нужно было каждую строку, а после расжёвываний

вообщем стормозил. надо было один раз ответить как следует а не писать писанины на 11 страниц. и тогда тема бы составила стр 3.

Спустя 3 минуты, 40 секунд (10.01.2012 - 15:47) inpost написал(а):
Игорь_Vasinsky
Вернёмся к истокам, ты попросил наработки, я тебе выше скинул свои наработки по этому поводу, а ты сказал, чтобы я не лез в твой огород и мои идеалы - не твой код. Нестыковочка вышла smile.gif

Спустя 9 секунд (10.01.2012 - 15:47) Игорь_Vasinsky написал(а):
а понял. нет. я просто воспринял как критику к моему представлению.

там далее -

Цитата
Так вот я это к тому, что индусский код - это и есть попытка 3-х строк заменить на 5-6-7, чтобы больше денюшек получить.

Спустя 1 минута, 15 секунд (10.01.2012 - 15:49) Invis1ble написал(а):
Peace!
Вобщем давайте прекращать флеймить и ругаться, и если у кого-то есть мысли по делу - пишите smile.gif

Спустя 2 минуты, 47 секунд (10.01.2012 - 15:51) Игорь_Vasinsky написал(а):
Ну выше же неоднократно сказали - что нету смысла в этом. просто - не за чем.

Спустя 3 минуты, 59 секунд (10.01.2012 - 15:55) inpost написал(а):
Игорь_Vasinsky
А, ну так это был аргумент, почему я из похожего на твой код перешел на более связанный код.
Я бы сказал так, разделять надо, но стоит это делать в меру, а не пытаться максимально уменьшить.
Представь, раньше я вставлял в .tpl только echo $table, которую формировал в контроллере, а теперь всё формирование перенёс в .tpl , где контроллер выполняет уже роль получения данных из БД и обработку (где надо!), а уже формирование html кода уже внутри .tpl
Вот пример:
<div class="news_navi">
<
a href="<?php echo href('page=news'); ?>">Все новости</a><br />
<?php while($row = mysql_fetch_assoc($navi_res)) { ?>
<a href="<?php echo href('page=news','sel='.$row['name']); ?>">
<?php echo $row['name']; ?>
</a><br />
<?php } ?>
</div>


Если мы уж четко хотим разделить обязаности верстальщика, то я бы сказал, что пусть верстальщик выучит пару простых комманд типо echo, if,while и всё, а не будет под каждую среду учить свой "огородный смарти".

Спустя 2 минуты, 57 секунд (10.01.2012 - 15:58) Игорь_Vasinsky написал(а):
чя тоже раньше так выводил, но видимо такие фразы как "Логика отдельно Вёрстка - отдельно" и привела именно к моему способы. Временами канешь напрягает стока лишнего писать, но когда ты дописываешь модуль за модулем - я реально вижу что всё по полочкам.

Спустя 5 минут, 46 секунд (10.01.2012 - 16:04) caballero написал(а):
Цитата
  я просто воспринял как критику к моему представлению.

Так предупреждать надо было - не могите критиковать мой дом код.

Цитата
Ну выше же неоднократно сказали - что нету смысла в этом. просто - не за чем.

Смысла нет холиварить что такое MVC а что нет. А реальная проблемма организации вывода данных и по возможности разделения логики и дизайна
все равно остается перед каждым кто пишет сайты.

Спустя 36 секунд (10.01.2012 - 16:05) Invis1ble написал(а):
Цитата
Я бы сказал так, разделять надо, но стоит это делать в меру, а не пытаться максимально уменьшить.

согласен, все хорошо в меру

Цитата
<?php while($row = mysql_fetch_assoc($navi_res)) { ?>

а вот от такого в view меня передергивает, если честно (хоть и повышается производительность)...

Спустя 2 минуты, 54 секунды (10.01.2012 - 16:08) Игорь_Vasinsky написал(а):
Цитата
Смысла нет холиварить что такое MVC а что нет.

я не про это сказал - а про лишние телодвижения при разделении.

Цитата
Так предупреждать надо было - не могите критиковать мой дом код.


а тут чё страшное случилось


Спустя 5 минут, 27 секунд (10.01.2012 - 16:13) caballero написал(а):
Как по мне - в общем виде самый оптимальный способ - это делать как со Смарти но без Смарти.
Выполнил логику - получил некие переменные или массивы с данными.
А потом внедряешь эти переменные в дизайн с помощью старого доброго шаблонизатора по имени PHP.
А если использовать классы то получается еще удобнее.

<span><?= $user->name ?></span>

выглядит не намного сложнее зато никаких промежуточных переменных

Спустя 1 минута, 41 секунда (10.01.2012 - 16:15) inpost написал(а):
Игорь_Vasinsky
Такие фразы и говорят люди, а людям свойственно ошибаться.
Одна религия говорит, что их Бог правильный, другая - их, в итоге получается, что кто-то из них ошибся, при этом на каждой из конкретных территорий общественно принято именно их религию воспринимать как эталон общественного мнения.
В итоге и получается, копаясь во всех этих ошибочных мнениях приходится искать нить реальности.

А "по полочкам" я бы сказал, что это привычка. Если постоянно работаешь в какой-то среде потом жить без неё не можешь, хотя и понимаешь, что возможно есть и лучшие способы. Прямой пример - это та же тема про редирект (моя).

Invis1ble
Это просто старые раны, где суть была не в цикле, который видишь ты, а во всём содержании и быдлокодерстве исполнителей. Тот же смарти нечто похожее имеет {while()} - в таком духе. smile.gif

caballero
Ну и сложный же у тебя ник, пока запомню как писать... "А потом внедряешь эти переменные в дизайн с помощью старого доброго шаблонизатора по имени PHP.", то есть именно то, что я и показал? Вывод циклами и переменные?

Спустя 7 минут, 39 секунд (10.01.2012 - 16:22) caballero написал(а):
Цитата
Ну и сложный же у тебя ник

это по сравнению с, к примеру, m4a1fox


Цитата
то есть именно то, что я и показал? Вывод циклами и переменные?

Естественно
все остальное - это лишние парсеры и прочие прослойки чтобы только заменить тег PHP каким то птичьим языком который все равно чужероден для HTML.
еще можно понять там JSP,рельсы или почивший в бозе colfusion где специфические тэги - часть языка.



Спустя 1 минута, 35 секунд (10.01.2012 - 16:24) inpost написал(а):
caballero
"старого доброго шаблонизатора по имени PHP" не зря говорят, что всё самое ценное лежит перед глазами, но люди просто этого не замечают. Ну а мысль "PHP-шаблонизатор" мне нравится smile.gif

Спустя 1 минута, 45 секунд (10.01.2012 - 16:26) Invis1ble написал(а):
так это не мысль, а изначальная задумка разработчиков, вроде как...

Спустя 3 минуты, 5 секунд (10.01.2012 - 16:29) caballero написал(а):
Цитата
Ну а мысль "PHP-шаблонизатор" мне нравится

Так он и есть стопроцентный шаблонизатор. В общем виде PHP страница - это HTML с внедренными PHP скриплетами. Это относится и к другим подобным решениям в отличие от тех кто выводят HTML как когда то в CGI программах printf("<body>...?").

Поэтому попытки навернуть шаблонизатор над PHP выглядят как минимум странными

Спустя 1 минута, 11 секунд (10.01.2012 - 16:30) inpost написал(а):
Invis1ble
Моя основная проблема в том, что я знаю, но не знаю как это выразить словами. Чем всегда и восхищался Николаем, он так же само мог мою фразу и красиво и понятно расписать.

Спустя 19 минут, 22 секунды (10.01.2012 - 16:49) m4a1fox написал(а):
caballero
Цитата
<span><?= $user->name ?></span>

Поддерживаю! ИМХО! Удобнее и просто!

Спустя 2 часа, 49 минут, 3 секунды (10.01.2012 - 19:38) twin написал(а):
Цитата (inpost @ 10.01.2012 - 13:24)
caballero
"старого доброго шаблонизатора по имени PHP" не зря говорят, что всё самое ценное лежит перед глазами, но люди просто этого не замечают. Ну а мысль "PHP-шаблонизатор" мне нравится :)

Я тебе больше скажу, может это тоже станет откровением. Тот пример, что ты написал выше, вот этот:
<div class="news_navi">
<a
href="<?php echo href('page=news'); ?>">Все новости</a><br />
<?php
while($row = mysql_fetch_assoc($navi_res)) { ?>
<a
href="<?php echo href('page=news','sel='.$row['name']); ?>">
<?php
echo $row['name']; ?>
</a><br />
<?php
} ?>
</div>

есть ни что иное, как старый добрый нативный (native) синтаксис. Разработан именно для того, чтобы использовать PHP как шаблонизатор.

Вообще весь сыр-бор из-за того, что люди ошибочно полагают, что разделение бизнесс-логики с логикой представления (что собственно и призван делать паттерн MVC), это и есть разделение PHP и HTML. Динамические сайты обречены на использование логики представления. В каком виде бы она не была реалзована.

Всяческие извращения типа СМАРТИ - это попытка обмануть окружающих и себя в первую очередь, что они разделились. Пример с велосипедом.

Был велосипед, у которого педали находились непосредственно на переднем колесе. Паук так называемый. (CGI) Чтобы увеличить скорость, переднее колесо делалось огромадным. Что снижало устойчивость и вообще выглядело комично. Потом изобрели цепную передачу. (PHP) Все красиво и функционально. Потом пришел умник и сказал - я вообще рзделю ноги и велосипед. Нафиг крутить педали. И таки разделил. Он дома приделал к велотренажеру динаму, зарядил ей аккумулятор и приделал к велику электромотор.

Все захлопали в ладоши - во как! Он точно разделил ноги с великом - не крутит же педалей!
А на самом деле никто не задумывается, что он до того всю ночь эти педали крутил дома, теряя кучу энергии, да и вся его конструкция сложна и ненадежна. Но это же фигня! Главное результат. Есть разделение!

Писать шаблонизатор на шаблонизаторе - маразм. Сто раз говорил. Так дойдем до того, что начнем делить HTML и СМАРТИ-синтаксис каким-нибудь сверхшаблонизатором.

Спустя 35 минут (10.01.2012 - 20:13) waldicom написал(а):
Цитата (m4a1fox @ 10.01.2012 - 14:49)
caballero
Цитата
<span><?= $user->name ?></span>

Поддерживаю! ИМХО! Удобнее и просто!

И так до первого нормлаьно настроенного php, где не разрещены короткие теги.
А если это еще продукт для общественности, то вообще не хорошо.

Спустя 10 минут, 31 секунда (10.01.2012 - 20:24) caballero написал(а):
Цитата
И так до первого нормлаьно настроенного php, где не разрещены короткие теги.

во первых это просто пример а во вторых короткие тэги я себе разрешаю сам в файле .htaccess. Во всяком случае пока мне не назовут убедительную причину почему они должны быть длинными.

Цитата
А если это еще продукт для общественности, то вообще не хорошо.

Это о чем ваще?


Спустя 1 час, 43 минуты, 45 секунд (10.01.2012 - 22:08) sebastjan написал(а):
Цитата
во первых это просто пример а во вторых короткие тэги я себе разрешаю сам в файле .htaccess. Во всяком случае пока мне не назовут убедительную причину почему они должны быть длинными.

Мне тоже нравятся короткие теги и я их использую, гораздо компактней выглядит.
Цитата

А если это еще продукт для общественности, то вообще не хорошо.

сказал caballero - укомплекторванно файлом .htaccess с разрешением.



Спустя 1 минута, 5 секунд (10.01.2012 - 22:09) bodja написал(а):
Ну вот ,я опять пропустил интересный холивар. laugh.gif
На работе инет вырубили.

Кароче,я так понял чо такое MVC так до конца никто и не знает ,
зато скока трепу было,
ну и аминь biggrin.gif
Я не пользуюсь MVC и пока меня это радует.

Начет вывода типа
Цитата
<a href="<?php echo href('page=news'); ?>">Все новости</a><br />

На фронт-енде есть такое понятие как инлайновая запись типа.
Цитата
<div style="тра-та-та" onClick="тра-та-та""></div>

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

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

Спустя 15 минут, 16 секунд (10.01.2012 - 22:24) sebastjan написал(а):
Не нашол для себя причины использования MVC в том понимании что на Ирбисе.
Хотя не утверждаю что всё до конца понял, просто нет такой надобности.
Но приобрёл очень важные знания, спасибо ИРБИС!
Смущает такое огромное количество вложенности и папок и файлов , для небольшого проэкта получается что количество обслуживающих файлов и папок превышает количество страниц самого сайта.
Не использую ТПЛ, прямиком в ХТМЛ шаблон вставляю РНР и ничего, все работает и просто с точки зрения дизайнера-верстальщика разбираться., чем резать на кучу ТПЛ кусочков.
Тем более если присутствует какой то блок типа формы или иной, пишу в голову скрипт РНР а ниже вывод ХТМЛ блока, не буду вдаваться в подробности и так все поняли, может это и говно-код, но меня устраивает и очень понятен и прост.

Спустя 6 минут, 17 секунд (10.01.2012 - 22:30) killer8080 написал(а):
Цитата (waldicom @ 10.01.2012 - 19:13)
И так до первого нормлаьно настроенного php, где не разрещены короткие теги.

Ага, ты еще php4 вспомни. Эта проблема больше не актуальна. Разработчики php наконец одумались.
Цитата
Замечание:

Начиная с версии PHP 5.4, короткий тег вывода <?= распознается всегда, вне зависимости от значения директивы short_open_tag.

Спустя 33 минуты, 26 секунд (10.01.2012 - 23:04) waldicom написал(а):
Цитата (killer8080 @ 10.01.2012 - 20:30)
Цитата (waldicom @ 10.01.2012 - 19:13)
И так до первого нормлаьно настроенного php, где не разрещены короткие теги.

Ага, ты еще php4 вспомни. Эта проблема больше не актуальна. Разработчики php наконец одумались.
Цитата
Замечание:

Начиная с версии PHP 5.4, короткий тег вывода <?= распознается всегда, вне зависимости от значения директивы short_open_tag.

Спасибо, не знал. rolleyes.gif
Правда все равно остается проблема переносимости.

Спустя 55 минут, 28 секунд (10.01.2012 - 23:59) inpost написал(а):
Свернутый текст
PHP 5.4: "<?= is now always available regardless of the short_open_tag setting".

Update: не смотрел 15-ую страницу... а ответ уже дали smile.gif

Спустя 8 минут, 15 секунд (11.01.2012 - 00:07) caballero написал(а):
Цитата
И ничего страшного ,пользуются,хотя стили и события можно выносить в отдельные файлы.

Это один из приколов. Чего только не придумают чтобы PHP не появился в HTML чего только не пихают туда вместо него. А перемешать с яваскриптом - тоже языком программирования и тоже релизующим логику - тут не проблемма. PHP скриплет видите ли дизайнер не поймет, а кусок DOM возвращаемый аяксом - как два пальца апстол.

Спустя 4 минуты, 30 секунд (11.01.2012 - 00:12) waldicom написал(а):
Цитата (caballero @ 10.01.2012 - 22:07)
PHP скриплет видите ли дизайнер не поймет, а кусок DOM возвращаемый аяксом - как два пальца апстол.

Для дизайнера не важно, как работает ajax, важно, что он работает.
А разбираться в ему логике придется. Те, кто говорит, что смарти отстой, возможно не работали с проектами, в которых конечному пользователю предоставляется возможность писать свои темплейты. В 3ем (3ей?) смарти появилось наследование темплейтов - это фича очень упрощает разработку новых темплейтов пользователем.

Спустя 2 минуты, 24 секунды (11.01.2012 - 00:14) killer8080 написал(а):
Если верстальщик не шарит в программировании, то ему совершенно пофиг что не знать - PHP или Smarty biggrin.gif

Спустя 22 секунды (11.01.2012 - 00:15) SoMeOnE написал(а):
Цитата (caballero @ 10.01.2012 - 21:07)
PHP скриплет  видите ли  дизайнер  не  поймет,  а  кусок  DOM возвращаемый   аяксом - как  два   пальца  апстол.

+1 biggrin.gif laugh.gif


Спустя 4 минуты, 6 секунд (11.01.2012 - 00:19) waldicom написал(а):
Цитата (killer8080 @ 10.01.2012 - 22:14)
Если верстальщик не шарит в программировании, то ему совершенно пофиг что не знать - PHP или Smarty biggrin.gif

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

Спустя 1 минута, 49 секунд (11.01.2012 - 00:21) SoMeOnE написал(а):
waldicom
Я видел дизайнеров которые html 5 бояться, не то что всяких шаблонизаторов...)

В местах где я работал и рботаю, дизайнен только верстает, и всегда программист разбивает, всталяет и делает все что нужно с этой версткой... Думаю это все же правильней...)

Спустя 2 минуты, 4 секунды (11.01.2012 - 00:23) waldicom написал(а):
Цитата (SoMeOnE @ 10.01.2012 - 22:21)
Я видел дизайнеров которые html 5 бояться, не то что всяких шаблонизаторов...)

Мы же говорим, что лучше и удобнее, а не о том, что кто-то чего-то боится.
Цитата (SoMeOnE @ 10.01.2012 - 22:21)
дизайнен только верстает, и всегда программист разбивает, всталяет и делает все что нужно с этой версткой... Думаю это все же правильней...)

У нас по другому: дизайнер рисует, верстальщик верстает а программист пишет логику и говорит верстальщику, что в такой-то переменной есть такие-то данные. Получается неплохо и каждый занимается своим делом.

Спустя 3 минуты, 28 секунд (11.01.2012 - 00:26) killer8080 написал(а):
Цитата (waldicom @ 10.01.2012 - 23:23)
У нас по другому: дизайнер рисует, верстальщик верстает а программист пишет логику и говорит верстальщику, что в такой-то переменной есть такие-то данные. Получается неплохо и каждый занимается своим делом

И в чем тут преимущество смарти перед нативным синтаксисом?

Спустя 3 минуты, 15 секунд (11.01.2012 - 00:29) caballero написал(а):
Цитата
Те, кто говорит, что смарти отстой, возможно не работали с проектами, в которых конечному пользователю предоставляется возможность писать свои темплейты.

Работали - нет ничего хуже чем давать пользователю возможность делать свои темплейты.
Да и что он там сможет сделать, кроме сменить немного структуру страницы путем перемещаниея туда сюда кусков HTML и замны логотипа. Дизайнерить он не умеет, поменять логику страницы хоть чуть чуть уже надо программиста звать.

Спустя 20 секунд (11.01.2012 - 00:30) SoMeOnE написал(а):
waldicom
Я представляю выражения лица девушки кодера, которая со мной работает, когда я скажу ей про переменные...))) Завтра обязательно проэксперементирую))) Интересно просто реакция)

Спустя 1 минута, 33 секунды (11.01.2012 - 00:31) inpost написал(а):
SoMeOnE
Я уже пробовал, результат такой: о_О

Спустя 15 секунд (11.01.2012 - 00:31) caballero написал(а):
Цитата
Я представляю выражения лица девушки кодера, которая со мной работает, когда я скажу ей про переменные...))) Завтра обязательно проэксперементирую))) Интересно просто реакция)

А переменные Смарти чем отличаются кроме как формой скобок?

Спустя 1 минута, 46 секунд (11.01.2012 - 00:33) waldicom написал(а):
Цитата (SoMeOnE @ 10.01.2012 - 22:30)
Я представляю выражения лица девушки кодера, которая со мной работает, когда я скажу ей про переменные...)))

Если кодер не знает, что такое переменные, то это не хорошо... И нативный синтаксис тут тоже не поможет.

Спустя 2 минуты, 14 секунд (11.01.2012 - 00:35) waldicom написал(а):
Цитата (caballero @ 10.01.2012 - 22:29)
Работали - нет ничего хуже чем давать пользователю возможность делать свои темплейты.
Да и что он там сможет сделать, кроме сменить немного структуру страницы путем перемещаниея туда сюда кусков HTML и замны логотипа. Дизайнерить он не умеет, поменять логику страницы хоть чуть чуть уже надо программиста звать.

Посмотрите мой пример про электронный магазин. Там цепочка длиннее: 1.фирма, выпускающая магазин, 2. фирма агент/фрилансер, который делает для 3. конечного клиента.
Т.е. 1. дает возможность 2. делать свои темплейты. Для 3. это конечно не важно.

Спустя 2 минуты, 19 секунд (11.01.2012 - 00:38) killer8080 написал(а):
Цитата (waldicom @ 10.01.2012 - 23:35)
Посмотрите мой пример про электронный магазин. Там цепочка длиннее: 1.фирма, выпускающая магазин, 2. фирма агент/фрилансер, который делает для 3. конечного клиента.
Т.е. 1. дает возможность 2. делать свои темплейты. Для 3. это конечно не важно.

Это все понятно, но все же
Цитата (killer8080 @ 10.01.2012 - 23:26)
И в чем тут преимущество смарти перед нативным синтаксисом?


Спустя 1 минута, 50 секунд (11.01.2012 - 00:40) SoMeOnE написал(а):
inpost
Уверен реакция будет такая же)

caballero
А при чем тут переменные смарти. У нас кодер только собирает то, что нарисовал дизайнер.
Переменные, будь они в смарте или в чистом виде вставляет программист

waldicom
Возможно и не хорошо. Логически впринципе согласен. Было бы очень удобно заниматься только кодом и сообщать, что там то то-то хранится, а там то. И вообще не смотреть на выброс. Идилия просто...

Спустя 1 минута, 25 секунд (11.01.2012 - 00:41) waldicom написал(а):
Цитата (killer8080 @ 10.01.2012 - 22:38)
И в чем тут преимущество смарти перед нативным синтаксисом?

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

Спустя 3 минуты, 22 секунды (11.01.2012 - 00:44) caballero написал(а):
Цитата
А при чем тут переменные смарти. У нас кодер только собирает то, что нарисовал дизайнер.
Переменные, будь они в смарте или в чистом виде вставляет программист

То есть смысла в дополнительной прослойке Смарти как и следовало ожидать никакого

Спустя 4 минуты, 12 секунд (11.01.2012 - 00:49) caballero написал(а):
waldicom

и что, каждый день в магазине новый темплейт меняется? Какой смысл лепить их с такой скоростью.

Спустя 2 минуты, 34 секунды (11.01.2012 - 00:51) SoMeOnE написал(а):
Цитата (caballero @ 10.01.2012 - 21:44)
Цитата
А при чем тут переменные смарти. У нас кодер только собирает то, что нарисовал дизайнер.
Переменные, будь они в смарте или в чистом виде вставляет программист

То есть смысла в дополнительной прослойке Смарти как и следовало ожидать никакого

Точно

Спустя 2 минуты, 18 секунд (11.01.2012 - 00:53) waldicom написал(а):
Цитата (caballero @ 10.01.2012 - 22:49)
waldicom

  и  что, каждый  день  в  магазине  новый  темплейт меняется?  Какой  смысл  лепить  их  с  такой  скоростью.

Не каждый день. А пример с переписыванием отдельных блоков? Т.е. в темплейте определяется блок примерно вот так:
{block name="tralala"}
<div>anything</div>
{/block}

Я в своем темплейте просто переписываю/дополняю этот блок. Таким образом достигается тот факт, что магазин можно обновлять хоть каждый день, и мне не нужно каждый раз исправлять все темплейты в ручную.
Если у Вас возникнет вопрос (стиль попытаюсь сохранить): "и че, новые версии выходят каждый день? Какос смысл хреначить эти блоки?", то можно сказать, что и темплейтов может быть не один, да и сопровождать магазин могут уже совершенно другие люди.


Спустя 14 минут, 2 секунды (11.01.2012 - 01:07) caballero написал(а):
Цитата
Я в своем темплейте просто переписываю/дополняю этот блок. Таким образом достигается тот факт, что магазин можно обновлять хоть каждый день, и мне не нужно каждый раз исправлять все темплейты в ручную.

С таким же успехом можно сделать блоки обычными инклудами в PHP.

Цитата
то можно сказать, что и темплейтов может быть не один, да и сопровождать магазин могут уже совершенно другие люди.


какие люди не имет значения - вероятность того что сторонние разработчикии бужут знать PHP гораздо выше чем то что они будут знать Смарти.
И что значит не один темплейт? если это разные магазины то и дизайн там разный изменение в одном месте не поможет.

Как бы там ни было преимущества сомнительные. Сэкономили в целом минут 10 в неделю.

За то при КАЖДОМ запросе страницы в магазин сервер должен подымать такую немаленькую либу как Смарти.

Спустя 3 минуты, 21 секунда (11.01.2012 - 01:11) caballero написал(а):
Мода на Смарти прошла несколько лет назад. Теперь по моему и его разработчики забили на свое детище.

Спустя 3 минуты, 19 секунд (11.01.2012 - 01:14) waldicom написал(а):
Цитата (caballero @ 10.01.2012 - 23:07)
С таким же успехом можно сделать блоки обычными инклудами в PHP.

Пока не пойму, как можно сделать это при помощи include, не изменяя при этом изначальных файлов? Там уже должны быть какие-то include's?

Цитата (caballero @ 10.01.2012 - 23:07)
За то при КАЖДОМ запросе страницы в магазин сервер должен подымать такую немаленькую либу как Смарти.

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

Спустя 2 минуты, 57 секунд (11.01.2012 - 01:17) waldicom написал(а):
Цитата (caballero @ 10.01.2012 - 23:11)
Мода на Смарти прошла несколько лет назад. Теперь по моему и его разработчики забили на свое детище.

Changelog внушает доверие.
А насчет моды... Мода такая штука - смотришь иногда на моделей и думаешь - это реально писец.

Спустя 2 дня, 9 часов, 56 минут, 31 секунда (13.01.2012 - 11:14) minor написал(а):
Не когда не юзаю шаблонизаторы только нативный php во view, альтернативный синтаксис все понятно и быстро работает.


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса