• Каково нормальное значение memory_limit (PHP как модуля Apache) для современных скриптов?

    Sanes, гражданина, который за всю жизнь еще не разу не отхавал.

    Пойми же, что "лимит памяти на один скрипт" умножается на "число скриптов" которое равно "числу юзеров". Если ты даешь 256мб одному скрипту - ты разработчикам даешь право писать код, который работает хуже чем должен. Когда у них падает по 32мегабайт памяти они должны делать вывод что написали криво.
  • Почему Cron не влияет на работу сайта?

    Ну тут сложновато "просто запустить" чтобы отследить результат. Но общая идея здесь "вы используете консоль", а не "браузер".

    Любой скрипт запущенный из консоли типа "php index.php" уже фоновый. И идея в том, что вы пишете программу внутри которой есть

    while (true) {
      // ... какие-то действия
      usleep(250000); // ожидаем 250мс
    }


    В итоге программа не закрывается и работает постоянно, каждые 250 мс что-то проверяя.

    К вопросу - "что именно" - используется например Redis, у которого есть "очередь в оперативной памяти" (но это не значит что нельзя использовать текстовый файл и с него читать, просто редисом быстрее работает, да и написать не сильно дольше). То есть из основного сайта в очередь закидывается "что надо сделать" и "данные", а из этого второго проверяется "что-то пришло в очередь? да? делаем то что написано. нет? ничего не делаем, ждем еще 250мс".

    В итоге из сайта ты создаешь "задачу", она же "джоба", она же "воркер", а второй скрипт который всегда запущен её разгребает и в простом случае "что-то делает", в более сложном - запускает третий скрипт, который уже делает работу, чтобы второй тоже пореже падал и ломался.

    На всякий случай, чтобы он совсем не падал, на линукс ставится supervisor.d, который следит за упавшими программами и автоматически их подымает. Настраивается буквально по статье в интернете минут за 30.
  • Как изменить текст кнопки?

    Обычно открытие сайта в пхп шторме это про "правой кнопкой на папку с сайтом - Открыть в пхп-шторм", он потом подумает минутку пока разберется что где, но тут функционал что нужен уже будет работать, хотя и будет казаться первых недели две жутко неудобным, потом без него просто не сможешь. Он помнит за тебя то, что ты помнил раньше на бумажке. Да, он НАСТОЛЬКО хорош.

    У него только один минус. Грузится медленнее чем твой же notepad, ну и может со вкладками стоило бы им поработать получше, зато функционала под капотом в столько крат больше, что едва ли тебе понадобится что-то ещё. Впрочем я сам ставлю и notepad/sublime и шторм. Мелкие редакторы удобны когда надо что-т поправить за секунду, а шторм, когда создаем что-то.
  • Делаю 'git push -u' - получаю 'fatal: Текущая ветка some-branch не имеет вышестоящей ветки' - как исправить и почему такое?

    Сергей Кузнецов, так он помоему за "git push" говорил. Сам сколько раз делал, пуш заливает и создает на ремоте. Но спорить не буду. Не гений я.
  • Как изменить текст кнопки?

    А вы попробуйте на двух сразу. (издевается)

    Вордпресс это движок, а пхпшторм - редактор.
  • Каково нормальное значение memory_limit (PHP как модуля Apache) для современных скриптов?

    Sanes, умножаем на число юзеров на сайте одновременно, вспоминаем что еще есть база данных, которой тоже надо (может даже пару гигабайт), и супервайзор и пару сервисов на линуксе, включая php-fpm, и вдруг понимаем, что сайт может держать 100 человек, и всё... Вспоминаем что у нас новостник типа onliner / washington post / novyny.live, где сидят 10тысяч и чешем голову "что же делать"

    Программы работающие с ТЕКСТОМ (а именно такой программой является PHP) у наших дедов работали на компьютерах где оперативки было 256мегабайт или меньше. И работали ведь! И форумы даже писали.
  • Делаю 'git push -u' - получаю 'fatal: Текущая ветка some-branch не имеет вышестоящей ветки' - как исправить и почему такое?

    Если у вас уже есть локальная ветка и вы хотите настроить ее на слежение за удалённой веткой, которую вы только что получили, или хотите изменить используемую upstream-ветку, то воспользуйтесь параметрами -u или --set-upstream-to для команды git branch, чтобы явно установить новое значение.


    $ git branch -u origin/serverfix
    Branch serverfix set up to track remote branch serverfix from origin.


    Есть ТУТ. в ТУТ есть ветка. Есть ТАМ. В ТАМ тоже есть ветка. У ВЕТКИ тут - есть привязка-следилка к ВЕТКЕ там.

    Привязка создается сама при создании ветки на ТУТ, когда ТАМ точно такая же уже есть, но не наоборот. Если ТУТ сначала создал - надо привязывать к ветке ТАМ, которая будет создана ТАМ, после первого пуша, если её не было. Если не привяжешь - придется каждый раз имя писать.

    origin это не ветка, это имя сервака (алиас). таких ориджинов может быть 2-3 или 100. а в каждом ориджине - ветки.

    -u это короткая опция --set-upstream-to, она не содержит параметров "ориджин" и "текущая ветка"
  • Как лучше работать с двумя связями к одной таблице, отличающихся лишь сортировкой или фильтром?

    gzhegow
    @gzhegow Автор вопроса
    Константин Б., вроде и так можно да. Если это лучшее решение на ваш взгляд, соглашаюсь тогда.

    Просто, там ещё пару полей запрашивается для этой сортировки. С одной стороны пофиг, можно сразу все запросить...

    Может и вправду, зачем сортировать всё на уровне бд, когда картинок будет от силы 5-10 штук...

    А есть у коллекции метод, который позволяет типа loadMissing() но для полей, а не для связей? Типа "refreshColumns" ?
  • Как построить Closure Table для целой таблицы одним рекурсивным запросом или как правильно это делать для большого числа записей?

    gzhegow
    @gzhegow Автор вопроса
    Пока не совсем ответ на вопрос, но нашел у себя бесполезный JOIN который всю таблицу джоинил, а потом через WHERE её скрывал. Понял не дурак, дурак бы не понял.

    Но вопрос генерации для пачки пока открыт.

    Эксперимент со стеками провел, в принципе пашет, но может кто знает умнее, чтоб на SQL
  • Как правильно фильтровать значения json с помощью whereJsonContains в laravel?

    Основная проблема поиска в поле JSON, что чтобы достать эту самую пачку записей базе нужно обойти ВСЕ записи ПО ОДНОЙ распаковать этот json, проверить поле и дать тебе совпавшие. Идея баз данных в том, чтобы запросы обходили не КАЖДУЮ запись, а использовав заранее сделанный ИНДЕКС проверяли только пару десятков записей вместо миллионов.

    По факту там ЕСТЬ индексирование поля из JSON которое по сути делает то, что я говорю само для тебя, но не создает при этом целую таблицу, а сохраняет "как бы" в кеш (алфавитный указатель делает, индекс) и поиск в итоге быстро происходит, но сам синтаксис запроса в коде и неочевидность такого процесса сломают тех, кто попытается это изменить или исправить. Тогда как когда есть таблица и поля и ты ищешь по ним, это скажем так большему числу специалистов будет понятно.

    Чаще всего когда работают с JSON отталкиваются от того, что у нас есть только `id`, а остальное черный ящик, из которого можно уже потом вывести, чем фильтровать, а для организации поисков нужные данные выдергивают в таблицы, json же лежит для справки, если что-то не так идет можно пробежаться руками и перепроставить поля из json, он типа "контрольные данные".
  • Как правильно фильтровать значения json с помощью whereJsonContains в laravel?

    denis-chenykh, почти правильно, рационально хранить - в json, рационально искать - из полей.

    Формально ты не обращаешься много раз, ты вытаскиваешь записи со всеми полями (или с двумя-тремя полями) по критерию, и потом что-то с ними делаешь. Базы данных это про работу с пачкой чаще всего. Ты вытягиваешь пачку, что-то с ней делаешь и обратно кладешь. Можно и по одной, но лучше пытаться сразу пачку.
  • Как правильно фильтровать значения json с помощью whereJsonContains в laravel?

    denis-chenykh, поэтому параметры выносятся в отдельную таблицу и являются там строками а не колонками.

    car
    // id, name, title, param1, param2


    car_params
    // id, car_id, param_name, param_value
  • Связка laravel + bootstrap + vue пойдёт для web 2.0 стартапа?

    Аль Капоне, то есть ты надеешься что 4 запроса к апи (я авторизован? получи токен? получи профиль? сделай действие?) на каждой странице фронтенда это лучше чем один запрос выдающий хтмл из кеша?

    Или хранить под каждый запрос кеш десятка записей из базы и потом думать "а кеш этого запроса лучше свежий взять, или старый?" Куда проще оттолкнуться от того, кешируется ли вся страница (т.н. задача из тз), чем кешировать ли апи, а что если эта же апи нужна для кешированной страницы и не кешированной.

    Ну да ну да.

    Если один будешь делать придется по месяцам тебе разделить - когда фронт когда бек. Постоянно переключаться с языка на язык - сущий ад... Это возможно, да. Но мораль будет падать быстрее, чем в одном языке искать проблемы.

    Ты приобретешь больше головняка. Но! Ты приобретешь ценный опыт.
  • Какие подводные камни есть в том, чтобы просто подавить вывод "Trying to get property 'someProp' of non-object" через error_reporting?

    То что оно показывает говорит о том, что работает не так как должно, транзакция ролбэчится чаще чем нужно, что-то не долетает до базы.

    Моральный вопрос решается оплатой.
    Учитывая что наши "влиятельные хозяева" не умеют ни во что кроме языком чесать и сделки заключать - то для них "выглядит что все нормально" - экономичнее, а значит разумнее.

    К полетам в космос такая постановка вопросов не идет. Если ракета угрожает жизни людей и время от времени светится красной кнопкой - то знак это нехороший. Но разве есть пхп проект который угрожает жизни людей? А вот и есть. Твоей. Когда ты поймешь что идет не так, но они уже потеряют достаточно денег, чтобы ТЫ остался без работы.

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

    Молчи, и позволь пойти ко дну кому другому.
    Или перерабатывай и делай на совесть согласно своему внутреннему моральному кодексу.

    Брага рекрутеров которая присосалась к нашим деньгам все равно это не оценит, они оценят только деньги, которые им платят.

    Шо делать? А профсоюз. Но как если на вопрос "вуе не подходит" они отвечают "бред полный". То есть они готовы хвалить свою компанию потому, что их жизнь хороша и им хорошо платят. Не будет профсоюза. И улучшения ситуации тоже. А уволят сначала тех, кто делает по моральному кодексу и говорит правду. А другие переждут и продолжат уничтожать всё к чему прикасаются. Жизнь давно (начали в 63м Косыгин, потом в 91м переломный, 24 февраля - добивающий) сделали игрой, в которой нужно уничтожать, а не строить, ведь прибыли получаются из экспорта, а не из уровня жизни. Если продали - ну и заебис.

    Этим долбанным странам не хватает соревнования "в какой стране меньше бедных", чтобы это вело к финансированию или допуску на увеличение вооруженных сил. Иначе а зачем вообще мы? Не, нужны те, кто (а точнее "то", что) работает, а значит - наполняет карман, а "мы" - это мусор.
  • Связка laravel + bootstrap + vue пойдёт для web 2.0 стартапа?

    Аль Капоне, который спросил "подойдет ли" и выделил ответом "да", оставив ответ "нет" за скобками. Вы общественное мнение проверяли?