1. Что? Изначально они крутились на интерпретаторе PHP, VK вообще до довольно недавнего времени. И? Что помешает автору позже использовать и эти решения, эффективность которые, кстати, довольно сильно переоценивают.
2. У HipHop VM есть поддержка ООП.
> Отличия какие будут, чем если бы сервер был на erlang?
Больше серверов, наверное, а может и нет.
Только разработать на Erlang будет сложнее точно, а 50к не факт, что будет, как и неизвестно где будет узкое горлышко, которое нужно будет переписать на более специализированный язык.
Хранить игровое поле в памяти приложения как-то не очень правильно. Это все-равно должна быть какая-то база данных и ее масштабирование - отдельная тема.
> Если php подходит для всего, то зачем нужен erlang?
А где я писал, что PHP подходит для всего? На Erlang сложновато написать большую систему, да и разработчиков мало и материалов в сети.
Горизонтальное масштабирование — разбиение системы на более мелкие структурные компоненты и разнесение их по отдельным физическим машинам (или их группам), и (или) увеличение количества серверов, параллельно выполняющих одну и ту же функцию.
Какие это проблемы у PHP с горизонтальным масштабированием? Как раз их нет, потому что каждый запрос по новой все инициализирует. Из-за этого приходится использовать акселераторы и memcashed. Но как раз масштабируемость, можно сказать, заложена в архитектуре.
@zelenin, а вы?
Вопрос о структуре файловой системы.
Я сбросил ссылку на Code Style разработчиков, где указана связь между именем класса и файловой структурой, а так же пример размещение различных библиотек.
Как вопрос сформирован, так я на него и ответил. Все корректно. Вы поняли его иначе? Поясните мне, к чему эти вопросы, как будто я про фабрику одежды написал, ориентируясь на одно слово, которое к самому вопросу отношение имеет довольно относительное.
Варианты такие:
ini_set
htaccess
конфиг апача
конфиг php
Если не один из них не возможен, то только в коде копать где он использует эти кодировки.
mbstring.internal_encoding - это кодировка HTTP-ввода. Тут нужно дебажить, просмотреть весь вызываемый код и найти где он использует HTTP-ввод.
mbstring.func_overload - с этим сложнее. Его тоже нужно попробовать по списку поменять. Если бы наоборот, нужно было бы какие-нибудь функции переопределить, то можно было бы заменой вставить и все. А так даже не знаю как это назад вернуть.
parent::beforeValidate();
return true;
Во-первых, что это?
Если вы используете Y-m-d только для пользовательского ввода/вывода вы могли бы просто воспользоваться моделью-формой. Модель базы тут не при чем.
Кроме того, лучше это было бы запихнуть в фильтр/валидатор, тогда бы это было более понятно для других программистов: вы бы инкапсулировали этот код и отделили от основной бизнес логики, обошлись бы без непонятного цикла с перебором полей, а все было бы в одном месте.
Если вам это нужно для совместимости с другими элементами системы, то есть смысл оставить эту логику в модели базы, но все-равно лучше воспользоваться валидаторами, так как это костыль.
Ну платной версии нет, можно за деньги убрать ссылку и некоторые расширения платные, как раз в версии для третьей Joomla модуль фильтра по параметрам стал платный, но я все-равно сторонний платный использовал.
Если звонить из машины, собеседники будут видеть второй номер, а не основной.
Да нет, там номер звонящего. Все как и при прямом звонке, только у звонящего покажет что идет переадресация. У меня, по крайней мере, так это работает. Даже сразу не понял о чем речь.
Первый пункт — можно просто в режим «самолета» ставить, но это да, лишние телодвижения.
А разработку простого сайта за 50–150 т.р. не слишком усложнит?
Я бы пока не использовал его там, где это не нужно. Для объемного кода пока не доросли ни фреймворки ни библиотеки. Вы ниже пишите, что используете чистый PHP, тогда может быть и альтернатива, но лично для меня фреймворки очень экономят время.
SELECT SQL_NO_CACHE news.* FROM news
WHERE AND create_date < CURRENT_DATE AND FIND_IN_SET(50, news.region_ids) AND news.active_status = 1
ORDER BY id DESC LIMIT 3
или так:
SELECT SQL_NO_CACHE COUNT(id) FROM news
WHERE AND create_date < CURRENT_DATE AND FIND_IN_SET(50, news.region_ids) AND news.active_status = 1
Если и тут будет тормозить, то уже только индекс поможет.
Хотя скорее всего проблема в этом:FIND_IN_SET(50, news.region_ids), очень тяжелая операция, лучше избавится от такого.
Я, кстати, понял: без сортировки быстрее, потому что он находит первые три подходящих записи и останавливается, а с ней ищет все, а потом уже сортирует и обрезает.
В общем случае на классах, объектах и, почему бы и не использовать пространстве имен.
Пространство имен + методы — это замена так называемых статических классов или хелперов без состояния, но и они довольно плохой стиль программирования. Если это имеется в виду, я не очень понимаю в чем дилемма.
> с частым обновлением игровой ситуации
На мой взгляд те так уж и часто, что бы держать соединение открытым. То есть, то на что PHP рассчитан.
> и синхронизацией данных для пользователей.
Это проблема базы, в любом случае на каком бы языке вы не писали - плохо держать данные просто в памяти, это проблемы в будущем для масштабирования.
Если вы PHP-программист, то не вижу причин менять язык ради этого проекта.