Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Оптимизация кода

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Больная тема
newbie guy
Отправлено: 23 Ноября, 2015 - 12:35:46
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




Есть ли какие-то правила по оптимизации кода?

И, можно ли выводить контент в такой способ?
PHP:
скопировать код в буфер обмена
  1. echo '<div>';
  2. echo '<span>Все заметки</span>';
  3. echo '<table>';
  4. echo '<tr>';
  5. echo '<td colspan="2">';
  6. echo '<a href="#">Название заметки</a>';
  7. echo '</td>';
  8. echo '<td></td>';
  9. echo '</tr>';
  10. echo '<tr>';
  11. echo '<td colspan="2">';
  12. echo 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus consequatur cupiditate delectus doloremque error, excepturi fuga illum ipsum, molestias officiis quo repellendus rerum saepe soluta unde. Dolore id nesciunt numquam?';
  13. echo '</td>';
  14. echo '<td></td>';
  15. echo '</tr>';
  16. echo '<tr>';
  17. echo '<td colspan="2">Ярлыки:';
  18. echo '<a href="#">Спорт</a>';
  19. echo '</td>';
  20. echo <'td></td>';
  21. echo '</tr>';
  22. echo '<tr>';
  23. echo '<td colspan="2">Категории:';
  24. echo '<a href="#">Спорт</a>';
  25. echo '</td>';
  26. echo '<td></td>';
  27. echo '</tr>';
  28. echo '<tr>';
  29. echo '<td>';
  30. echo '<b>Автор:</b> Василий Теркин';
  31. echo '</td>';
  32. echo '<td>20.20.2014</td>';
  33. echo '</tr>';
  34. echo '<tr>';
  35. echo '<td colspan="2"></td>'
  36. echo '<td></td>';
  37. echo '</tr>';


Наверное не желательно писать 100500 echo или делать много подключений к БД?

И стоит ли париться с применением одинарных '' и двойных "" кавычек ?
 
 Top
andrewkard
Отправлено: 23 Ноября, 2015 - 12:52:24
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




newbie guy
Примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $text = 'Название заметки';
  4. ?>
  5. <div>
  6. <span>Все заметки</span>
  7. <table>
  8. <tr>
  9. <td colspan="2">
  10. <a href="#"><?=$text; ?></a>
  11. </td>
  12. <td></td>
  13. </tr>
  14. <tr>
  15.  
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Ноября, 2015 - 13:20:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




newbie guy пишет:
Есть ли какие-то правила по оптимизации кода?
Опыт.
newbie guy пишет:
100500 echo
Аааа, так ты совсем о простых вещах.
Ну да, комментатор выше правильно показал -- если требуется вывалить большой кусок хтмл, то он должен быть хтмл, а не эхами.

Почитай: http://forum.php.su/topic.php?fo...33&topic=793
 
 Top
dcc0
Отправлено: 23 Ноября, 2015 - 15:19:07
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Почему-то имею тягу вообще отделять файлы php и html
Т.е. чаще через include подключаю html.

Люблю такую структуру, например, index.php:

include header.html
some php code
include footer.html

Разметка и дайзаин приносятся в жертву наглядности кода.

А вообще мне тут в одном проекте в одном файле сразу попадались несколько целых html сраниц со всеми заголовками.
Т.е. идет php код, уловие, по условию выводится либо одна страница, либо другая, и они прям вставлены в один файл... со всеми мета-тегами

