Где то я мельком читал, что в новых версиях php можно создавать асинхронные и частично асинхронные скрипты. Или как-то так. Где почитать. желательно на русском.
@torsar пхп совсем не похож на джаваскрипт и ноду. поэтому прямых аналогов быть не может. тем не менее, делают некие "асинхронные запросы" и "промисы". поэтому пожалуйста уточни что именно ты хочешь сделать. конкретно.
Ну вообще из желания асинхронности автоматически не следует, что нам нужны несколько потоков и thread-safe. ReactPHP будет работать и в одном потоке, если иное невозможно. Будет очередь обработки событий и будет убедительная иллюзия параллельности. Путь не очень эффективно, зато переносимо. Я им не пользуюсь, только читал.
@artoodetoo а я использую форки PCNTL для многопоточной обработки данных, или для многопоточного клиента. @mkramer а что такое thread-safe?))
я только хотел сказать, что асинхронность ≠ многопоточность, это отсутствие необходимости ждать выполнения задания прямо сейчас. --- Добавлено --- например: у нас есть серверный скрипт, который обрабатывает заполненную форму и посылает email с просьбой подтвердить что-то там. мы можем буквально вызвать отправку письма и это будет синхронный запрос, наш скрипт будет дожидаться пока отправка не выполнится, (а это небыстро), только потом сможет делать что-то ещё. а можем поставить задание на отправку письма в очередь и сразу заняться другими делами. это по сути асинхронный запрос. аналогично можно поступить с СМСками, генерацией превьюшек, уведомлением каких-то внешних сервисов и т.п. так что, для конкретной задачи вполне можно найти решение на пхп, без мультипоточности.
У меня как-то был напилен генератор кой-каких структур с отложенным выполнением кода, типа псевдоасинхронность, но это лютый костыль, который, в последствии, был заменен yeld-генераторами. Именно вот асинхронность как таковая в пхп не нужна. Если нужны параллельные вычисления или еще что-то в таком духе - юзайте воркеров.
Я недавно находил очень элегантное решение с "распараллеливанием" через отправку системных сообщений и пулом исполнителей, которые по мере надобности рождаются в кроне и ждут. ( ворнинг: на винде наверное недоступно ) Creating a Message Queue in PHP Without External Libraries Межпроцессное взаимодействие в PHP
Мне интересно, сколько человек будут в реальной жизни покупать виндовый сервер, чтобы потом юзать на нем линуксовую подсистему.. Речь-то об этом.
Майкрософт силён в корпоративном сегменте. Поэтому в интранете очень вероятно ВСЁ будет на винде. Цену товара обычно определяет не себестоимость, а маркетинг, так и здесь…
Если бы не покупали, майкрософт не выпускала бы. Сервера w3c, кстати, майкрософтовые. У них там ASP.NET крутится.
Ды нет, ASP приятная платформа. На шарпах сервер кодить - красота же. Был бы винсервер бесплатный, мб аспа было гораааздо больше на рынке, чем сейчас. Хотя, говорят, с самим сервером проблемы бывают порой.
php для web Работа с сокетами. Если в скрипте не длительная работа с сокетами. Скрипт отработал с сокетами и завершился. Это понятно. А если сокет нужно слушать длительное время или постоянно? Можно ли такое на php для web?