Использование переменных в PHP

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 388
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Использование переменных в PHP

Сообщение Diamock » 28.10.2012 (Вс) 7:48

Здравствуйте Уважаемые!
Имееется PHP-файл:
Код: Выделить всё
<table cellpadding="0" cellspacing="0" width="100%">
   <tr>
      <td height="25" valign="top" width="5">
         <img border="0" src="http://vbrkb.ru/Picture/Forum.Top.Left.png" width="5" height="25" />
      </td>
      <td height="25" background="http://vbrkb.ru/Picture/Forum.Top.Center.png">
         <p id="tabletitle2">Заголовок</p>
      </td>
      <td height="25" align="right" width="5">
         <img border="0" src="http://vbrkb.ru/Picture/Forum.Top.Right.png" width="5" height="25" />
      </td>
   </tr>
</table>

При сборке страницы он будет вставлен c использованием функции Include.
Вопрос таков:
В этой строке <p id="tabletitle2">Заголовок</p>, вместо надписи Заголовок, могут быт другие названия и таких вставок может быть несколько, а тег <p> может менятся на тег <a>. Я понимаю, что нужно объявить переменные и использовать их. Внятной информации по этой теме найти не смог.
Подскажите, как это делается или подпните в нужном направлении, где об этом можно прочесть.
С уважением...
In der Beschrankung zeigt sich erst der Meister
Графоманю...

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Использование переменных в PHP

Сообщение Proxy » 28.10.2012 (Вс) 8:20

Не совсем понял в чём именно состоит проблема.
Вывести значение переменной вместо
<p id="tabletitle2">Заголовок</p>
можно так:
<p id="tabletitle2"><?php echo $Имя_переменной; ?></p>

Можно целиком вместе с <P> генерировать через php, если там что-то меняется.
Follow the white rabbit.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Использование переменных в PHP

Сообщение FireFenix » 28.10.2012 (Вс) 15:40

или
Код: Выделить всё
$tag = 'a';
$tag_content = 'Заголовок';

$content = '<table cellpadding="0" cellspacing="0" width="100%">
   <tr>
      <td height="25" valign="top" width="5">
         <img border="0" src="http://vbrkb.ru/Picture/Forum.Top.Left.png" width="5" height="25" />
      </td>
      <td height="25" background="http://vbrkb.ru/Picture/Forum.Top.Center.png">
         <' . $tag . ' id="tabletitle2">' . $tag_content . '</' . $tag . '>
      </td>
      <td height="25" align="right" width="5">
         <img border="0" src="http://vbrkb.ru/Picture/Forum.Top.Right.png" width="5" height="25" />
      </td>
   </tr>
</table>';

или использовать шаблоны
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 388
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Re: Использование переменных в PHP

Сообщение Diamock » 31.10.2012 (Ср) 4:14

Всем спасибо за ответы. Решил воспользоваться шаблонами.
header.php
Код: Выделить всё
<html>
<head>
<title>
<?php
   print "$PageTitle";
?>
</title>
</head>
<body>
<table width="75%" align=center border=0>
<tr><td align=center><b>Welcome to the Diamock site!</b></td></tr>
<tr><td align=left><p>

footer.php
Код: Выделить всё
</p></td></tr>
<tr><td align=center><small>Copyright 2012</small></td></tr>
</table>
</body>
</html>

index.php
<?php
Код: Выделить всё
$PageTitle="Home Page";
require ("http://vbrkb.ru/phpEx/header.php");
print ("First Page");
require ("http://vbrkb.ru/phpEx/footer.php");
?>

Исходный код страницы в браузере:
Код: Выделить всё
<html>
<head>
<title>
</title>
</head>
<body>
<table width="75%" align=center border=0>
<tr><td align=center><b>Welcome to the Diamock site!</b></td></tr>
<tr><td align=left><p>First Page</p></td></tr>
<tr><td align=center><small>Copyright 2012</small></td></tr>
</table>
</body>
</html>

Не могу понять, почему между тегами <title></title>, ничего нет.
In der Beschrankung zeigt sich erst der Meister
Графоманю...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16474
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Использование переменных в PHP

Сообщение Хакер » 31.10.2012 (Ср) 9:06

Diamock писал(а): print "$PageTitle";

Как такое могло налезть на голову?
Надо писать print $PageTitle, а не то, что у тебя там.