Еще такое часто:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         echo("
  3.                         <script>
  4.                                 function myfunc(){
  5.                                         location.href='somefile.php';
  6.                                 }
  7.                                 setTimeout('myfunc()', 5000);
  8.                         </script>
  9.                         <center><BR><BR><BR>
  10.                                 <i>Тут какой-то текст</i>
  11.                         </center>
  12.                 ");
  13.  
  14.  
  15. ?>
  16.  


Иногда делаю так, не знаю красиво ли,
разрыв цикла

html код
снова php, завершение цикла

(Добавление)
По идее ведь повтор echo - это лишняя работа php - интерпретатора
Или я не прав?

(Отредактировано автором: 23 Ноября, 2015 - 15:20:31)



-----
Март 2021. Бросил программирование
 
 Top
newbie guy
Отправлено: 23 Ноября, 2015 - 22:37:56
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




Это интересно. Даже полезно.
Выходит, что echo для переменных применять нужно, а не для хтмл конструкций.

А есть ли какая-то принципиальная разница между записью $a = 'a' и $a = "a" ?
Мне рассказывали, что строки необходимо всегда писать в '', а переменные или хтмл теги в "". Типа двойные кавычки весят (по байтам) больше и еще одинарные кавычки обрабатываются вразы быстрее.

А вот еще вопрос. Что это значит, {$smart}, {{$smart}} ?
Вроде бы первое в шаблонизаторах используется.
Насчет второго...
Даже гугл не помог.

Ну и конечно же махонький кусочек моего кода.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. require_once 'global.inc.php'; //здесь подключаются и вызываются все необходимые классы
  4.  
  5. $issetCookie = ''; //если задана куки
  6. $checkCookie = ''; //хорошая куки или нет
  7.  
  8. if(isset($_COOKIE['user'])) {  //проверяем наличие куки у посетителя страницы
  9.     $user = unserialize($_COOKIE['user']);
  10.     $issetCookie = true;
  11.     if ($userTools->checkUsernameExists($user['login'], $user['pass'], true)) { //сравниваем значения куки
  12.         $idUser = $user['id'];
  13.         $checkCookie = true;
  14.     } else {
  15.         $checkCookie = false;
  16.     }
  17. } else {
  18.     $issetCookie = false;
  19. }
  20.  
  21. //подключаем header
  22. include_once 'header.php';
  23.  
  24. ?>
  25.  
  26.  
  27. <section>
  28.     <?PHP if($issetCookie == true && $checkCookie == false) :  ?>
  29.     <span class="back-cookie">Кто вы такой, сударь?..</span>
  30.     <? endif; ?>
  31.  
  32.     <?PHP
  33.         if($issetCookie == '') :
  34.         $where = "access_prof = '1' ORDER BY date_add DESC LIMIT 5";
  35.         $res = $db->select('crud', $where);
  36.         $idStr = 1;
  37.     ?>
  38.  
  39.     <div class="wrap-quote">
  40.     <span class="str">Последние заметки</span>
  41.     <table>
  42.  
  43.     <?PHP
  44.         foreach($res as $val) :
  45.             if($val['author_note'] == '') { $author_note = 'Призрак'; }
  46.             else { $author_note = $val['author_note']; }
  47.     ?>
  48.  
  49.             <tr class="title-out">
  50.                 <td colspan="2"><a href="#"><?=$val['title']?></a></td><td></td>
  51.             </tr>
  52.             <tr class="note">
  53.                 <td id="id<?=$idStr?>" colspan="2"><?=$page->quote($val['note'], 400)?></td><td></td>
  54.             </tr>
  55.             <tr class="tr<?=$idStr?> treang">
  56.                 <td colspan="2"><a id="<?=$idStr?>" onclick="slideTo(this)"><i class="fa fa-chevron-down"></i></a></td><td></td>
  57.             </tr>
  58.             <tr class="tag">
  59.                 <td colspan="2">Ярлыки:<a href="#">Спорт</a></td><td></td>
  60.             </tr>
  61.             <tr class="cat">
  62.                 <td colspan="2">Категории:<a href="#">Спорт</a></td><td></td>
  63.             </tr>
  64.             <tr class="author">
  65.                 <td><b>Автор: </b><?=$author_note?></td><td><?=$val['date_add']?></td>
  66.             </tr>
  67.             <tr class="line-hr"><td colspan="2"></td><td></td></tr>
  68.  
  69.     <?PHP $idStr++; ?>
  70.     <?PHP endforeach; ?>
  71.  
  72.     </table>
  73.     </div>
  74.  
  75.     <?PHP endif; ?>
  76.  
  77.     <?PHP if ($issetCookie == true && $checkCookie == true) :
  78.         $where = "parent_id = '$idUser' ORDER BY date_add DESC";
  79.         $res = $db->select('crud', $where);
  80.     ?>
  81.  
  82.     <div class="add">
  83.         <table>
  84.             <tr>
  85.                 <td><a href="add.php">Новая заметка</a></td>
  86.             </tr>
  87.         </table>
  88.     </div>
  89.  
  90.     <div class="wrap-quote">
  91.         <span class="str">Мои заметки</span>
  92.         <table>
  93.         <?PHP foreach($res as $v) :
  94.             if($v['author_note'] == '') { $author_note = 'Призрак'; }
  95.             else { $author_note = $v['author_note']; }
  96.         ?>
  97.             <tr class="title">
  98.                 <td><a href="single.php?id=<?=$v['id']?>"><?=$v['title']?></a></td><td><i class="fa fa-times"></i></td>
  99.             </tr>
  100.             <tr class="note">
  101.                 <td colspan="2"><?=$page->quote($v['note'], 400)?></td><td></td>
  102.             </tr>
  103.             <tr class="tag">
  104.                 <td colspan="2">Ярлыки:<a href="#">Спорт</a></td><td></td>
  105.             </tr>
  106.             <tr class="cat">
  107.                 <td colspan="2">Категории:<a href="#">Спорт</a></td><td></td>
  108.             </tr>
  109.             <tr class="author">
  110.                 <td><b>Автор: </b><?=$author_note?></td><td><?$v['date_add']?></td>
  111.             </tr>
  112.             <tr class="line-hr"><td colspan="2"></td><td></td></tr>
  113.  
  114.         <?PHP endforeach; ?>
  115.  
  116.         </table>
  117.     </div>
  118.  
  119.     <?PHP endif; ?>
  120.  
  121. </section>
  122.  
  123. <?PHP
  124. //подключаем footer
  125. include_once 'footer.php';
  126. ?>


Если кто-то взглянет все таки на код, расскажите чего здесь писать не стоит.

Это страница index.php
Выглядит она так, как видно на скрине.
Все работает. Ошибок нет.

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

Очень важно услышать советы от умных людей.

И спасибо всем кто уже ответил.

P.S. Я не учился на программиста и курсы не проходил. По образованию телефонист. Работаю строителем. Особого опыта в программировании не имею. Надеюсь на конструктивную критику и минимум оскорблений))
Прикреплено изображение (Нажмите для увеличения)
1.png

