Задать вопрос
  • Почему плохо писать код в шаблонах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Евгений Ромашкан,
    Термин "Модель" в данном случае я не использую

    ...
    Только если это отдельная read-модель
    та-дааа...

    Сущность это класс описывающий бизнес логику, её жизненный цикл не зависит от экземпляров других классов.
    Вот как раз сущность это непонятный термин, а в MVC модель - совокупность классов отвечающая за функционирование отдельно взятой абстракции, включающая в себя данные, бизнес-логику и репозиторий. В реализации AR - это один класс, в класическом мвц - два и более, в зависимости от архитектуры.
  • Почему плохо писать код в шаблонах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    NubasLol, Очень просто, котики например понимают что какать и писять нужно в лоток, а не там где захотелось. Котик который так не делает быстро огребает, по тому что хозяин не находит каки в лотке, а ищет их по всей хате по запаху. То же самое и с едой - адекватный хозяин не насыпает еду в лоток для какашек. Для всего есть место. В коде это особенно важно, так как он имеет свойство как меняться, так и ломаться, и искать в таких случаях какой-то функционал не на своем месте - крайне печально для того кто ищет, и крайне опасно для того кто писал, ибо завтра такой несговорчивый товарищ может уже нарваться на классовый квест по поиску новой работы.
  • Почему плохо писать код в шаблонах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Евгений Ромашкан, Модель она и есть модель, в нее может входить в том числе и репозиторий и бизнес-логика как отдельные компоненты модели. Как то у вас странно все, сущность оторвана от репозитория и бизнес-логики что ли?
  • Почему плохо писать код в шаблонах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    NubasLol, тем что будут бить. Больно. Как минимум за запросы в цикле. Ну и до кучи так как в контроллере вы не определились - что вам нужно во вьюшке и начали фигачить код там "где понадобилось", вместо "где надо".

    Правильно: Если во вью вам понадобился список - в контроллере создаете объект модели (если модель не имеет статического фасада), а затем получаете из модели необходимый список по нужным параметрам, список отправляете во вьюшку, и там уже вы себе итерируете как хотите.
  • Почему плохо писать код в шаблонах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    edward_freedom, в таком случае не надо делиться вашими "профитными стратегиями успеха", которые противоречат как здравому смыслу, так и элементарной профессиональной грамотности.
  • Почему плохо писать код в шаблонах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    edward_freedom, Вас коллеги часто бьют?
  • Почему SQL-запрос не захватывает строки с NULL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    Nujabes37, да, точно, поправил.
  • Как убрать повторяющие теги strong на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Антон Р., пишут не они, пишут клиенты.
  • Как убрать повторяющие теги strong на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Антон Р., Ситуации они разные бывают, конкретно по данному вопросу - у самого есть такая проблема, заказчики присылают для новостного портала док файлы, из которых лезет куча левых тегов. Причем перенос в едитор сохраняет как форматирование, так и левые теги, и тут для нормальной работы проще написать обработчик, чем учить контентщиц лазить в сырцы и вылавливать левые теги, ибо это время, причем каждый раз, дешевле потратить 1 раз время на скрипт в 2 строки, чем каждый раз объяснять и учить. И тут больше проблема того же ворда, чем писателей и контентщиков. Но надо как то работать, и в этом плане автоматизация решает, однозначно.
  • Как убрать повторяющие теги strong на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Антон Р., скорее всего из ворда копирует в ckeditor, а при редактировании в ворде долго возится с разметкой текста, выделяя разные куски то болдом то курсивом, то объединяя блоки болда... Короче при переносе из ворд документа такая дичь с тегами это еще мелочи.
  • Безопасная аутентификая пользователей без сессий?

    ThunderCat
    @ThunderCat
    Александр,
    за исключением того, что токен могут увести.
    Еще раз - ВСЕ могут увести, все к чему может дотянуться яваскрипт (а он может дотянуться практически до всего что можно отправить в качестве ключа серверу) может быть скомпрометировано на стороне клиента. Это не ваша проблема, и это не проблема сервиса, по крайней мере если сервис обезопасил приложение от внешних вредоносных скриптов ЧЕРЕЗ САЙТ. Ничего не гарантирует защиты пользователя от действия третьих лиц, например левых плагинов в браузере, вирусов, подсмотренных паролей в браузере, просто тупо бумажки с логином и паролем на столе... Но все это не проблемы безопасности сервиса, это персональная защита данных, которую должен обеспечить пользователь самостоятельно. Все проблемы которые вы себе придумали (и в частности короткие сессии, которые кроме того что регулируются программно, еще и могут быть дублированы каким-то ключом в куках, как сделано на многих сайтах, где есть галочка "запомнить меня") в основном к вам как к разработчику никак не относятся.
  • Как сделать хлебные крошки на всех страницах кроме главной?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Юрий, спасибо, у меня своих поиграться 8 штук. Думаю предыдущий мой коммент вам подойдет как решение.
  • Как сделать хлебные крошки на всех страницах кроме главной?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Юрий, сложно работать с говносистемой.... Тогда просто проверяйте $_SERVER['REQUEST_URI'] на значения "" и "/".
  • Как сделать хлебные крошки на всех страницах кроме главной?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Юрий, ну вот и сравнивайте с null, или оно у вас везде выдает нулл? Учтите, что туда попадает конторллер не в самом начале, а только после срабатываения роутера и диспатчера (ну, если таковые есть вообще).
  • Безопасная аутентификая пользователей без сессий?

    ThunderCat
    @ThunderCat
    Александр, Прежде чем искать решение несуществующей проблемы, возможно стоит изучить в чем может быть проблема (и есть ли она вообще). А искать решение для проблемы которую озвучил ваш "очень крутой друг хакер из старшего класса", даже не разобравшись в вопросе, как минимум не зрело и не профессионально. Ну или к вопросу добавьте аргументацию - хочу сменить это на вот это, по тому что гладиолус...
  • Как сделать хлебные крошки на всех страницах кроме главной?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Юрий,
    Вывод только в каталоге (отслеживание по контролеру)
    <?php if(MG::get('controller')=="controllers_catalog"): ?>
    Этот текст будет выводиться на всех страницах каталога
    <?php endif; ?>

    Что мешает сделать var_dump(MG::get('controller')) на главной и проверять потом на соответствие этому значению?
  • Где вы храните запросы к базе в коде или используйте хранимые процедуры?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Сергей,
    подумайте, почему энтерпрайз до сих пор хардкодит в БД?
    По тому что это в большинстве случаев не так? Я как бы работал с несколькими конторами, поддерживающими весьма крупные проекты, в том числе на оракле + ява, и на С++ + МССкуль, никто уже давно не хранит код в процедурах. Во первых неудобно, во вторых сейчас многие системы имеют не одно хранилище, что делает размазывание кода еще больше при хранении кода в бд. Пару хранимок вполне нормально, там где критично быстродействие. Остальное в коде.

    есть приложения которые ПОЛНОСТЬЮ находятся в БД, а клиентское приложение наподобие браузера (тонкий клиент) в нем вообще никакой логики нет, кроме как XML в UI переводить.
    Есть, и тут имеет смысл хранить все в одном месте. Как бы логично. Но опять же, это не тот случай что у ТС.

    код пишут программисты БД и они вовсе не DBA
    Как ни странно, обычно это именно одно и то же, хотя конечно есть чисто программисты SQL, но в большинстве случаев все они стараются получить и ДБА сертификат. На моей памяти чисто прогеров эскуеля я не встречал, возможно это чисто местная специфика.

    В моей практике в 2 проектах было решено "хранить в процедурах". В первом случае - МССКУЛ (2005 год), от которого в итоге отказались в пользу мускуля, и все написанные процедуры пошли по бороде, и в итоге все легло в код. Второй - ЦРМ (2012), до сих пор жива, правда обслуживают ее ребята которые каждый раз при запрашиваемых изменениях от руководства вспоминают добрым словом нашего архитектора приложения. В общем - не удобно это, иногда оправдано, но поддержка в разы сложнее и геморнее.
  • Как загрузить файл и записать его имя в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    viktorross,
    почему-то после удаления user_id из бд
    ээ, зачем? Просто можно было поставить его необязательным.
    скажите что в этих глобалах такого?
    Ничего в них, просто чистая/хорошая функция должна выдавать всегда одинаковый результат при любых входных параметрах, а когда она использует кучу глобальных переменных результат слабо предсказуем. Вроде я сказал что читать по этому поводу.
    И какую проверку сделать формам и как правильно?
    Валидация в php тема обширная, есть как нативные средства, так и более навороченные библиотеки.

    если так и оставлять дальше, что будет?
    Ничего не будет, прост со временем будет все сложнее все это обслуживать. Технический долг, легаси и вот это все...

    но id все равно не записывает никак,
    Так он туда не попадает, вам же уже объяснили, переменная $id НЕ ВИДНА ВНУТРИ ФУНКЦИИ. Если хотите чтобы она была видна - либо до использования добавьте ее в $this->id например, или же передайте ее в аргумент функции.
  • Не отображается изображения сгенерированный DOMPDF?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Во-первых - не надо писать дополнения в ОТВЕТ, напишите его отредактировав ВОПРОС
    Во-вторых
    В исходном варианте все отображается
    не понятно, что значит исходный вариант? Значит оно у вас работало? В чем разница с "неисходным" вариантом?
  • Где вы храните запросы к базе в коде или используйте хранимые процедуры?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Сергей Некий, Если честно - вообще не понимаю - о чем спор? 2 хранимки на проект где они реально нужны - без вопросов. Все остальное легко покрывается логикой ОРМ или запросами из репозиториев, буде таковые нужны в чистом виде и орм не справляется. Изначально вопрос стоял - "хранить все запросы в виде сторед или вынести в код?". Ответ - хранить в коде, так как не нужно каждый раз лезть в 2 места если логика меняется, не размазывается поведение на 2 аппликации, и все легко отслеживается в вершн контроле. Я по тому и писал что запросы покрывают 99% логики общения с бд. Сложные вещи, требующие логики в бд встречаются крайне редко, даже в крупных проектах.