Евгений Иванов, затем что die останавливает выполнение скрипта предотвращая лишнюю логику.
Если что-то идет через ajax - во первых можно в chrome нажать F12 и во вкладке network будут видны все запросы и ответа.
Во вторых можно поставить postman и имитировать вообще любой запрос
onionstranger, работа без актов крайне опасна.
Но вполне нормально написать что стороны договорились принимать акты размещенные в личном кабинете на сайте ... в электронном виде.
Viktor Ilukhin, ну с учетом того что есть постоянный спрос на качественных программистов - я в целом не сторонник делать не качественные проекты и соответственно изучать технологии которые нигде кроме них не востребованы.
Возможно я предвзят, вон в бодишопах типа епама толпа народу работает и ничего
Максим Золотой, плохо тем, что это синтаксический мусор не имеющий смысла.
Не нужно писать код ради кода.
Анонимные функции нужны или для замыкания, или для структурирования не структурированного кода, когда у вас там какой-то огромный кусок с кучей переменных которые не нужны в общей области видимости.
понятные примеры в первом ответе Что такое анонимная функция и с чем ее едят?
Если уж говорить про совсем правильный подход - лучше иметь отдельный класс для работы с базой данных, который при инициализации (в идеале через какой-нибудь DI ) получает реквизиты для подключения и дальше уже варится внутри себя.
Space, потому что отдать файл напрямую через nginx на порядки быстрее чем запустить php скрипт, подключиться к базе, проверить права, итд. Но в целом это единственное нормальное решение если действительно нужно ограничивать доступ.
Кстати почитайте про nginx x-accel-redirect, очень советую.
Станислав Макаров, если рассылать всем одно и то же - то не намного сложнее imho.
Кто-то из игрушек (типа CS) не заморачивается, все игроки в сессии получают все данные и фильтруют их на клиенте - как результат появляются всякие воллхаки.
В EVE насколько я помню ребята заморочились и ввели понятие грид - все пространство в системе поделено на зоны хитрой формы в которых игроки видят друг-друга. Вообще это все достаточно занятно даже не с точки зрения игры, а с точки зрения "подумать зачем так было сделано"
Тимофей Михайлов,
а) шаблонизатор никогда не перебор
b) то что Вы хотите называется SPA ( single page application ), их нынче модно на js фреймворках собирать типа angular
Сергей,
а) самое правильное - делать горизонтальное масштабирование.
т.е делать проект так, что бы в любом момент времени, вместо 1 компонента системы их могло быть N.
b) полностью все переделывать - это нормально. не нормально сразу жечь 100500 денег в попытках сделать идеальную систему.
нагрузка не случается внезапно - делайте систему которая держит ту нагрузку что есть в обозримом будущем.
вырастет нагрузка - будете решать. в конце концов всегда сможете купить еще серверов и воткнуть на них полный клон системы отдельно)
Сергей, ну и нужно реально как-то формализировать граничные требования по нагрузке.
Сейчас путем нехитрой арифметики мы видим что ваши датчики шлют данные раз в 12,5 минут.
Соответственно одна из задач - научить их равномерно слать данные, потому что если ваши 10*500 = 5000 источников пришлют запрос с точностью до секунды - все упрется не в базу, все упрется гораздо раньше в веб-сервер.
Дефолтный PHP держит где-то 500-700rps.
Сергей, я вам дам один важный совет: не верьте никому, когда доходит до тестов производительности, вот прям вообще никому.
Есть задача с потенциальной нагрузкой - собрали среду которая её имитирует, провели собственный тест под нагрузкой и данными близкими к живым, приняли решение.
Да, на сборку тестовой среды уйдет время какое-то.
Но это стократно окупится потом.
Сергей, опять же если считать в лоб усредненно - 45kk за месяц это 17 запросов на запись в секунду всего-то.
Понятно что в реальности в пике может быть больше в разы, но все равно цифры небольшие.
В конце концов можно какую-то отдельную мега-быструю очередь запилить для вставки.