(Отредактировано автором: 23 Ноября, 2015 - 22:38:34)

 
 Top
dcc0
Отправлено: 24 Ноября, 2015 - 02:21:01
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Цитата:
Выходит, что echo для переменных применять нужно, а не для хтмл конструкций.
Применяют для всего Улыбка. По поводу рекомендаций, надеюсь, ответят опытные товарищи.



Вот интересная заметка, близкая к теме.
http://habrahabr[dot]ru/post/259497/
Наверное, нужно говорить себе каждый раз, когда садишься программировать на PHP - "PHP - это динамические типы данных!"

Про кавычки, да. Тоже читал.


-----
Март 2021. Бросил программирование
 
 Top
DeepVarvar Супермодератор
Отправлено: 24 Ноября, 2015 - 03:07:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




newbie guy пишет:
Я не учился на программиста и курсы не проходил. По образованию телефонист. Работаю строителем
Да тут 90% форума такие.
Например я.
Неуч, рас.... (а, ну да, нельзя же), 9 кл вечерки, кем я только не работал, но дольше всего сантехником, и приходя вечером домой садился за изучение и мракобесие экспериментов.
Можешь мои первые мессаги почитать -- там же клоунада сплошная.

Какие советы?
Ковыряй и не останавливайся на пол пути.
Назвался груздем -- полезай в короб.
 
 Top
esterio
Отправлено: 24 Ноября, 2015 - 10:55:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1. Разница между '' и "" рписана в документации
http://php.net/manual/ru/languag...types.string.php
Цитата:
В отличие от синтаксиса двойных кавычек и heredoc, переменные и управляющие последовательности для специальных символов, заключенных в одинарные кавычки, не обрабатываются.

Цитата:
Если строка заключена в двойные кавычки ("), PHP распознает большее количество управляющих последовательностей для специальных символов:

Цитата:
Если строка указывается в двойных кавычках, либо при помощи heredoc, переменные внутри нее обрабатываются.

2.
newbie guy пишет:
Что это значит, {$smart}, {{$smart}} ?

1. Первое это переменная $smar в строке если стоят двойные кавычки. Второе это вроде из шаблонизатора типа smarty
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB