Эти скрипты не всегда очевидны и однозначны, поэтому их приходится писать. В общем, полноценная замена maven для ruby - bundler (зависимости) + rake (запуск)
Попытаюсь ответить на последнее и предложить своё решение.
1. Хорошо, если рендер может быть выполнен на стороне сервера, но такое достигается не всегда. В данном случае вы притягиваете фронт для вебсокетов в виде php для рендера? Это плохой вариант. По каналу сокетов должен возвращаться diff для модели, не для отображения.
2. Я по-прежнему не увидел ответа на вопрос - что является триггером для сообщения со стороны сервера? Грубо говоря, как сервер узнает, что в бд появилось что-то ещё (или изменилось)? Я не вижу иного способа, кроме как сказать об этом php-server-side to socket-server-side.
3. Продолжая предыдущий пункт. Вы представляете себе, каким образом нужно связать постоянное соединение (сокет) с временным (запрос к php)? Я - не представляю. Посему как альтернативу я предлагаю MQ. Более того, mq сам может быть сервер-сайдом для вебсокета.
Резюмируя:
Через yii у вас возвращается первоначальная страница. На странице js подключается сокетом к activemq серверу (stomp, mqtt - это по вкусу). Параллельно yii принимает другие запросы (на создание, изменение) и соответствующие diff чанки шлёт в mq. Из MQ они естесно попадают в js клиента. На клиенте на основе diff уже изменяете html как вам угодно
Не всё так категорично.
Ото всех можно получить удовольствие, это субъективное ощущение.
Все они востребованы сейчас. Ruby из-за своей модности уже не редкость.
Python не для гиков. Python для всех. Но я с ним почти не работал, чтобы доводы привести. Но идеология "единственного решения" немного сводит меня с ума ) На вики, кстати, на русском даже статья нормальная по поводу идеологии питона.
@brevis а ты схитрил )
1. У него данные из бд, поэтому все _id так и остались строками. В общем-то, не проблема, можно легко конвертнуть. Но
2. У него результирующий массив именно массив, а у тебя - хеш. Можно сделать хитрее, если id начинать с 0. Но вот в бд так хорошо подобранных данных не найти.