Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> <<<END, Использовать или нет? (размышлизмы) 
:(
    Опции темы
Валерия
Дата 7.10.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: 3
Всего: 8



В своих скриптах я использую очень часто такую конструкцию:

Для mysql запросов:
Код

$sql = <<<END
SELECT * FROM `table`
WHERE `name`='test'
ORDER BY `pcat`
END;


Или для вывода html:
Код

echo <<<END
<table border="1">
  <tr>
    <td><a href="#Click" onclick="myfunc('test');"></a></td>
    <td>Test</td>
  </tr>
</table>
END;


Плюс этого в том, что не нужно бояться использовать одновременно " и '
И не нужно ничего слешировать
Но проблема в том, что там где нужна табуляция её не будет, т.к END; должна быть прижата вплотную smile

Например:

Код

function test(){
  foreach ($test as $t){
    if ($t=="5"){
echo <<<END
<table border="1">
  <tr>
    <td><a href="#Click" onclick="myfunc('test');"></a></td>
    <td>Test</td>
  </tr>
</table>
END;
    }
  }
}


Такое довольно сильно ломает дизайн
Но использование:
Код

function test(){
  foreach ($test as $t){
    if ($t=="5"){
      echo 
      '<table border="1">' .
      '  <tr>' .
      '    <td><a href="#Click" onclick="myfunc(\'test\');"></a></td>' .
      '    <td>Test</td>' .
      '  </tr>' .
      '</table>';

    }
  }
}

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

Добавлено через 3 минуты и 46 секунд
Ну, еще советуют использовать одинарные кавычки всегда, т.к это ускорит работу...
PM MAIL   Вверх
smartov
Дата 7.10.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



HTML выделяю в отдельные файлы (шаблоны)
Запросы пишу с одними кавычками
Код

$sql = sprintf('
    SELECT * FROM `table`
    WHERE `name`= "%s"
    ORDER BY `pcat`
', $name);


Это сообщение отредактировал(а) smartov - 7.10.2008, 15:13
PM MAIL   Вверх
Валерия
Дата 7.10.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: 3
Всего: 8



Цитата(smartov @  7.10.2008,  15:13 Найти цитируемый пост)
sprintf

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

$sql = '
    SELECT * FROM `table`
    WHERE `name`= "' . $name . '"
    ORDER BY `pcat`
';

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

Код

  $buff = <<<END
  <a href="$link" onclick="func('1, '2');">$text</a>
  <a href="$link" onclick="func('1, '2');">$text</a>
  END;


генерировать как смарти

Код

  $buff = 
  '<a href="' . $link . '" onclick="func(\'1\', \'2\');">' . $text . '</a>' . 
  '<a href="' . $link . '" onclick="func(\'1\', \'2\');">' . $text . '</a>';

Но, так понимаю, что нет смысла изобретать велосипед, но НЕ НРАВИТЬСЯ МНЕ ИСПОЛЬЗОВАТЬ ЧУЖИЕ КЛАССЫ т.к они очень большие, а используя их я вижу только вершину айсберга.
А когда всё написано мною, я полностью понимаю что и как работает, какие могут быть проблемы, как переделать это под себя и тп.
PM MAIL   Вверх
supercelt
Дата 7.10.2008, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Делаю так

Код

$sql='SELECT * FROM `table` WHERE `name`="'.test.'" ORDER BY `pcat`';

PM   Вверх
gta4kv
Дата 7.10.2008, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



да, имхо, пхп должен быть отделен от хтмл.
так что лучше думать на шаблонизатором.
а запросы, всё таки, писать в sprintf smile
PM MAIL   Вверх
smartov
Дата 7.10.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Цитата(Валерия @  7.10.2008,  15:21 Найти цитируемый пост)
использование здесь функции sprintf нежелательно т.к тебе не нужно преобразовывать строку в нужный формат

Я использую sprintf во-первых для читабельности, а во-вторых - далеко не всегда вставляется строка, иногда и число (where id = ...).
В любом случае "неправильности" я в таком подходе не вижу, а преимущества - налицо.


Цитата(Валерия @  7.10.2008,  15:21 Найти цитируемый пост)
НЕ НРАВИТЬСЯ МНЕ ИСПОЛЬЗОВАТЬ ЧУЖИЕ КЛАССЫ т.к они очень большие, а используя их я вижу только вершину айсберга.

Тогда лучше не использовать php, а написать свой язык smile А то ведь ты видишь только вершину айсберга... smile
PM MAIL   Вверх
Валерия
Дата 7.10.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: 3
Всего: 8



Цитата(smartov @  7.10.2008,  16:47 Найти цитируемый пост)
Тогда лучше не использовать php, а написать свой язык  А то ведь ты видишь только вершину айсберга...

Так дело в том что в пхп я раньше использовала базовый синтаксис, и практически не использовала php функции. А вот сейчас пытаюсь на них переходить)
Например я не курл использую, а fsockopen, куда присобачила когдато socks5 протокол) А на курле всё так просто можно сделать smile)
PM MAIL   Вверх
smartov
Дата 7.10.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Валерия, вы будете смеяться но шаблонизаторы пишут ровно для того же
PM MAIL   Вверх
DizelGenerator
Дата 7.10.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 15.6.2008

Репутация: 1
Всего: 1



для HTML отдельные файлы-шаблоны

для запросов к mysql синтаксис Mysqli:
Код

$stmt = $mysqli -> prepare('SELECT * FROM `table` WHERE `name`= ? ORDER BY `pcat`');


потом $stmt->bind_param('s', 'Вася') ну и так далее

Это сообщение отредактировал(а) DizelGenerator - 7.10.2008, 22:31
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.