Задать вопрос
  • Как загрузить сразу все изображения в одно поле в БД?

    index0h
    @index0h
    > Как загрузить сразу все изображения в одно поле в БД?
    В таком случае вы сформулировали вопрос не очень))
  • Какой micro framework посоветуете?

    index0h
    @index0h
    Сергей Протько Можно))
    Илья
    В свое время поигрался с laravel - его люто НЕ рекомендую (см. мой ответ Попросили проверить код, на что смотреть нужно? regretful). Lumen - это тот же Laravel, только кастрированный.
    Slim - ну хз, если вам именно роутер нужен, а не фреймворк - можете брать.

    > А если глянуть на сайте Lumen то по производительности Silex вдалеке.
    )) был тут один, что с пеной у рта доказывал, какой восхитительный CodeIgniter, производительность - была основным аргументом. Увы, производительность и php - это разные вещи. Примите за исходную.

    > Как в вопросах работы с базой?
    Доктрина, лучше пока что нет.
  • Какой micro framework посоветуете?

    index0h
    @index0h
    Я бы конечно рекомендовал Symfony, вот только микрофреймворком его назвать сложно
  • Какой micro framework посоветуете?

    index0h
    @index0h
    Плюшки как у симфони, только проще. Насетапливаете через DI свои зависимости и работаете в абстракнтом вакууме, не зная про фреймворк.
  • Почему многие считают PHP языком с плохой архитектурой, да и вообще просто плохим языком?

    index0h
    @index0h
    rusrc
    > Чистый php и чистый c# - это лишь каркас из операторов.
    Верно, но выше вы сравнивали платформу с языком, что не корректно.

    Честно говоря я не совсем понимаю, что вы пытаетесь мне доказать)) Если asp.net vs php на примере простого CRUD - смысла в этом мало. Что там, что там трудозатраты будут приблизительно одинаковыми.

    Для части задач одна технология лучше, для части - другая. Прототипирование на php например в самый раз
  • Почему многие считают PHP языком с плохой архитектурой, да и вообще просто плохим языком?

    index0h
    @index0h
    Ну вы сравнили целую платформу asp.net с блекджеком и блудницами с чистый php))
    Давайте тогда сравнивать на одном уровне: на чистом C# вы за сколько времени сделаете то же самое? Чот мне кажется, что далеко не за 20 и даже не за день.

    Если уже оценивать со стороны оптимальности решения задачи:
    1. БД проектируем в MySQL Workbench (время проектирование учитывать не стоит, так как структура таблиц должна подходить под конкретные цели бизнеса И может быть довольно сложная), базовую sql-миграцию получаем при заливке схемы.
    2. На том же yii генерируем проект - это одна команда, сама генерация - доли секунды, время по большей части зависит от скорости набора, пусть 10 сек.
    3. Генерируем модель под каждую таблицу - ну хз, секунд по 30:
    - заходим в генератор моделей
    - вводим первые символы названия таблицы
    - жмакаем generate
    4. Генерируем CRUD: тут тоже самое, что и с моделью, только нужно будет еще дополнительно выбрать модель, под которую делать CRUD, ок, пусть это 40 сек.
    Итого: (10 + 30*10 + 40*10) + 3*60(в носу по ковырять) - это приблизительно 15 мин.
  • Есть ли какой-то движок для информационной библиотеки?

    index0h
    @index0h
    @nepster09
    Собсно и в чем проблема? Битбакет вы можете установить локально, гитлаб тоже
  • PHP, нормально ли на каждый запрос открывать коннект к MySQL, делать SELECT и закрывать коннект? Если нет, то как избежать?

    index0h
    @index0h
    OypiStudent
    > Неудачная перефразировка. Вилка
    Увы, вполне удачная. Если будете суп кушать - быстрее таки ложка.
    Данные по тем же вебсокетам не сжимаются например + у вас должно поддерживаться постоянное соединение. В случае LP - вы просто делаете запросы по таймауту. Под нестабильную связь и большой трафик на выгрузку я бы выбрал LP, под мелкий трафик, но критичный по времени - WS.
    Тот же Socket.io поддерживает горячую замену протоколов.

    > Как определить?
    Ну хз, на гуще погадайте, либо посмотрите, что пишет о своем железе хостер.
  • PHP, нормально ли на каждый запрос открывать коннект к MySQL, делать SELECT и закрывать коннект? Если нет, то как избежать?

    index0h
    @index0h
    > Но мы все же о скорости говорим а не удобстве.
    Скорость и stateless язык php - это разные не связанные вещи.

    > Тот же самый Long Polling или SSE реализованный на ноде будет сильно быстрее работать?
    Смотря как напишете, тот же socket.io вполне норм держит нагрузку.

    Нода в отличии от php даст вам постоянное состояние, например в другие сервисы, типа redis нет нужды лезть так как у вас состояние прямо на ноде хранится, съэкономите на лишних сетевых запросах.

    > А вебсокеты сильно быстрее чем Long Polling или SSE?
    Перефразирую ваш вопрос: А ложка сильно быстрее чем вилка, или нож?

    > А если те же вебсокеты, но на PHP с помощью elephant?
    Смысла нет, это вне целевой области php. Можно конечно, но это костыль.

    > memcached? Он разве не требует VPS?
    На многих шаред хостингах есть.
  • PHP, нормально ли на каждый запрос открывать коннект к MySQL, делать SELECT и закрывать коннект? Если нет, то как избежать?

    index0h
    @index0h
    Ну как сказать, "что дает". Система переписки - это штука, в которой нужно хранить некое состояние, при этом быстро + к тому эта задача легко ложится на событийную модель обработки, нода для этого и предназначена.

    > redis как я понимаю нужно поднимать на VPS?
    Ну да

    > на простой хостинг нельзя же его закинуть как какой-нибудь фреймворк или CMSку и спокойно запускать
    Дык простой хостинг вам и не подходит, в чем проблема то? У вас чат система, она существенно отличается от обычных говносайтиков на цмс)). Можете конечно попробовать вместо redis мемкэш заюзать, но будут сложности.

    На счет vps: я этими ребятками пользуюсь уже несколько лет, притензий нет https://m.do.co/c/ca94b4fc3b57
  • Проверка данных. Насколько целесообразно делать так?

    index0h
    @index0h
    hbuser
    Да не вопрос)) Назовите хотя бы один фреймворк, содержащий в себе функционал, на подобии этой либы. Обращаю внимание на 2 вещи:
    1. Не validate, а assert, в смысле бросание исключений
    2. Максимальная производительность. Этот функционал используется в каждом методе для проверки входящих аргументов простых типов (за исключением тестов разве что).

    Фреймворки как правило не налагают на столько жестких ограничений.
    В том же yii как правило проверки происходят в моделях, после их заполнения, часто без явных проверок.
    В симфони это делается либо в аннотациях (что очень очень долго и ресурсоемко), либо в энтити на сеттерах.
    В ларавеле в оф. доке вообще примеры с обработкой пользовательского ввода в моделях.

    > Для начала надо сделать руками хотя бы один раз, чтобы понимать что это и с чем это едят. А человек - новичок.
    Дык тоже не вопрос)) эта либа покрывает далеко не все возможные кейсы, при этом расширить ее собственными очень легко, достаточно заэкстендить, написать свое исключение и свою проверку, все.

    Рекомендую я ее не потому, что "вот смотрите, какой я молодец", а потому, что это приведет реальному снижению количества возможных ошибок и повышению безопасности кода. Чем раньше придет это понимание - тем лучше.
  • Node.js как замена PHP?

    index0h
    @index0h
    > Возможно мы не поняли друг друга, я имею ввиду конфиги вроде i18n...
    Под переводы лучше использовать старый-добрый gettext, сам уже обжигался на этом. На счет конфигурации приложения: очень удобным является метод, на основании констант (как приятный бонус - хранение в RAM без ручного вмешательства).
    Вообще говоря система конфигурации как правило - это задача фреймвока.

    > И если спрашивающий захочет, допустим, написать демона или консольную утилиту, ему придется учить что-то новое, а знай он Node.js он смог бы сделать это без труда.
    Главное, что бы без эффекта утенка)). Дело в том, что при выборе только одной технологии можно очень легко стать ее заложником для ситуаций, где эта технология не совсем применима.

    > так что появись более удобный для меня инструмент, я без особой боли перейду на него.
    что скажете про golang?))
  • Проверка данных. Насколько целесообразно делать так?

    index0h
    @index0h
    В случае тайп хинтинга - необходимости проверять тип нету. Для php7 и выше рекомендую использовать тайп хинтинг всюду.
    Для проверки именно значения переменной - стоит использовать библиотеку. Учитывая, что данную либу рекомендую использовать в каждом методе с аргументами простых типов - требования к производительности очень высокие. Быстрее на данный момент только нейтивный код.
  • Проверка данных. Насколько целесообразно делать так?

    index0h
    @index0h
    hbuser
    Смысл есть. Фреймворк - это каркас для бизнес логики, ему как бы все равно, как вы ее реализуете.
    Либа же предназначена для легкого и быстрого выполнения проверки аргументов. Это не сравнимые вещи.
  • Node.js как замена PHP?

    index0h
    @index0h
    HoHsi
    > а в чем костыльность нативных await?
    нейтивные - это принятые стандартом языка, ES7 на данный момент еще не принят, так что ни о какой нейтивности не может быть и речи.
    На счет либ, что вы сбросили - да, есть еще async. А теперь скажите мне, эмулировать синхронность - это не костыль?))

    > это уход от проблемы, а не ее решение
    Ну как сказать, в случае разделения нод между серверами вам так или иначе придется использовать внешние хранилища, типа redis или memcache, даже на ноде (например под те же сессии). На счет opcache - он и так в ram хранится.

    > А почему мы сравниваем только вэб?
    потому, что автор спросил про замену php, а php - это web.

    > но язык учится не на один проект, и куда перспективнее знать Node.js, а не PHP.
    Посмотрите количество вакансий php и node, обычно перспективней учить то, что более востребовано))
  • Node.js как замена PHP?

    index0h
    @index0h
    HoHsi
    Да я не спорю, что можно и на ноде в синхронность. На пхп тоже демонов пишут. Вот только зачем? Что там что тут это костыль для решения не свойственных задач.

    На счет памяти и конфигов: это решается через кодогенерацию+opcache, посмотрите симфони и доктрину. Можно использовать и что-то более общее redis например.

    На счет С++ либ: собсно и что с того? Мы же тут сравниваем под web вроде как. Если бизнес задачи требуют писать либы на С++ вполне возможно, что ни нода ни пхп вам просто не подходят, и стоит смотреть в направлении java, с#, c++, golang...

    OnYourLips
    Может, но далеко не всегда это правильное решение.
  • Node.js как замена PHP?

    index0h
    @index0h
    Это как сравнивать ложку с вилкой, если едим кашу. Но ложка хороша под борщ, а вилка под макароны.
  • Node.js как замена PHP?

    index0h
    @index0h
    Ничего не мешает, вот только зачем? Просто больше времени потратите.

    Правда на подобных проектах делать сравнение не самая лучшая идея.
  • Какие способы релизации шаблонов и хуков есть в PHP?

    index0h
    @index0h
    Ну это ясно, что wp, или drupal или еще какая cms))

    > Там мало того, что можно предопределить любую стандартную функцию
    переопределять функцию в php можно только за счет расширения runkit, но подобное можно делать исключительно для тестирования, а для живого сайта это огромнейшая дыра в безопасности.

    > описать функции которые будут выполняться до и после.
    На сколько я помню (последний раз тыкал wp ~6 лет назад) до и после определяется на базе названия функции, а не на основании кода, в котором она находится.

    Подход хуков (по крайней в терминологии wp) является антипаттерном и хотел вас предостеречь))