> Ну что вы такое говорите-то. Какой контроллер. По CRON надо дёргать команды.
Я к сожалению, не так хорошо знаком с Symfony, возможно Вы правы на счёт и это лучшее решение, но... В некоторых фреймворках механизм команд полностью отсутствует, и они отлично справляются контроллером плюс к тому, не факт что на сервере есть доступ к PHP-CLI (если это не VPS/Dedic).
Возьмите OBS или XSplit, возьмите готовый плеер (CyberGame, Twitch, GoogGame, YouTube etc.) или настройте свой собственный сервер для этих нужд и транслируйте любое видео/звук которые доступны на Вашем комьютере в сеть. Готовый плеер можно повесить на свой сайт и транслировать что угодно.
ruseller - это не очень толковый сайт... Я бы оценил его максим как "неплохой". Добавляйтесь в скайп, если хотите, я иногда веду учебные проекты, в зависимости от Вашего уровня знаний и конечных целей, возможно смогу предложить что-то интересное или подсказать.
Иван Антонов: думаю, если Вас в целом устраивает полученный результат, то можно оставить "как есть". В ином случае (когда он Вас устраивать перестанет) - найдется и время и возможность всё поменять. Прелесть БД, в том, что можно практически безшовно делать изменения данных "наживую", практически без остановки боевого проекта :)
Иван Антонов: если это MySQL - результаты запрсов кэшируются, и проблем особо не будет. Если это PostgreSQL - можно создать "материализованное представление" или рассмотреть какой-то другой вариант. Или, можно использовать Memcache/Redis, для хранения данных и сокращения нагрузки на БД, но в целом, лаже в таком варианте запроса - особых проблем нет, это довольно небольшой запрос, в общей сложности и если скорость работы устраивает - то всё отлично.
Единственное, что бы я пожалуй, изменил по возможности - это сделал бы привязку файлов только тем сущностям, которым они реально нужны. Например, если картинка нужна для объявлений - то таблица картинок для объявлений; если картинка для аватарки - то таблица с картинками для аваторок и т.д. (если конечно одна и та же картинка не может использоваться много раз в разных местах, но тогда Вы либо не построите полноценную связь, либо наплодите кучу побочных таблиц).
В редакторе Битрикс (*по крайней мере так было раньше) - есть 3 режима работы: Визуальтый, Текст, HTML. В "визуальном" режиме и в режиме "Текст" - теги либо удаляются, либо конвертируются в соответствующие HTML-сущности, в режиме HTML соотв. такого поведения не наблюдается. Либо, в визуальном режиме можно попробовать перейти в режим "Код", но это не всегда помогает. Вы пробовали что-то из вышеперечисленного и теги всё равно слетают?
Сергей Протько: я бы назвал это скорее "привычнее", нежели "правильнее". с pivot-таблицами вопросов нет, интересует изначально именно односторонняя связь вот такого (выше описанного) формата.
Владислав Марвин: если папка EXT лежит в той же папке что и php.exe и php.ini - можно попробовать удалить ведущую часть пути и оставить только ext/extension.dll, когда я ставлю PHP "отдельно" - делаю именно так.
> Постоянный обход не сильно понизит производительность?
Обхода как такового быть не должно, для этого есть индексы, и по идее они в MySQL должны работать. Единственная корректировка - COUNT(*) вместо COUNT(id). Вырезка из документации:
COUNT(*) is optimized to return very quickly if the SELECT retrieves from one table, no other columns are retrieved, and there is no WHERE clause.
*когда кол-во записей исчисляется тысячами - можно делать почти что угодно, когда сотнями тысяч - стоит начинать задумываться...
> да, update счетчика не проверяется...
"Сломаться" может любой запрос, а пользовательские данные, любые, которые ушли запросов в базу - априори ошибок вызывать не должны. Rollback должен быть предусмотрен, обычно, на всех уровнях, COMMIT обычно предуматривают на том же уровне, что и TransactionBegin, т.к. в самом конце, когда уже точно всё хорошо... А проверок на "всё хорошо" нет нигде, ни в INSERT, ни в UPDATE (как минимум).
Откат транзакции только на одном уровне, без проверки ошибок и commit там же, результат выполнения запроса UPDATE audio_albums - проверяется, но за ним сразу идёт коммит. Что-то с кодом явно не так...
Я к сожалению, не так хорошо знаком с Symfony, возможно Вы правы на счёт и это лучшее решение, но... В некоторых фреймворках механизм команд полностью отсутствует, и они отлично справляются контроллером плюс к тому, не факт что на сервере есть доступ к PHP-CLI (если это не VPS/Dedic).