Без изменений
Фреймворк ограничивает. Как минимум, системой роутингов, контроллеров, middleware, папки и файлы, неймспейсы, работа с запросами (Request/Response). Хотя бы это все связывает руки и заставляет делать так, как принято фреймворком. Другой вопрос, что то, как обязывает в 99% случаев фрейморк, является самым правильным и элегантным способом, и соответствует хорошей практике.
Входящих запросов к веб-серверу. База помашет, если каждый раз обращаться к ней. Форумы можно кешировать, и вполне успешно, просто не все форумы поддерживают механизм кеширования. На каждый INSERT/UPDATE чистим кеш. На каждый SELECT - пишем в кеш. Кроме массива ничего не храним (рендерим на стороне сервера). Пост-каунт и репутацию юзера храним в отдельном хранилище, по INSERT/UPDATE также обновляем. Все. Если все работает через одну модель, которая правильно это дело разрулит - никаких проблем не будет. Конечно, говорить о том, что форуму с 1 000 000 тем и 13 000 000 сообщений, на VPS с одним ядром и 1ГБ оперативной памяти будет свободно, это бред. Я лишь привел пример как мне удалось на дешевой VPS-ке без веб-сервера и интерпретатора сделать вполне себе простой самописный блог, который выдерживал такие нагрузки (2 000 rps - это теоретически 17 280 000 юзеров в сутки). Конечно, на практике это число будет ниже, так как блог был с около 30-40 записями, несколькими рубриками и небольшим количеством статики (статика скачивалась, но за запрос не считалась, т.е. один запрос = страница + картинки + css/js).
Однозначно, нет каких-либо очевидных причин изобретать свои велосипеды, кроме как пощупать механизм их работы, и набить "мышечную" память.
Форум - это не очень то простое приложение. Во-первых, наполняется пользователями, а значит нужно много проверок и валидаций, иначе будете быстро поломаны. Во-вторых, проектировать базу нужно. Голоса (благодарности), пользователи, системы прав для модераторов - все это только базовый функционал нормального форума. Самому написать, конечно, можно, но... есть множество движков, которые все это имеют из коробки, и стоят дешевле, если сравнивать человеко-часы работы. Если ваша задача зарабатывать на форуме, или просто сделать форум по увлечению - то лучше взять готовое решение. Если задача вроде лабораторной работы - сделать самописный форум, то для PHP есть прекрасный фреймворк Laravel, который работает (интегрируется) c Vue.js, который позволит написать SPA (хотя даже не знаю, надо ли это для форума, но ради пощупать можно конечно). С Python в этом плане не знаком, но архитектурно закладывает более правильные принципы в программировании, хотя тут можно поспорить ещё.
Если хотите ещё посмотреть в сторону других языков (мир же на PHP и Python не заканчивается), то можете посмотреть Go, строгая статическая типизация, компилируемый, очень быстрый, имеет встроенный веб-сервер (не нужен nginx и прочие) и шаблонизатор, может работать как демон, на выходе один бинарник. В итоге на очень слабеньких VPS можно выпирать всю мощность (есть опыт на VPS за 250 рублей 2000 запросов в секунду). Ещё один из плюсов языка, кроме скорости работы, ещё и скорость разработки. Переписать какой-то проект на него можно очень быстро (при условии если уже знаком с Go и понял как он работает). Из недостатков может быть только то, что он в некоторых местах слишком низкоуровневый. С PHP переходить будет сложно: из-за динамической типизации, частичного отсутствия ООП (структуры их заменяют), не резиновых массив, компиляции, и т.д.
Читал на хабре про это, сейчас хотел найти вам, но не смог. На сколько я знаю, всегда краткое описание берется с первой текстовой ноды на странице. Т.е., если это <span>Ваш заказ #123</span>, то это и будет кратким описанием. Это удобно. Но как скрыть это, увы, я не знаю, да и не попадалось.
Попробуйте погуглить "habrahabr верстка email" и почитать статьи, возможно где-то там есть ответ.
Может стоит просто краткое описание сделать одинаковым цветом с фоном, а чуть ниже то что вам нужно? Хз, сработает ли.
Да, просто я например не уверен, что у всех хостеров есть возможность использовать *.site.ru в доменах. Знаю, что вроде как в cPanel можно. А вот в других - хз.
Не нужен lighttpd. Достаточно nginx + wildcard, как сказал человек выше. А на стороне PHP проверять, есть ли данный юзер в базе, и если есть, то выводим его профиль или инфу по постам (или что вы там хотели). Так работает reddit, dirty и прочие доски с системой разделов на саб-доменах.
http://nginx.org/en/docs/http/server_names.html#wildcard_names
P.S. Сам домен не регистрируется. Wildcard допускает возможность любого сочетания (которое вы указали, например цифры или буквы). Вам не придется создавать виртуальные хосты и добавлять строчки для каждого юзера.
Я частично интересовался данной темой, и насколько я знаю, такое возможно. Единственный вопрос: пройдет ли модерацию такое расширение.
Во-первых, скорее всего вы не об iframe говорите.
Во-вторых,
var myWindow = window.open("http://ya.ru", "win", "location:no")
Но браузеры обычно игнорируют эти свойства.
if ( ! function_exists('str_limit')) { /** * Limit the number of characters in a string. * * @param string $value * @param int $limit * @param string $end * @return string */ function str_limit($value, $limit = 100, $end = '...') { if (mb_strlen($value) <= $limit) return $value; return rtrim(mb_substr($value, 0, $limit, 'UTF-8')).$end; } }
$mod .= str_limit($consultation->description, 180);
Выведет текст с троеточием на конце.