Да, в строках, обрамлённых в двойные кавычки (в противовес одинарным), автоматические подставление значений упомянутых переменных вместо упоминаний переменных — осуществляется. Но использовать это со строкой, в которой кроме имени переменных ничего нет — бред.

И вообще, глупо использовать вот такой блок
Код: Выделить всё
<?php
print $var
?>

для вывода значения одной переменной в конкретное место, потому что для этого есть сокращённая форма:
<?= $var ?>


И конечно это совсем не тот механизм шаблонов, который используется в серьёзное работе.
И конечно HTML-коду далеко до валидного.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 388
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Re: Использование переменных в PHP

Сообщение Diamock » 31.10.2012 (Ср) 16:18

Хакер писал(а):Как такое могло налезть на голову?
Надо писать print $PageTitle, а не то, что у тебя там.

Ну это я не сам придумал, а прочитал в книге Основы программирования на php (Ларри Ульмана). Эту книгу я больше в руки не возьму.
Почитал про функции в php. Сделал следующее:
header.php:
Код: Выделить всё
<?
   function head($title) {
?>

<html>
<head>
<title><? print $title ?></title>
</head>
<body>
<table width="75%" align=center border=0>
<tr><td align=center><b>Welcome to the Diamock site!</b></td></tr>
<tr><td align=left><p>

<?
}
?>

footer.php:
Код: Выделить всё
</p></td></tr>
<tr><td align=center><small>Copyright 2012</small></td></tr>
</table>
</body>
</html>

index.php:
Код: Выделить всё
<?php
$title = "Home Page";
require ('header.php');
head("$title");
print ("First Page");
require ('footer.php');
?>

Код страницы:
Код: Выделить всё
<html>
<head>
<title>Home Page</title>
</head>
<body>
<table width="75%" align=center border=0>
<tr><td align=center><b>Welcome to the Diamock site!</b></td></tr>
<tr><td align=left><p>
First Page</p></td></tr>
<tr><td align=center><small>Copyright 2012</small></td></tr>
</table>
</body>
</html>

Всё работает.
Осталось разобраться с двойными и одинарными ковычками.
Всем спасибо.
In der Beschrankung zeigt sich erst der Meister
Графоманю...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16474
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Использование переменных в PHP

Сообщение Хакер » 31.10.2012 (Ср) 16:24

Всё равно всё это на уровне Hello World и изучения.

Скачай, например, phpBB3, на котором работает этот сайт, и почитай его исходники.

Будет отличный пример того, какой код приводит к какому результату (функционированию этого форума).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Использование переменных в PHP

Сообщение FireFenix » 01.11.2012 (Чт) 0:35

По мне так миксовать PHP и HTML код это Йад, особенно если большая страница, а там ещё может быть JS/Silverligh/Flash/объекты/etc - то становиться полная каша мала.

В качестве простого шаблонизатора - приноровился к вырезки с какого-то интернет проекта.
Код: Выделить всё
  function replace($source , $varname , $vars)
  {
    if (is_array($vars))
    {
      foreach($vars as $key => $value)
       {
         $tag = '{' . $varname . ':' . $key . '}';
         $source = str_replace($tag , $value , $source);
       }
    }

    return $source;
  }

к примеру имеем шаблон
Код: Выделить всё
<head>
    <title>{main:title}</title>
</head>

Использование:
Код: Выделить всё
$main['title'] = 'Страница';

$template = load('main.html'); //некоторая функция загрузки файла шаблона
$template = replace($template , 'main' , $main);
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Использование переменных в PHP

Сообщение Joo » 02.11.2012 (Пт) 8:40

А чем
FireFenix писал(а):
Код: Выделить всё
{main:title}

лучше, чем <?= $main->title ?>?

Вот простейший шаблонизатор:
Код: Выделить всё
function template($tpl_name, $data = array(), $return = FALSE){
  ob_start();
  extract($data);
  include('templates/'.$tpl_name.'phtml');
  if($return){
    return ob_get_clean();
  } else {
    echo(ob_get_clean());
  }
}


вызов:
Код: Выделить всё
$data = array();
$data['main'] = new stdClass();
$data['main']->title = 'Page title';
$data['main']->content = template('hello',array('name'=>'Joo'),TRUE);
template('main', $data);


шаблоны:
hello.phtml:
Код: Выделить всё
<h2>Привет, <?= $name ?></h2>

