artem
Добивание
Добивание это бинарники. Какой-то пример на смещение
Alexey Mishurovskiy
почему плохо в сервис засовывать целиком контейнер и т.д.
Юра
Он работает. У него есть логика и она выполняется последовательно. Сумма выполнения последовательных операций дает ожидаемый результат
Gleb
Когда 7-ка вышла чот такое было
там рассказывали что типа array() - это вызов "функции", а [] - непосредственно операция или структура, не помню уже.
Я тогда гуглил, максимум что нашел - одинаковый опкод там и там.
artem
artem
Пошли бенчмарк?)))
Юра
Может это не вызов фции а специальная конструкция
artem
Юра
Еще (int) и intval надо узнать чем отличаются
Юра
Хотя там понятно, там можно передать base
artem
Gleb
Пошли бенчмарк?)))
Это то что накинули мне
Версия php 7 указана с целью запутать, да короткое объявление массива введено с версии 5.4 и такой короткий способ объявления массива является более предпочтительным. т.к. является более наглядным и удобочитаемым. Но кроме того и более быстрым https://stackoverflow.com/questions/26651996/php-array-vs-in-method-and-variable-declaration.
Gleb
Это то что наквырял тогда я. Кстати да, движок не PHPNG, у кого-то есть свежие данные?
testing 1 million []s ( with $arr[] = [] )
started at : 1561298821.8754
ended at: 1561298822.6881
difference: 0.81266021728516 seconds
testing 1 million array()s ( with array_push( $arr, array()) )
started at : 1561298822.6881
ended at: 1561298823.843
difference: 1.1549289226532 seconds
testing 1 million []s ( again while the processor is hotter)
started at : 1561298823.8431
ended at: 1561298824.7448
difference: 0.9017219543457 seconds»
в методике говорится о том, что использовались разные способы добавления элементов в массив «with $arr[] = []» и «with array_push( $arr, array())», что не дает повод делать однозначный вывод о производительности только методов объявления массивов. Нет данных об используемом железе, был ли это боевой или голый тестовый сервер, была ли сторонняя нагрузка в момент теста, была ли перезагрузка после каждого теста (кроме последней итерации на «прогретом» процессоре). Так же нет важных данных — данных о том, что тест был проведен на версии php7+. По дате публикации можно предположить, что использовалась php7+, но этого как вы понимаете недостаточно для таких утверждений.
Инициализация массива имеет только один opcode в движке Zend Engine 2 https://www.php.net/manual/en/internals2.opcodes.init-array.php , разница в скорости возможна только на уровне работы парсера кода, но парсинг кода выполняется один раз и не даст разницу в 0,3-0,4 секунды. Данных по движку PHPNG нет, но не думаю, что они реализовали два разных кода для инициализации массива.
Gleb
То-то я думаю не могу сейчас опкодов нагуглить. А они закрыли их.
Юра
За 0.4 секунды там весь файл пару раз распарсится
Юра
А то даже наверное сотенка. Ладно не сотенка возможно но пару десятков точно
Юра
Вообще так как раньше пхп парсился каждый раз, то парсер там должен был быть вылизан до идеала
Gleb
Так там ещё и на самом деле сравнивалась не инициализация пустого массива а ещё присвоение и array_push
Сергей
a=a-b (4)
b=a+b (7)
a=b-a (3)
Konstantin
Gleb
Кто-то умеет это читать?)
Gleb
Вообще как я понимаю опкод по прежнему одинаков для обоих конструкций.
Konstantin
должно быть так, да
Gleb
В доке попался ещё очень-очень старый комментарий про скорость работы. https://www.php.net/manual/en/function.array.php#50097
Стало интересно. Это они настолько оптимизировали, что первая конструкция сразу разворачивается в структуру данных? О_о Без отдельного добавления элементов?
Юра
Можно проверить phpdbg
Gleb
Так я им собственно и воспользовался.
Gleb
artem
Gleb
Konstantin
мож нжинкс лучше освоить заодно? апач - это какой-то бесполезный навык в 2022, лучше потратить время на изучение чего-то нормального вместо технологий из 90х
Gleb
Dmitriy
Gleb
Konstantin
при определенном желании - вполне
Ivan
Dmitriy
Почему?
потому что 2 процесса, не лучшее решение для контейнера
Konstantin
в продакшне все равно мод_пхп нельзя
Konstantin
а если это дев-контейнер, то почему бы и не насрать на эти ограничения?
Gleb
А вот это тут причем?
А потому что как только нет .htaccess, где они могут писать редиректы - сразу появляется требование поставить apache)
Ivan
Ivan
Странное утверждение в общем
Konstantin
я понимаю что вопрос был "как настроить апач", а не "посоветуйте веб-сервер". просто хотел сказать что лучше таки изучать правильные штуки, чем ковырять говно
Konstantin
Konstantin
с нжинксом готов помочь, если что
Dmitriy
Konstantin
да, вполне. есть более хипстерские штуки (nginx unit, вечно неработающий roadrunner). но золотой стандарт индустрии пока - это как раз эта связка
Dmitriy
Юра
Кто-то сталкивался с такой ошибкой композера?
Юра
как они надоели своими изменениями
Shokha
Юра
Shokha
Konstantin
а ты как авторизовывался?
Юра
Ну перешел там по ссылке, создал токен
Юра
Ввел токен, оно пошло дальше и вывалило вот это вот
Konstantin
слеш какой-то странный на конце
Konstantin
после .git
Юра
вообще не понимаю что происходит, и зачем нужны какие-то токены и т.д.
Konstantin
у гитхаба по дефолту очень жесткие рейтлимиты для неаутентифицированных пользователей
Konstantin
а композер за средний инсталл делает туда сотни запросов, которые гитхаб в какой-то момент начинает банить. поэтому композер вынужден требовать ридонли-токен для гх, чтобы рейтлимиты были мягче, тк запросы совершаются от имени какого-то пользователя
Юра
короче говорят что symfony/webpack-encore-pack уже слишком стар
Konstantin
вероятно так
Юра
я его снес и вместо него symfony/webpack-encore-bundle
Юра
там старый проект не спрашивайте )
Konstantin
а ну короче понятно. логика такая: если пакета нету, композер думает что он есть, просто приватный. вероятно гитхаб на приватный проект для анона выдает 404, а не 403, и композер не может отличить одно от другого. поэтому он подумал, что ты просто хочешь приватный пакет поставить, а для этого нужно авторизоваться
The Ant
Юра
Сам фабьен приходит и бьёт
The Ant
кому вообще в голову приходит свитч переменной? лично мне за почти 10 лет ниразу это говно не понадобилось
Null
Павел
че такое web3.0
Shokha
че такое web3.0
Web3 — концепция нового, третьего поколения интернета, децентрализованного и работающего на блокчейне и экономике токенов. Она противопоставляется Всемирной паутине Web2, работающей на базе централизованных платформ для социального взаимодействия между пользователями.