1. PHP / Говнокод #3635

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    <?php foreach ($this->adverts as $advert): ?>
    <div class="advert_cover">
        <h3 class="advert_header">
            <div class="advert_date">Дата размещения: <?=$advert->getCreateDate()->format('d.m.Y H:i:s')?></div>
            <?=$advert->getHeader()?>
        </h3>
        <div class="advert_content">
            <div class="advert_text">
            <?php
            $advert_text = Helper_Format::getPreviewStr($advert->getText(), 300, '...');
            echo $this->getHelper('Helper_Format')->run(strip_tags($advert_text), 'nl2br', 'bb2html');
            ?>
            </div>
    
            <ul class="my-adverts--ul-advert-manager">
                <li class="edit_link"><a class="space_nowrap" title="Редактировать объявление" href="/my/adverts/edit/<?=$advert->getId()?>.xhtml">Редактировать</a></li>
                <li class="zoom_link"><a class="space_nowrap" title="Посмотреть, как объявление выглядит на сайте" href="/advert/<?=$advert->getId()?>.xhtml">Посмотреть</a></li>
                <?php if ($advert->getExpireRestrictionUpdateCreateDate()->invert): ?>
                <li class="up_link"><a title="Поднять объявление в результатах поиска. Данная функция гарантирует, что Ваше объявление увидят больше посетителей сайта <?=$_SERVER['HTTP_HOST']?>. Применять данную опцию можно не чаще чем через один час." href="/my/adverts/up/<?=$advert->getId()?>.xhtml">Поднять в результатах поиска</a>
                <?php else: ?>
                <li class="up_link"><span class="cursor_help space_nowrap" title="Для этого объявления данная функция будет доступна через <?=$advert->getExpireRestrictionUpdateCreateDate()->i?> мин.">Поднять в результатах поиска</span>
                <?php endif;?>
                </li>
                <?php if ($advert->getActive()): ?>
                <li class="lock_link"><a class="space_nowrap" title="Приостановить показ объявления на сайте (закрыть доступ для всех)" href="/my/adverts/active/<?=$advert->getId()?>.xhtml">Приостановить показ
                <?php else: ?>
                <li class="lock-open_link"><a class="space_nowrap" title="Возобновить показ объявления на сайте (открыть доступ для всех)" href="/my/adverts/active/<?=$advert->getId()?>.xhtml">Возобновить показ
                <?php endif;?>
                </a></li>
                <li class="delete_link"><a class="space_nowrap" title="Безвозвратно удалить объявление" onclick="return confirm('Вы действительно хотите удалить объявление &laquo;<?=$this->getHelper('Helper_Format')->run($advert->getHeader(), 'entDec', 'confirm')?>&raquo;?')" href="/my/adverts/delete/<?=$advert->getId()?>.xhtml">Удалить объявление</a></li>
            </ul>
    
            <div class="div-clear"></div>
        </div>
    </div>
    <?php endforeach; ?>

    шаблоны на PHP :)

    Запостил: 1234, 03 Июля 2010

    Комментарии (125) RSS

    • Говно конечно, но лучше ничего для PHP не придумали.
      PHP это не язык, а шаблонизатор. Потому шаблоны на PHP все же лучше, чем шаблоны на смарти.

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

      Вообще на свете существует только один хороший шаблонизатор: XSLT. Но им никто не умеет пользоваться, и потому никто (кроме меня) не любит:)
      Ответить
      • XSLT медленная хуйня
        и не сри на PHP
        Ответить
        • >>XSLT медленная хуйня
          Если уметь ей пользоваться и правильно реализовать кеширование -- то все будет отлично работать.
          Вон, яндекс живет себе и в ус не дует.
          Другой вопрос что для XSL требуются специалисты, а для PHP подойдут и обезъяны. А специалисты обычно сильно дороже обезъян, и в этом XSL конечно сильно проигрывает PHP.

          >>и не сри на PHP
          К счастью, я давно уже увлекся программированием, и PHP заниматься перестал))))
          Ответить
          • ок,объясню по подробнее:
            XML - ебанная хрень,ибо никакой наиудобнейший API не оправдывает такие требования к памяти и времени на разбор,я уж не говорю что внешний вид XML похож на жопу и идею "быть простым для редактирования" он явно провалил

            XSLT - всё туда же , KISS был послан в жопу в результате даже простейший цикл записывается как нечто на 4 строки

            помимо этого ему ещё и XML документ на вход нужен,а это уже полные тормоза

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

            >>Если уметь ей пользоваться и правильно реализовать кеширование -- то все будет отлично работать.
            невероятно! но это же относится и к PHP ,однако генерация новых страниц будет быстрее
            Ответить
            • >>XML - ебанная хрень,ибо никакой наиудобнейший API не оправдывает такие требования к памяти и времени на разбор

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

              >>ASP ?
              Вы снова не в теме. ASP это не язык:)))

              >>невероятно! но это же относится и к PHP ,однако генерация новых страниц будет быстрее
              Совершенно верно. А если выодить HTML через echo -- то генерация будет еще быстрее!
              Ответить
              • >>Совершенно верно. А если выодить HTML через echo -- то генерация будет еще быстрее!
                Это вы не в теме

                >>Вы, видимо, не в теме. Для работы XSL совершенно не нужен DOM, а значит и требования к памяти не такие у ж большие.
                окь,XSL требует SAX , а документ на вход вы будете генерить...
                видимо таки echo й,чисто для скорости

                >>Вы снова не в теме. ASP это не язык:)))
                какой ужас, ASP.NET назвали ASP
                а мне то какое дело на чём из этого вы пишете,может вы VBScript в страницы пихаете?
                Ответить
                • >>Это вы не в теме
                  В чем именно? echo "ы"; действительно быстрее "?> ы <? php".
                  Это важно, мы же боремся за производительность, для нас же XSLT тормознутое, даже с кешированием)

                  >>окь,XSL требует SAX ,
                  XSL требует доступа к документу по XPath. Этот интерфейс может предоставлять все, что угодно.

                  >>а документ на вход вы будете генерить...
                  >>видимо таки echo й,чисто для скорости
                  що? Я Вас не понял.

                  >>какой ужас, ASP.NET назвали ASP
                  И ASP.NET это не язык. и ASP не язык. Почитайте википедию что ли)
                  Ответить
                  • >>В чем именно? echo "ы"; действительно быстрее "?> ы <? php".
                    FAIL

                    >>И ASP.NET это не язык. и ASP не язык. Почитайте википедию что ли)
                    и какой мне хрен на каком диалекте .NET вы пишете?
                    я знаю что .NET это только платформа и писать вы под неё можете на том же C# , только кто сказал что на .NET пишут? вообще то в нём кнопки нажимают чтобы ИДЕ что нужно подставила

                    >>що? Я Вас не понял.
                    есть у вас допустим 20 инстансов класса описывающего ну допустим логи,вы их через XSLT как протаскивать собираетесь,не конвертируя в XML?
                    Ответить
                    • >>и какой мне хрен на каком диалекте .NET вы пишете?
                      )) Что такое "диалект .net", причем тут ASP, и где я сказал что я на нем пишу?
                      Вы что, Вебкилл?

                      Поясняю:
                      "asp" это запуск на серверной стороне microsoft scripting плюс объекты для работы с http и пр. Пишут там на сркпитах, например на js или vbs, можно и на php, если он есть для scripting.

                      ASP.NET это фреймвор внутри .NET для написания веб-приложений. Пишут под него на чем угодно: C#, VB.NET, да хоть IronPython.

                      Я вообще джавист)

                      >> вообще то в нём кнопки нажимают чтобы ИДЕ что нужно подставила
                      Можно и нажимать, а можно и вполне себе писать.
                      Там есть и полные ламеры, а есть и вполне внятные люди, знающие что такое красивый код. В отличии от мира PHP, кстати:)

                      >>есть у вас допустим 20 инстансов класса описывающего ну допустим логи,вы их через XSLT как протаскивать собираетесь,не конвертируя в XML?

                      Ну вот например в .NET я бы реализовал интерфейс IXPathNavigable, а хранил бы логи как мне удобно (хоть массивом байт), и выводил бы их через XSL трансформацию.
                      Ответить
                      • Но с другой стороны, пхп тоже не совсем язык, а платформа + язык. Есть пхп-язык и пхп-платформа. Говорить просто "я пишу на пхп" тоже не очень-то корректно. Поэтому правильно чел спросил про АСП. Он противопоставил "я пишу на асп (как платформе)" вашему "я пишу на пхп (как платформе)".
                        Ответить
                        • php - совсем язык.
                          с# - тоже совсем язык.
                          zend - совсем не язык.
                          ASP & ASP.NET - опять совсем не язык.
                          ферштейн?
                          Ответить
          • >увлекся программированием, и PHP заниматься перестал)

            тонко =)
            Ответить
          • в 1c тоже нужны специалисты. Не надо приравнивать сложность языка к его "крутости", XSL - хреновый, неоправданно сложный и абсолютно топорный и не гибкий инструмент
            Ответить
            • Вот уж насчет гибкости по-моему сейчас был чей-то fail. Гибкий, он, гибкий, видимо тот, кто доказывает обратное, имеет негнущиеся руки
              Ответить
              • отличный аргумент его гибкости, переходим на личности?
                Ответить
                • Приведеите пример задачи, которую невозможно решить на XSLT, и возможно, например, на смарти
                  Ответить
                  • Может лучше вы приведёте пример задачи, которую вам тяжело решить с помощью смарти?

                    Смысл в том, что на том же смарти примитивные шаблоны я напишу в 1000% быстрее и не буду пугать излишней сложностью верстальщиков там, где это ненужно просто. А вам знакомо sass, haml?
                    Ответить
                    • >>Может лучше вы приведёте пример задачи, которую вам тяжело решить с помощью смарти?

                      1) тестирование аутпута автоматическими средствами
                      2) разработка верстки отдельно от приложения (без поднятия оного)
                      3) Какие из этих функций поддерживаются в смарти: http://www.w3schools.com/Xpath/xpath_functions.asp

                      4) "не буду пугать излишней сложностью верстальщиков"
                      Ваши верстальщики далеки от техники?:)

                      >>А вам знакомо sass, haml?
                      Да. Я считаю запись HTMLя в формах, отличных от HTMLя -- крайне плохим подходом.
                      Ответить
                      • 1) А вы не в курсе, что полученный html после смарти тоже может быть протестирован, но по-другому?
                        2) Странный аргумент, как можно сверстать не зная как это будет в дальнейшем использоваться
                        3) Зачем мне все эти функции?
                        4) Наши верстальщики умные люди, и не пихают во всё что можно XSLT, потому что знают, что оно нужно только там, где себя оправдает.

                        Вы считаете это плохо, потому что так считаете? Ну вот и прояснили
                        Ответить
                        • фак, прочитал
                          >> полученный html после смЕрти
                          Ответить
                        • >>) А вы не в курсе, что полученный html после смарти тоже может быть протестирован, но по-другому?

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

                          >>2) Странный аргумент, как можно сверстать не зная как это будет в дальнейшем использоваться
                          Причем тут "не знать"?
                          Знаете, бывают на свете крупные приложения, которые накладно и тяжело разворачивать у верстальщика на машине. Мир состоит не только из магазинов на php.
                          В это случае (повторяюсь) программист и верстальщик договариваются о формате XML, программист тестирует аутпут своего приложения ввиде XMLя, верстальшпик верстает для этого XMLя преобразовалку отдельно от приложения.

                          >>Зачем мне все эти функции?
                          Вы спросили что умеет XSL -- я привел пример того, что он умеет.
                          Теперь Ваша очередь сказать -- где он топорный, И что он не умеет из того, что умеет смарти.

                          >> Наши верстальщики умные люди, и не пихают во всё что можно XSLT, потому что знают, что оно нужно только там, где себя оправдает.
                          Я не предлагаю "все" пихать в XSL. Если нужно вывести три строчки без дизайна -- то наверное XSLT тут не нужен.

                          Я всего лишь имел ввиду, что тезис "верстальщик не может освоить XSLT" говорит о том, что верстальшик скорее всего не очень квалифицирован.

                          На свете действительно не много хороших верстальщиков.
                          Именно потому на свете не много сайтов, которым можно сменить вертикальное меню на горизонтальное не переписав пол системы.

                          На свете не много сайтов, для верстки которых верстальщику не надо поднимать у себя на машине Apache и MySQL.

                          Но это все конечно не мешает делает сайты, и получать за них деньги.
                          Потому что сайт может работать и приносить прибыль даже если он весь вместе с html, css, sql и семью тысячами строк на Perl запихан в один файл (я и такие приложения видел), так что спор наверное можно прекращать:) )
                          Ответить
                          • Никакую утилиту менять не придётся, только внести изменения в тесты, если изменения существенны

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

                            Я вас ничего не просил приводить, и не спрашивал чего он умеет - где вы это нашли?

                            Спор можно действительно прекращать, вы не видите даже моих вопросов, отвечаете на какие-то другие, наверное тредом ошиблись.
                            Ответить
                          • Хм. Вот вопрос: а в каком это случае, чтобы сменить вертикальное меню на горизонтальное, ваще придётся переписывать пол-системы??? и *какой* ѣ(ять) системы?
                            Ответить
              • Аргументация на высоте. Холодная вода она не такая же мокрая как горячая, а кто доказывает обратное, видимо, имеет *не такие* руки
                Ответить
                • Аргументация "хреновый, неоправданно сложный и абсолютно топорный и не гибкий инструмент" ничуть не лучше.

                  Если некто не может осилить ничего, сложнее бейсика -- это же не значит что С -- говно
                  Ответить
                  • Насчёт относительной сложности XSL, похоже, никто не спорит, так что аргумент вполне себе. И заметьте, ничьих рук не затрагивает, да?
                    Ответить
                  • "относительной". Идёт сравнение шаблонизаторов, понимаете, а не понты на тему кто какие ЯП освоил и осилил. Как шаблонизатор XSL сложнее абсолютного большинства других. Что это означает написали ниже.
                    Ответить
                  • я же написал "неоправданно", вы его пропустили? Оно не говорит о том, что я его не знаю или не умею использовать. А о том, что его использование - сугубо определённые задачи. Да и там, где без него можно обойтись - я обойдусь
                    Ответить
                    • "но не говорит о том, что я его не знаю или не умею"
                      Об этом говорит Ваша фраза про топрность и негибкость.

                      Именно это и означает, что Вы не знаете XSLT
                      Ответить
                      • А Ваша фраза
                        >> Именно это и означает, что Вы не знаете XSLT

                        говорит о том, что Вы - трололо. Чо, лучше всех xslt знаете? Ну дык милости просим, на хабре в топике 0 постов за 2 года. Поделитесь бесценным.
                        Ответить
                      • А вы не знаете ничего кроме XSLT, поэтому говорите, что он не топорный и гибкий.
                        Ответить
                        • У Вас что-то с логикой.

                          Приведите пример топорности XSLя. Я Вас уже третий раз прошу это сделать.
                          Ответить
                          • приведите пример нетопорности
                            Ответить
                            • Давайте останемся друзьями. Не будем спорить на пустом месте. Одному нравится одно, а другому - другое. Это лишь лишний повод дружить. Не будете друг с другом конкурировать на проффесиональном поприще. :)
                              Ответить
                • ну про аргументацию извините) погорячился из-за того что "XSL - хреновый, неоправданно сложный и абсолютно топорный и не гибкий инструмент".
                  А это, извините, попахивает холиваром. В принципе на любом языке можно реализовать любой алгоритм, вопрос только в том, какими жертвами. Я не приверженец XSL, но когда копался в нем, не смог не заметить обширнейших возможностей. Хотя он МНЕ и не понравился.
                  Ответить
                  • Ну вот опять, "язык" и "алгоритм". Суть том, что шаблонизатор не должен реализовывать алгоритмов, это не его предназначение. Да, базовые циклы и ветвления, но не более.
                    Ответить
                    • Ну а разве базовые ветвления и циклы как раз и не являются основной частью в алгоритмах? ;)
                      Что-то я в алгоритмах редко встречаю классы :D

                      Лирическое отступление:
                      А вообще, ИМХО, сейчас все шаблонизаторы в коей-то мере являются костылями. Толкового разделения представленя данных от исполняемого кода нету. Просто этот код заменяется на другой. И это есть очень печальное явление, может быть я и идеалист, но надо искать другие решения.
                      Ответить
                      • Да, это основы алгоритмов. Но в шаблонизаторах используются не для реализации алгоритмов.
                        Ответить
                        • Ну про алгоритм и языки я упомянул к слову, для любителей мегасрачей типа: "php vs ruby(сорри,если опечатался)", "c++ vs delphi", "годзилла vs кинг-конг" )))
                          Просто раньше тянуло поучаствовать в этих холиварах) потом было пофиг. потом от них ломило скулы...а теперь просто смешно. Заведомо бесполезные попытки навязать другим свое мнение...выглядит комично)
                          Ответить
                          • да уж, просто подкормил XSLT-тролля. Хотел просто показать человеку, что выбор шаблонизатора зависит не от личных пристрастий/навыков, а от адекватности решаемой им задачи.
                            Ответить
                            • Чур, я не тролль!) если кого-то подкормил - сорри, не хотел)

                              кстати, XSL тролль больно редкая разновидность. обычно php, c++ и уебкилльные тролли...этого - в красную книгу))
                              Ответить
            • >>в 1c тоже нужны специалисты.
              ну, значит Вы без работы не останитесь)

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

              >>XSL - хреновый, неоправданно сложный и абсолютно топорный и не гибкий инструмент
              Если Вы не в силах освоить ничего сложнее смарти -- это не значит, что инструмент топорный и не гибкий. ))
              Проблема XSL в том, что он действительно сложен. И в отличии от PHP или HTML -- нельзя писать на нем "тяп-ляп" -- иначе все будет тормозить. Потому (повторюсь) наличие XSL в проекте требует наличие спецов, а это дорого и сложно.
              Ответить
              • Давайте лучше про "ваш" XSL поговорим, а не обо мне. Цитируя: "Проблема XSL", "он действительно сложен". Это означает ровно то, что в 99% случаев его использование неоправданно, каким бы он там ни был гибким (причём только с ваших слов).

                А теперь возвращаясь к вашему комментарию выше: адекватный разработчик выбирает средство реализации исходя из ряда критериев (целей и задач) и уж точно не заявляет голословно "Вообще на свете существует только один хороший шаблонизатор: XSLT. Но им никто не умеет пользоваться, и потому никто (кроме меня) не любит:)".
                Ответить
                • "Это означает ровно то, что в 99% случаев его использование неоправданно"
                  Откуда такие цифры?

                  "адекватный разработчик выбирает средство реализации исходя из ряда критериев (целей и задач) "
                  Разумеется.

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

                  О чем мы спорим-то?
                  Ответить
                  • С потолка взята конечно же, потому что речь идёт об области его применения. Сайтов "прачечных" в сотни раз больше чем сложных - оттуда и проценты.

                    Мы спорим о том, что:
                    1) вы нескромно объявили себя спецом (непонятно правда что под этим подразумевается) - требуются специалисты для понимания XSLT, и конечно же вы его хорошо знаете.
                    2) вы утверждаете что единственный хороший шаблонизатор это XSLT независимо ни от чего (например от задач им решаемых)
                    3) вы утверждаете, что многие не используют XSLT потому что "обезъяны", и не обладают титулом "спеца"

                    В этом вы неправы, вот и спорим.
                    Ответить
              • >в 1c тоже нужны специалисты
                Считаю программированием - только те задачи, для которых нужны инженеры и выше.
                Ответить
                • Программирование - это кодирование алгоритмов. В 1С нужно быть нефиговым бухгалтером, чтобы грамотно использовать его возможности. Дизайн языка - многим не нравится, отстой. Программирование ли это - безусловно, да.
                  Ответить
                  • Прямо так себе и представил, захожу в обед в бухгалтерию, а там высший разум, и давай меня в шахматы играть...
                    Я однажды в качестве познания мира прочёл книжку по бухучету, оно состоит из арифметики и искусственно запутанной хуйни.
                    Ответить
                    • Бред сивой кобылы. То есть по-вашему бухучёт не нужен? Вы разобрались в этой *искуственно запутанной хуйне*? Вы знаете, какие последствия влечёт за собой неверно разобранная бухучётная хуйня?

                      Некто тут распинался очень долго на тему, что "если вы не в силах что-то понять, это ещё не значит, что это фигня"
                      Ответить
                      • Разобрался; знаю; можно упростить на порядок без функциональных потерь.
                        Ответить
    • если топикстартер предлагает смарти то пусть напишет как на нём выглядит конструкция
      foreach ($this->adverts as $advert):
      ....
      $advert->getCreateDate()->format('d.m.Y H:i:s')

      не вбитая в отдельную переменную
      Ответить
      • Вот именно по этому я и говорю, что если уж выбирать из шаблонизаторов в PHP, то лучше использовать сам PHP.
        Ответить
      • А зачем в шаблоне вызывать методы??? Шаблонизатор - выводит результат. getCreateDate() тут - говнокод. А форматирование даты любой шаблонизатор реализует
        Ответить
      • на всякий. мало ли кому понадобится, да.
        {foreach from=$adverts item=advert}
        blablabla {$advert->getCreateDate()|date_format:'%d.%m.%Y %H:%M:%S'} blablabla
        {/foreach}
        Ответить
    • давненько я не встречал конструкцию
      foreach (... as ...):
      endforeach;


      шаблоны [php] vs [xslt|...] :
      + php интерпретируется быстрее, чем любой шаблонизатор, написанный на php. xslt медленный то ли за счет кривой реализации, то ли хз почему
      - php шаблоны активны: криворукий дизайнер ненавидит php за свою некомпетентность в нем, и потенциально может сломать всю систему (fatal error при малейшей оплошности вроде забытой точки с запятой)
      + активных php шаблонов в том, что никто не мешает прозрачно прикрутить ЛЮБОЙ нравящийся шаблонизатор. Очевидно, что никакой или, возможно, почти никакой шаблонизатор этого не позволяет
      - xslt шаблоны всегда интерпретируются, и без дополнительной кеш-системы медленны как возврат долга.
      - php шаблонов следует из той же их активности: если конечное приложение (фреймворк,цмс) не предоставляет дополнительный функциональный слой, то такой шаблон кишит уязвимостями - дизайнер не программист, и НЕ должен задумываться о таких вещах, как экранирование вывода.
      - xslt шаблоны не так легки для понимания обыкновенных дизайнеров, чья стихия html+css, и совсем не легки в написании достаточно сложных шаблонов

      вывод: думайте сами, решайте сами: должен ли шаблонами заниматься программист или компетентный дизайнер, и выигрыш в скорости, или "скинование" аппликации можно отдать любому дизайнеру для самостоятельной работы
      Ответить
      • Только давайте пожалуйста дизайнера заменим на верстальщика.
        Все таки дизайнеры рисуют макеты в фотошопах. Верстой занимаются верстальщики.
        Ответить
        • прошу прощения за терминологию. пусть будет верстальщик )
          Ответить
          • Я бы еще кое-что подправил:
            >>- xslt шаблоны не так легки для понимания обыкновенных дизайнеров, чья стихия html+css, и совсем не легки в написании достаточно сложных шаблонов

            все знакомые мне хорошие верстальщики обожают именно XSLT, а никакие не смарти, PHP и так далее..

            XSLT ближе к XHTML (так как оба являются подмножествами XML), так что если у вас есть хороший верстальщик -- скорее всего он будет знать XSL.


            Но к сожалению чаще всего версткой занимаются люди, далекие от понимания верстки) Не знающие, что такое семантика, standard complaned итд.. И конечно для них XSL неподъемене
            Ответить
            • то ли так оно есть вообще, ("чаще всего версткой занимаются люди, далекие от понимания верстки"), то ли это хороший тон проектирования всяких фреймворков: полагать, что у верстальщика интеллект макаки, и для него предпочтителен визуальный редактор. Под этим углом зрения XSLT как вариант отваливается напрочь
              Ответить
              • Зависит от назначения сервиса.
                Если Вы делаете народру (что бы каждая макака могла завести домашнюю страничку, и раскрасить ее в салатово-сиреневые цвета) -- то да.

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

                Опять же -- серьезные проекты имеют выделенного верстальщика. Но если Вы делаете CMS что бы любая кухарка могла собрать свой сайт -- то конечно там не будет верстальщика, а будет визивиг.
                Ответить
                • мы делаем интернет магазины и странички на заказ. Бывает так, что дизайнер/верстальщик у них свой, и хз какой, скорей всего с айкью макаки. Поддержка проектов ограниченная, и мы не хотим пожизненно разбираться, кто там чего накосоручил
                  Ответить
                  • Тоесть Вы пускаете клиента в код шаблона Вашего приложения?

                    А если он там заюзает таг "marquee" -- не стыдно потом свое имя под этим проектом ставить?
                    Ответить
                    • иногда они хотят мини-цмс, то есть, что бы отдельные статические страницы типа "о нас" можно было редактировать из админки

                      > А если он там заюзает таг "marquee"
                      клиент всегда прав, и заказывает музыку.
                      Реальный случай: мы предлагали сделать сайт вместе с каталогом товаров, плюс свой дизайн. На что клиент сказал, что бы дизайн был точь-в-точь как на его старом сайте. Пожали плечами, сделали, но в свое портфолио включать не стали
                      Ответить
                      • >>клиент всегда прав, и заказывает музыку.
                        зависит от подхода студии. Лебедев например так не думает:)
                        но не у всех есть возможности выпенлриваться, я это понимаю...

                        Как хорошо не работать на клиента)
                        Ответить
                        • по найму работать не лучше )
                          Ответить
                          • 2 цитаты для вас. которые должны заставить вас задуматься:
                            1. "Я лучше нанял бы человека с энтузиазмом, чем человека, который все знает. " - Джон Дэвисон Рокфеллер
                            2. Если подчиненный всегда соглашается со своим начальником, то он - бесполезная часть организации. - Хайман Джордж РиковерHyman George Rickover (27.01.1900 — 08.07.1986), адмирал США, известен как отец американского атомного флота.

                            Хоть это про подчиненных - но в приципе по найму ты ттоже подчиненный. И я бы опасался с тобой работать. Потому что если человек соглашается со всем что ты говоришь, либо он туп, либо хочет ободрать до ниточки.

                            Но это ИМХО, так что прошу не развивать холивар.
                            Ответить
                            • по найму работать не лучше вот почему (не холивар):
                              1. вначале впариваешь начальнику какой ты крутой - что б взяли на работу и именно за желаемую зарплату (конечно врать нельзя, ибо еще выгонят с позором)
                              2. а потом за сколько ты себя продал, начальник начинает закручивать гайки: работать приходится за троих, а не за свою з\п, сверхурочные всякие, и приходится из кожи вон лезть, что бы не было придирок
                              3. начальник, как правило нихера не понимает, какая это сложная работа и не сходит с мнения, что здесь делать нечего, а ты такой непрофессиональный, что не сразу делаешь "идеально",и не так быстро справляешься с задачей, как ему кажется, можно справиться. попытки доказать терпят провал в силу нежелания понять специфику работы
                              4. в итоге получается неблагодарный труд, и поставить себя можешь только заявлением об уходе - тогда начинают думать, а так ли ты плох, как они тебе говорят

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

                              во избежание холиваров - ставлю точку. Это лично мое мнение, и если кто-то думает иначе - флаг в руки. Ваш путь - не мой путь.
                              Ответить
            • "все знакомые мне хорошие верстальщики" вот не верится что-то мне в такую статистику. Огласите поимённо хороших верстальщиков и их выбор шаблонизатора, тогда ваше "все" будет точнее =)
              Ответить
              • Один товарищ работает в yandex, например. )

                Или Вам имена что ли?:)
                Ответить
                • Мне это говорит только о том, что Яндекс выбрал эту технологию в качестве шаблонизаторов. Почему - не знаю. Видимо на то были свои причины, по крайней мере я могу сказать точно, что сей факт не означает, что XSLT подходит мне для решения моих задач.
                  А наличие только одного товарища, пускай и в известной компании, не даёт вам логического права говорить о "всех", тем более и без контекста использования XSLT. Тобишь решаемых задач.
                  Ответить
                  • Я не говорю что XSLT надо использовать всегда и везде.
                    Я лишь сказал что он имеет следующие плюсы:
                    1) Мощность и гибкость (особенно в XSLT 2)
                    2) Промышленный стандарт: известен всем хорошим верстальщикам и никак не зависит от бекенда
                    3) Позволяет разрабатывать клентскую часть отдельно (без установки веб-приложения на компьютер верстальшика)


                    При этом имеет минусы:
                    1) Требователен к ресурсам (надо кешировать)
                    2) Требователен к специалистам (XSLT это функциональный язык программирования, а не шаблонизатор -- нужен хороший спец).

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

                    80% нареканий на XSLT связано с тем, что люди его или не знают (и как следствие -- пишут тяжелые и медленные приложения) или не имеют хороших верстальшиков (которых вообще очень мало) или считают нормальным ситуацию, когда изменение меню с горизонтального на вертикальное требует работы программиста.
                    Ответить
                    • "Вообще на свете существует только один хороший шаблонизатор: XSLT" Т.е. всё остальное говно, а поскольку мы себя считаем хорошими программистами, то будем использовать только хорошие шаблонизаторы. Значит и для "сайта прачечной" будем использовать именно его! Ой, что-то не стыкуется. Мы друг друга поняли?

                      Голуби хорошие птицы:
                      1) Быстрые и наглые (особенно московские)
                      2) Стандартные городские птицы - все о них знают
                      3) ...

                      Вообщем этим я хотел сказать, что ваши аргументы - вовсе не аргументы. Они абсолютно разношёрстны, натянуты, либо сложно доказуемы, кроме разве что "используются в яндексе".
                      Ответить
                      • Вы меня не поняли)
                        Я вообще за принцип "best tool" -- иногда и вордовый документ можно сохранить как HTML, и это будет наилучшим решенеим.

                        Для каждой задачи есть N инструментов. Сложность инструмента прямо пропорциональна его мощности и гибкости.

                        И что не так с моими аргументами? Вы не согласны, что промышленный стандарт лучше самопального?
                        Что верстать лучше не разворачивая у себя на компе веб-приложение?

                        Мне кажется я привел достаточно аргументов, а Вы так и не смогли сказать в чем XSLT "не гибкий" и "топорный"
                        Ответить
                        • "Сложность инструмента прямо пропорциональна его мощности и гибкости" где это вы прочли, или как до этого дошли? =)
                          Чем проще интерфейс инструмента - тем он эффективнее. Если вы используете инструмент не по назначению - тогда вы испытываете проблемы с эффективностью. Если что-то слишком сложно, значит это что-то вы делаете не так как надо. А ваше утверждение заблуждение.

                          Стандарт всегда лучше, но XSLT им не является из-за излишней сложности.

                          Очень хорошо, что вам кажется, но выше я написал о том, что это не аргументы. Аргументы - это конкретные примеры кода в сравнении, числа, например затраченное время, чёткие задачи ими решаемые, опять же в контексте эффективности, примеры масштабируемости.
                          Ответить
                          • 1) Чем инструмент гибче -- тем сложнее его изучать, тем выше порог вхождения. Если Вы не можете освоить технологию -- это не хначит, что она плохая.

                            >>Стандарт всегда лучше, но XSLT им не является из-за излишней сложности.
                            :)))))) XSLT именно что стандарт (в отличии от всего остального)
                            Вы бы просветились на тему того, что такое стандарт. Почитайте в википедии про W3C например, прежде чем рассуждать о верстке.
                            Или Вы думаете что стандарт это то, что популярно на пхпклубе?
                            Ответить
                            • Вы эта, читайте внимательнее, а то несёте бред какой-то. Выше же сказали, что xslt - "промышленный стандарт" для верстальщика. Я вам и ответил на это, что это БРЕД. Но никто не отрицает, что xslt имеет свою спецификацию. Всё заканчиваю вас кормить.
                              Ответить
                    • >>Требователен к специалистам (XSLT это функциональный язык программирования, а не шаблонизатор -- нужен хороший спец)

                      С какого тогда, пардон, рожна Вы утверждаете, что хороший верстальщик скорее всего будет знать функциональный язык программирования? А если не знает - то он плохой верстальщик.
                      Ответить
                      • С того, что так именно и есть.
                        Если Вы мне не верите -- поговорите с верстальщиками.
                        Только с хорошими, которые понимают что такое "семантическая верстка" и чем валидный код отличается от велл-форменного.
                        Ответить
                        • Уже поговорил. Они говорят, что Вы трололо.
                          Ответить
                          • Видимо, у нас с Вами разные верстальщики.
                            Скажите, а Ваши визивиг уважают?
                            Ответить
                            • Меня на районе уважают, nuff said. Закрываем тему.
                              Ответить
                        • Вы бы сами сходили и поговорили с "другими" верстальщиками, коль наши аргументы на вас не действуют. Ну или прислушались к тому, что мы говорим. А то встали в оппозицию со своим XSLT.
                          Ответить
      • кстати, да (спасибо Анонимусу), еще плюс:
        + xslt позволяет, в отличие от php, html и почти любого шаблонизатора, делать семантические шаблоны, то бишь форматировать содержание не физически, а логически. Это основа идеологии xslt
        Ответить
        • (скромно) а еще XSLT верстальщик может писать у себя в альтове вообще не запуская приложение.

          Верстун и программер договариваются о формате XML, и верстун для него пишет XSLT, запуская преобразование прямо в альтове, а программер генерит XML и проверяет его тестовой утилитой.

          Так что и программист может тестить свой аутпут автоматически (кто еще так умеет?!) и верстуну не надо запускать у себя на компе веб-приложение
          Ответить
          • все равно, веб-приложение просто обязано кешить веб-xslt-оутпут, если не хочет плестись как с гирей на ноге, в реальном времени на каждый запрос xslt-трансформировать это просто убийство даже при малой аудитории.
            А так, именно для того xslt и создавался.

            Быть может, пройдет время, и кеширование потеряет свою актуальность в связи с убыстрением серверов...
            Ответить
            • Разумеется должно кешить.
              но в крупных приложениях кеш есть все равно, причем реализован он за пределами приложения, где нить в nginx.

              Конечно, если аутпут приложения меняется каждые полторы секунды -- много тут не накешируешь, и XSLT там не нужен, но это редко так бывает
              Ответить
              • > аутпут приложения меняется
                такая ситуация встречается даже чаще. Например, наш любимый govnokod.ru )
                Ответить
                • Кстати говнокод вполне можно было бы кешировать в бекграунде, отдельным потоком например раз в 10-15 секунд.
                  Для современных i7 это не серьзные нагрузки
                  Ответить
                  • я наверное не суперпрофи в пхп, но как это в пхп - отдельный поток организовать?
                    разве что юзать какой нить cronь
                    Ответить
      • foreach (... as ...):
        endforeach;

        стандарт де-факто в симфони, до того как Фабьен занялся Twig. Имхо, более соответствует *шаблонизаторскому* синтаксису
        Ответить
    • лично я как компромисс нашел для себя phptal: при своей пассивности шаблонов он максимально приближен к "чистому" html, скорость работы удовлетворительная. Чего не скажешь о столь любимом всеми smarty: в визуалке шаблон превращается в кашу
      Ответить
      • Вы используете визивиг средства?
        Ответить
        • я пользовался ими только когда только-только начал изучать хтмл. Сейчас использую ide eclipse и редактирую как xml, то есть на выходе получаем строгий xhtml 1.1

          но как только попробовал apache tapestry 5, просто влюбился в этот фреймворк в целом и в его шаблонизатор в частности: там шаблоны должны быть xml, все теги html-совместимые, за исключением тегов со своим неймспейсом, их фреймворк прозрачно обрабатывает на сервере, и такой шаблон вполне можно отдать макаковерстальщику, который должен сверх html+css знать строгие правила xml.
          Ответить
        • это вы хотите сказать, что визуальные средства - говно, а блокнот - тру? Если так, то вам следует почитать специалистов по интерфейсу, например Алана Купера. Основная мысль в том, что визуальный интерфейс однозначно мощней и эффективней для ряда задач, правда пока как-то хреново его реализовывают. Зато для создания тех же прототипов уже есть отличные визуальные интерфейсы, например Balsamiq.
          Ответить
          • >>это вы хотите сказать, что визуальные средства - говно, а блокнот - тру?
            >>Если так, то вам следует почитать специалистов по интерфейсу, например Алана Купе

            Причем интерфейс пользователя и средства разработки?
            И тем более -- причем тут прототипы интерфейсов?

            Если Вы считаете что верстать надо в визивиг редакторах то действительно XSLT Вам не нужен, как и почти любой другой шаблонизатор:)
            Ответить
            • Вы правда не понимаете связь? А о Visual Basic хоть слышали? Вообщем действительно не вижу смысла продолжать с вами вести беседу, вы некомпетентны.
              Ответить
      • phpstorm и smarty знает тоже, попробуй его в качестве IDE
        Ответить
        • smarty изыди!
          Ответить
          • Чем так смарти насолил?
            Ответить
            • своими не-хтмл тегами, в результате чего визуалки косят картинку - что может быть важно для горе-верстуна. По сути своей смарти не очень отличается от чистого пхп, а ресурсы как шаблонизатор кушает
              хороший шаблонизатор, по моему, должен иметь теги хмл со своим неймспейсом
              Ответить
              • вообще смарти конечно конь залупская, но уж больно на нем странички собирать просто.
                Да и суть смарти не в простом выводе переменных, здесь конечно лучше использовать <?=?>, а во всех этих foreach, section, модификаторах и прочих приятностях. Так мне видится.
                Ответить
    • Обнаружил такую вещь: http://base.consultant.ru/cons/cgi/online.cgi?req=home
      Требует наличия IE. Выяснил, что эта штука генерирует xml+xsl, то есть сборка содержимого производится на стороне клиента браузером, причём все браузеры, кроме IE такой код выплёвывают. Не знаете, для чего это было сделано?
      Ответить
      • вау. запостьте как отдельный топик!
        видимо, собственный xsl-stylesheet это не веб-стандарт. Но идея интересная - если бы это был стандарт хотя бы де-факто
        Ответить
        • А что именно запостить? Дамп xml и xsl на 9000 строк?
          Ответить
          • достаточно просто линка
            Ответить
            • это говнокод, а не говнолинк
              заебали линками постить всякую хуету
              Ответить
              • ну если уж топиками оформляют жалобы на троллев и фич-реквест, то один говнолинк это вполне безобидно
                Ответить
                • Для фич-реквест существует реформал, а жалобы на троллей-долбоёбов есть срочными, ибо заёбывают до беспредела.
                  Ответить
                  • как буд-то это не есть obvious, что во всех последних топиках расплодилась гадысь и всех заёбывает. Неужто еще отдельным топиком это акцентировать?
                    Ответить
      • дураки наверное)
        на самом деле IE тоже понимает XSL, причем он начал делать это еще в версии 5, тоесть до стандартизации XSLя W3C, и понимал он только микрософтовский диалект
        Ответить
        • Я как раз и написал, что разбор xsl производится в IE. А другие браузеры говорят, что xml невалидный. Похоже мелкомягкие, как всегда, изобрели свой стандарт на xml и xsl.
          Ответить
          • Они его и изобрели, просто было это давно, до появления официального XSLT от W3C.
            Зачем делать на нем сайты -- ума не прилоджу
            Ответить
            • Точно! Ещё они изобрели marquee и bgsound, которые в W3C не попали, а ещё VML, xml внутри html и условные директивы.

              А сайты на нём делают, вероятно, чтобы разгрузить сервер. Пускай процессоры клиентов напрягаются, обрабатывая страницу.
              Ответить
              • кстати, с bgsound смешная вышла история. Как только данный тег появился, все васипупкины понавешали себе на хомяки фоновых музычек, из-за чего броузер превращался в оркестр без дирижера. В связи с чем фоновую музыку обьявили плохим тоном, и тег постарались не поддерживать. И после этого долгое время наиболее кросс-браузерный способ был вставить себе поющий флешик. А в хтмл 5 опять появился тег sound
                так же были обьявлены "вредными" теги marquee и blink. До сих пор думаю, а стоило ли с ними так жестоко?
                Ответить
              • > Пускай процессоры клиентов напрягаются, обрабатывая страницу
                а пускай. не такая уж сильная нагрузка, ну задержка перед показом юзверю даже не так заметна. Что уже конечно лучше падения сервака
                Ответить
                • Обнаружил ещё один подобный ресурс (xml+xslt): http://gorodsnov.ru/
                  Админ «города снов» считает, что это единственно верный способ вёрстки и при этом люто, бешено опускает Оперу, хотя в ней сайт тоже работает.
                  Ответить
                  • работает и в хромом, хотя секунды три Анвир показывает кушание проца. Потом, однако, полет нормальный.
                    Принципиально новый способ верстки? семантический
                    хотя мне в общем подход нравится. Пишем хмл, а к нему свой хсл, где указываем, какие элементы как форматировать. Код несказанно читаемей, чем хтмл4
                    Ответить
    • С этими словами он выхватил у Вита банку с таблетками и высыпал содержимое прямо в унитаз. Удостоверившись, что вода унесла их все до одной, Руслан поставил банку на полку, одарил Вита тяжёлым взглядом и вышел из ванной.
      Ответить
    • Рамашин уже минут 10 стоял у окна, а я только сейчас заметил, как красиво волосы обрамляют его лицо, как мужественно смотрится этот юноша, когда у него сложены руки на груди, а ноги стоят на ширине плеч. Почему-то сразу промелькнула в голове забавная мысль, что когда-нибудь, лет через двадцать, он так же будет стоять у окна и ждать с дискотеки детей, как в своё время меня ждал мой отец. Почему именно эта мысль пришла мне в голову? Да сам не знаю. Может, потому, что в его глазах было столько заботы, когда он приносил мне градусник, измерял температуру, укрывал одеялом. Я улыбнулся своим мыслям и не заметил, как перед глазами всё поплыло.
      Ответить

    Добавить комментарий