main.phml
Код: Выделить всё
<html>
<head>
  <title><?= $main->title ?></title>
</head>
<body><?= $main->content ?></body>
</html>
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Использование переменных в PHP

Сообщение FireFenix » 02.11.2012 (Пт) 11:58

Joo писал(а):лучше, чем <?= $main->title ?>?

тем что микс пхп и хтмл, тем что железная переменная $name
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Использование переменных в PHP

Сообщение Joo » 02.11.2012 (Пт) 12:39

FireFenix писал(а):тем что микс пхп и хтмл

А смесь HTML и непонятно чего чем выигрывает перед смесью HTML и PHP?

FireFenix писал(а):тем что железная переменная $name

поясни пожалуйста.
Последний раз редактировалось Joo 02.11.2012 (Пт) 12:48, всего редактировалось 1 раз.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16474
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Использование переменных в PHP

Сообщение Хакер » 02.11.2012 (Пт) 12:45

Я вот считаю, что не надо плохо относиться к способу, предложенному Joo. Но в то же время, если требуется отделение рабочей логики от механизма представления данных, причём разделение с учётом безопасности, то этот способ проигрывает. Иными словами, если вы отдаёте изготовление шаблонов отдельному человеку-дизайнеру, то надо опасаться, что он может внедрить в шаблоны свою server-side-закладку.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Использование переменных в PHP

Сообщение Joo » 02.11.2012 (Пт) 12:58

Хакер писал(а):если вы отдаёте изготовление шаблонов отдельному человеку-дизайнеру, то надо опасаться, что он может внедрить в шаблоны свою server-side-закладку

Вот! Это практически единственный весомый аргумент в пользу шаблонизаторов с собственным синтаксисом, а все аргументы типа "смесь HTML и PHP" и "так верстальщику будет легче" считаю надуманными.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 02.11.2012 (Пт) 13:26

Хакер писал(а):то надо опасаться, что он может внедрить в шаблоны свою server-side-закладку

Можно поподробнее?

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Использование переменных в PHP

Сообщение Proxy » 02.11.2012 (Пт) 14:46

Joo писал(а):Вот! Это практически единственный весомый аргумент в пользу шаблонизаторов с собственным синтаксисом, а все аргументы типа "смесь HTML и PHP" и "так верстальщику будет легче" считаю надуманными.

Почти во всей литературе аргументом в пользу перевеса использования html служит возможность чтения кода верстальщиком без знания php и на том всё. Кажется, что это просто исторически наследуемый тезис, реально имхо гораздо легче читается php со вставками html, css и js даже просто через echo (хотя css само-собой отдельными файлами даже без использования шаблонов, где php вообще редко необходим). Всё равно почти все редакторы вхождения, выделенные знаками ' и " отображает отдельным цветом (а внутри теги всё равно подсвечивать нет смысла, т.к. возвращаться к их просмотру всё равно приходится через тот же Инспектор в уже готовой странице на стороне клиента, чтобы наглядно изменять что-либо в html). Да и верстальщик работает всё равно с макетом, внедрение всё равно работа разовая.
Follow the white rabbit.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Использование переменных в PHP

Сообщение Joo » 02.11.2012 (Пт) 15:11

Qwertiy писал(а):Можно поподробнее?

В моем способе возможно выполнение PHP кода без всякого ограничения. Если отдать разработку шаблона стороннему лицу, это лицо может написать в шаблон зловредный код, который при определенных условиях, будет, к примеру, предоставлять свободный доступ к базе данных или выполнять произвольные команды на сервере.
Это все возможно если слепо довериться верстальщику, и внедрить его шаблон безо всякой проверки.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Использование переменных в PHP

Сообщение Joo » 02.11.2012 (Пт) 15:20

Proxy писал(а):возможность чтения кода верстальщиком без знания php

Самое интересное, что если сайт не полностью статичный, то практически невозможно написать шаблоны на чистом HTML, а это значит, что нужно использовать PHP вставки или какой-то сторонний шаблонизатор со своим собственным синтаксисом и как ни крути, верстальщику придется знать либо PHP либо синтаксис своего шаблонизатора.
Proxy писал(а):имхо гораздо легче читается php со вставками html

Ой, такой вариант не для меня точно.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Использование переменных в PHP

Сообщение FireFenix » 02.11.2012 (Пт) 18:36

Joo писал(а):А смесь HTML и непонятно чего чем выигрывает перед смесью HTML и PHP?

Яркий пример - пару метров кода Веб-магазин под Джумлу. Когда я его открыл... то просто был в шоке от мяса. Я даже без понятия как они сами умудряются в нём ориентироваться.
Дикий микс пхп кода с хтмл. Мало обычных конструкций с выводом, так ещё и запросы к бд и прочий хлам.
Более того, через пару лет если обратно вернуться к этому проекту микса, то понять смысл происходящего будет очень трудно.

"Хороший код этот не тот который может проглотить компилятор, а тот который может прочесть и понять другой программист" (c)

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

Мой пример + шаблон внутри шаблона
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Использование переменных в PHP

Сообщение Proxy » 02.11.2012 (Пт) 19:09

FireFenix писал(а):Мало обычных конструкций с выводом, так ещё и запросы к бд и прочий хлам.

Что? :) Каждый запрос в отдельную функцию? Это какой же код выйдет огромный. Да и чем они ограничивают читаемость кода? Да и какие тут могут быть альтернативы вообще?

FireFenix писал(а):Более того, через пару лет если обратно вернуться к этому проекту микса, то понять смысл происходящего будет очень трудно.

А что насчёт рациональности применения UML к php? Просто сильно уж сложная структура выходит в любом случае с php, я не видел ещё ни разу что-либо удобочитаемое на php (и благодаря своему небольшому опыту так и не нашёл среду, в которой была бы и удобная подсветка синтаксиса и просмотр связей между модулями (и не только) с возможностью навигации). UML всегда и везде удобен, а тут ряд диаграмм применить вообще неплохо было бы. Жаль нет среды, совмещающий подсветку синтаксиса php, UML "что-то типа отчёты" (хотя бы диаграммы классов, компонентов и коопераций) и удобную навигацию (чтобы отойти от представления в виде директории ФС, так модули должны идентифицироваться только самим интерпретатором, а в среде должны отображаться хотя бы произвольные псевдонимы без иерархии).
Весь мой опыт общения с PHP всегда связан с огромной необъятной кучей вкладок в notepad++, ручной синхронизацией локальной и удалённой файловой директории (всегда лишние телодвижения со SmartFTP или FileZilla, ибо до организации автоматической синхронизации без глюков (спасибо сюрпризам ftp протокола) так до сих пор руки не дошли). Неплохо бы найти какую-нибудь среду, которая эти аспекты учитывает.
Последний раз редактировалось Anonymous 02.11.2012 (Пт) 19:40, всего редактировалось 1 раз.
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16474
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Использование переменных в PHP

Сообщение Хакер » 02.11.2012 (Пт) 19:28

Proxy писал(а):Каждый запрос в отдельную функцию?

Уж точно запросы должны быть отделены от «представления».
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Использование переменных в PHP

Сообщение Proxy » 02.11.2012 (Пт) 19:51

Хакер писал(а):Уж точно запросы должны быть отделены от «представления».

А что есть представление? Форма постинга, например, сама-по себе рассматривается как минимальный элемент представления или нет? Если да, то вполне допускаю без избыточности вложенности использовать в ней наряду с отображаемыми пользователю элементами страницы, запросы.
В общем я стараюсь придерживаться использования include не более двух раз в глубину (ну или аналогичного использования функций, возвращающих html код какого-либо элемента). А дробить код до такой степени, чтобы помещать в тело отдельной функции один лишь запрос не вижу смысла (нужно остановиться ровно на один шаг до этого имхо).
Последний раз редактировалось Anonymous 02.11.2012 (Пт) 19:58, всего редактировалось 1 раз.
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16474
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Использование переменных в PHP

Сообщение Хакер » 02.11.2012 (Пт) 19:52

—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Использование переменных в PHP

Сообщение Proxy » 02.11.2012 (Пт) 20:14

хм. А что есть представление в данном контексте?
Смотри, такая вот структура:
есть index.php, который через include включает header.php, main.php, footer.php, обработчик формы авторизации, модуль подключения к СУБД и пр.
main.php удобочитаем с точки зрения html, он включает в себя календарь, список статей (view_plist.php) и пр.
view_plist.php сам-собой включает в себя функционал как представления, так и контроллер (если рассматривать всё с точки зрения статьи по ссылке выше). Т.е. в любо случае это мешанина php и html (даже если php в этом слое содержит только обращения к коду из модуля того же слоя, например содержащего функции идентификации пользователя, преобразования BB-кода в html и т.п, которые, располагаясь на том же уровне иерархии (по вложенности через include), целиком и полностью состоят из запросов, циклов и т.д). И если придираться, то содержит функционал представления он с того момента, как содержит хотя бы один раз echo, die и т.п.

view_plist.php считается контроллером? А весь этот уровень? Я не совсем понимаю.
Follow the white rabbit.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Использование переменных в PHP

Сообщение FireFenix » 02.11.2012 (Пт) 21:42

Proxy писал(а):хм. А что есть представление в данном контексте?

Шаблон/Конечный html-код

Proxy писал(а):Что? :) Каждый запрос в отдельную функцию? Это какой же код выйдет огромный. Да и чем они ограничивают читаемость кода? Да и какие тут могут быть альтернативы вообще?

Не функцию, а куски кода <?php ?> врезанные в HTML, это просто разрывает мозг когда собираешь всё воедино, чтобы узнать что происходит

Proxy писал(а):А что насчёт рациональности применения UML к php?

Причём тут UML?
UML используется как и в любом другом языке, а то что делают вырвиглазный код и архитектурой в виде "каши", то это такие умелые "программисты"
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Использование переменных в PHP

Сообщение Joo » 03.11.2012 (Сб) 8:04

FireFenix писал(а):Яркий пример - пару метров кода Веб-магазин под Джумлу. Когда я его открыл... то просто был в шоке от мяса. Я даже без понятия как они сами умудряются в нём ориентироваться.Дикий микс пхп кода с хтмл. Мало обычных конструкций с выводом, так ещё и запросы к бд и прочий хлам.

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

FireFenix писал(а):"Хороший код этот не тот который может проглотить компилятор, а тот который может прочесть и понять другой программист" (c)

Не нужно говорить, что программисту, легче понять вставки с непонятным синтаксисом, чем PHP вставки.

Если придет новый программист в проект, откроет шаблон и увидит это {main.title}, ему придется лезть изучать доки по шаблонизатору если они есть, или примеры использования или в конце концов его реализацию, ему придется обучаться, он не сможет применить свои прошлые навыки. Хорошо еще когда используются популярные шаблонизаторы Smarty или Twiggy, с которыми приходилось сталкиваться практически каждому веб-программисту.

FireFenix, единственный весомый аргумент в пользу шаблонизаторов с собственным синтаксисом привел Хакер, который я ждал от тебя. Другие аргументы, всего лишь попытка защитить свое детище.

На PHP можно делать короткие, красивые и понятные любому веб-программисту вставки, можно организовать простой и быстрый шаблонизатор, например такой, как я описывал выше, который сведет PHP код в шаблоне к минимуму. Верстальщика ничуть не сложнее обучить пользоваться <?= $var ?> <? foreach(): ?><? endforeach ?> <? if(): ?><? endif ?> чем {varname}{foreach()} {/foreach} {if}{/if}, причем от шаблонизатора к щаблонизатору синтаксис меняется, а PHP остается неизменным.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Использование переменных в PHP

Сообщение Proxy » 03.11.2012 (Сб) 15:23

FireFenix писал(а):Шаблон/Конечный html-код

Сомнительно. Если рассматривать код проекта до его скармливания интерпретатору, то никакого представления вообще нет в рамках проекта в таком случае (если только конечный html). В общем странно звучит. Если только шаблоны, то как же быть с фрагментами кода, генерирующими стоки, но не использующие до вывода шаблоны (да даже вывод сообщения об ошибке субд, форматирование даты в человекопонятный формат (тоже форматирование текста для получения структурированной последовательности символов), обработка bb-кода в сообщениях пользователей до вывода и т.п), чем это является? Уж всяко оно больше привязано к представлению, нежели к контроллеру и тем более к модели.
Как мне кажется, что php – это не тот случай, где представление так вот легко выделить.
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16474
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Использование переменных в PHP

Сообщение Хакер » 03.11.2012 (Сб) 15:32

Proxy писал(а):Если рассматривать код проекта до его скармливания интерпретатору, то никакого представления вообще нет в рамках проекта в таком случае (если только конечный html).

Что за глупость?

Речь идёт о том, что код, отвечающий за логику работу системы, и код, отвечающий за отображение результатов пользователю — они должны быть друг от друга максимально отделены и изолированы.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Использование переменных в PHP

Сообщение Proxy » 03.11.2012 (Сб) 17:27

Хакер писал(а):Речь идёт о том, что код, отвечающий за логику работу системы, и код, отвечающий за отображение результатов пользователю

Я про этот тезис:
FireFenix писал(а):
Proxy писал(а):хм. А что есть представление в данном контексте?

Шаблон/Конечный html-код
Follow the white rabbit.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Использование переменных в PHP

Сообщение FireFenix » 06.11.2012 (Вт) 23:15

Joo писал(а):
FireFenix писал(а):Яркий пример - пару метров кода Веб-магазин под Джумлу. Когда я его открыл... то просто был в шоке от мяса. Я даже без понятия как они сами умудряются в нём ориентироваться.Дикий микс пхп кода с хтмл. Мало обычных конструкций с выводом, так ещё и запросы к бд и прочий хлам.

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

Я привёл пример, когда всё безобидно начиналось echo($var); и закончилось фаршем.

Joo писал(а):Если придет новый программист в проект, откроет шаблон и увидит это {main.title}, ему придется лезть изучать доки по шаблонизатору если они есть, или примеры использования или в конце концов его реализацию, ему придется обучаться, он не сможет применить свои прошлые навыки. Хорошо еще когда используются популярные шаблонизаторы Smarty или Twiggy, с которыми приходилось сталкиваться практически каждому веб-программисту.

Ну когда пользователь видит <?= $main_title ?> ему тоже так или иначе придётся понять смысл переменной.

Joo писал(а):Другие аргументы, всего лишь попытка защитить свое детище.

Я уже говорил - что я выдрал в одном из проектов и использую потому, что мне нравится => не моё детище.

Joo писал(а):FireFenix, единственный весомый аргумент в пользу шаблонизаторов с собственным синтаксисом привел Хакер, который я ждал от тебя.
На PHP можно делать короткие, красивые и понятные любому веб-программисту вставки, можно организовать простой и быстрый шаблонизатор, например такой, как я описывал выше, который сведет PHP код в шаблоне к минимуму. Верстальщика ничуть не сложнее обучить пользоваться <?= $var ?> <? foreach(): ?><? endforeach ?> <? if(): ?><? endif ?> чем {varname}{foreach()} {/foreach} {if}{/if}, причем от шаблонизатора к щаблонизатору синтаксис меняется, а PHP остается неизменным.

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

Joo писал(а):Не нужно говорить, что программисту, легче понять вставки с непонятным синтаксисом, чем PHP вставки.

Как я писал выше, что не нравиться мне микс логики и статического интерфейса => я предполагал что вставок вообще никаких не будет, кроме как место вывода содержания переменных и вся логика формирования интерфейса выделена в отдельную часть/модуль/файл

Proxy писал(а):Сомнительно. Если рассматривать код проекта до его скармливания интерпретатору, то никакого представления вообще нет в рамках проекта в таком случае (если только конечный html). В общем странно звучит. Если только шаблоны, то как же быть с фрагментами кода, генерирующими стоки, но не использующие до вывода шаблоны (да даже вывод сообщения об ошибке субд, форматирование даты в человекопонятный формат (тоже форматирование текста для получения структурированной последовательности символов), обработка bb-кода в сообщениях пользователей до вывода и т.п), чем это является? Уж всяко оно больше привязано к представлению, нежели к контроллеру и тем более к модели.
Как мне кажется, что php – это не тот случай, где представление так вот легко выделить.

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

Шаблон/Конечный html-код

В данном случае я предполагал, что шаблон и весь код который его формирует есть компонент "представление".
Но если сайт имеет модуль, который имеет статическое отображение => для него будет простой вывод html, т.е. фактический сам html-код модуля и есть представление. Как то так я думаю...
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16474
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Использование переменных в PHP

Сообщение Хакер » 06.11.2012 (Вт) 23:18

FireFenix писал(а):Как я писал выше, что не нравиться мне микс логики и статического интерфейса => я предполагал что вставок вообще никаких не будет, кроме как место вывода содержания переменных и вся логика формирования интерфейса выделена в отдельную часть/модуль/файл

И кто работает над ней?



Как человек, написавший с нуля несколько шаблонизаторов для собственных сайтов, хочу спросить, зачем использовать шаблонизатор, написанный на PHP, когда можно использовать в качестве шаблонизатора сам PHP, написанный на Си?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

    TopList