artem
Добивание
Добивание это бинарники. Какой-то пример на смещение
Alexey Mishurovskiy
почему плохо в сервис засовывать целиком контейнер и т.д.
Юра
Он работает. У него есть логика и она выполняется последовательно. Сумма выполнения последовательных операций дает ожидаемый результат
Gleb
Когда 7-ка вышла чот такое было
там рассказывали что типа array() - это вызов "функции", а [] - непосредственно операция или структура, не помню уже. Я тогда гуглил, максимум что нашел - одинаковый опкод там и там.
Gleb
Я на каком то собесе слышал что лучше аррай, ТК функции быстрее отрабатывают
мне говорили наоборот, типа накладные расходы на вызов функции. 🤷🏻‍♂️
artem
Пошли бенчмарк?)))
Юра
Может это не вызов фции а специальная конструкция
artem
Может это не вызов фции а специальная конструкция
Аррай это функция. Эхо как пример конструкции
Юра
Еще (int) и intval надо узнать чем отличаются
Юра
Хотя там понятно, там можно передать base
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)
Gleb
Кто-то умеет это читать?)
Gleb
Вообще как я понимаю опкод по прежнему одинаков для обоих конструкций.
Konstantin
должно быть так, да
Gleb
В доке попался ещё очень-очень старый комментарий про скорость работы. https://www.php.net/manual/en/function.array.php#50097 Стало интересно. Это они настолько оптимизировали, что первая конструкция сразу разворачивается в структуру данных? О_о Без отдельного добавления элементов?
Юра
Можно проверить phpdbg
Gleb
Так я им собственно и воспользовался.
artem
a=a-b (4) b=a+b (7) a=b-a (3)
Мне брат только что слезу от смеха выбил))) b = 7 a = 3 Расходимся. Это же переменные
Gleb
Мне брат только что слезу от смеха выбил))) b = 7 a = 3 Расходимся. Это же переменные
А мы тут оверинжинирингом балуемся (с) Кто-то из Карлсонов)
Dmitriy
Всем привет! Помогите настроить apache. Проблема в следующем: все запросы apache возвращает в url index.php. Т.е. если я отправляю запрос на роут /api, то запрос не проходит. Если отправляю запрос на /index.php/api, то всё нормально. Конфиг apache брал из документации (https://symfony.com/doc/current/setup/web_server_configuration.html). Подскажите, какие параметры добавить в конфиг, чтобы удалить из url index.php? apache.conf: <VirtualHost *:80> # ... DocumentRoot /var/www/html/public <Directory /var/www/html/public> AllowOverride None <IfModule mod_negotiation.c> Options -MultiViews </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$ RewriteRule .* - [E=BASE:%1] # Sets the HTTP_AUTHORIZATION header removed by Apache RewriteCond %{HTTP:Authorization} .+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ %{ENV:BASE}/index.php [L] </IfModule> <IfModule !mod_rewrite.c> <IfModule mod_alias.c> RedirectMatch 307 ^/$ /index.php/ </IfModule> </IfModule> </Directory> </VirtualHost>
Gleb
Всем привет! Помогите настроить apache. Проблема в следующем: все запросы apache возвращает в url index.php. Т.е. если я отправляю запрос на роут /api, то запрос не проходит. Если отправляю запрос на /index.php/api, то всё нормально. Конфиг apache брал из документации (https://symfony.com/doc/current/setup/web_server_configuration.html). Подскажите, какие параметры добавить в конфиг, чтобы удалить из url index.php? apache.conf: <VirtualHost *:80> # ... DocumentRoot /var/www/html/public <Directory /var/www/html/public> AllowOverride None <IfModule mod_negotiation.c> Options -MultiViews </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$ RewriteRule .* - [E=BASE:%1] # Sets the HTTP_AUTHORIZATION header removed by Apache RewriteCond %{HTTP:Authorization} .+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ %{ENV:BASE}/index.php [L] </IfModule> <IfModule !mod_rewrite.c> <IfModule mod_alias.c> RedirectMatch 307 ^/$ /index.php/ </IfModule> </IfModule> </Directory> </VirtualHost>
Проверьте что есть mod_rewrite и он включен.
Konstantin
мож нжинкс лучше освоить заодно? апач - это какой-то бесполезный навык в 2022, лучше потратить время на изучение чего-то нормального вместо технологий из 90х
Konstantin
при определенном желании - вполне
Dmitriy
Почему?
потому что 2 процесса, не лучшее решение для контейнера
Konstantin
в продакшне все равно мод_пхп нельзя
Konstantin
а если это дев-контейнер, то почему бы и не насрать на эти ограничения?
Gleb
А вот это тут причем?
А потому что как только нет .htaccess, где они могут писать редиректы - сразу появляется требование поставить apache)
Ivan
Странное утверждение в общем
Konstantin
а если это дев-контейнер, то почему бы и не насрать на эти ограничения?
они скорее концептуальны, чем сильно мешают. банально - официальный образ php-fpm вполне себе спавнит процессы внутри, множество софта запускается со своим инитом что спавнит процессы (гитлаб, например). и вроде никто не умер
Dmitriy
а если это дев-контейнер, то почему бы и не насрать на эти ограничения?
согласен, думал взять образ готовый php+apache, думал быстрее будет настроить чем nginx пихать в контейнер. в итоге с конфигами подвис
Konstantin
я понимаю что вопрос был "как настроить апач", а не "посоветуйте веб-сервер". просто хотел сказать что лучше таки изучать правильные штуки, чем ковырять говно
Gleb
Ну могут писать в nginx
Они обычно не умеют. )
Konstantin
согласен, думал взять образ готовый php+apache, думал быстрее будет настроить чем nginx пихать в контейнер. в итоге с конфигами подвис
а если подглядеть как php с апачем образ сделан? официальный который. там должно точно все работать
Konstantin
с нжинксом готов помочь, если что
Dmitriy
а если подглядеть как php с апачем образ сделан? официальный который. там должно точно все работать
так у меня всё работает, просто все запросы нужно на index отправлять
Dmitriy
с нжинксом готов помочь, если что
спасибо, где-то видел на докер хабе php+nginx посмотрю сейчас его
Dmitriy
с нжинксом готов помочь, если что
на проде связка php-fpm + nginx - нормально?
Konstantin
да, вполне. есть более хипстерские штуки (nginx unit, вечно неработающий roadrunner). но золотой стандарт индустрии пока - это как раз эта связка
Юра
Кто-то сталкивался с такой ошибкой композера?
Юра
как они надоели своими изменениями
Юра
Shokha
Первый раз вижу
Konstantin
а ты как авторизовывался?
Юра
Ну перешел там по ссылке, создал токен
Юра
Ввел токен, оно пошло дальше и вывалило вот это вот
Konstantin
слеш какой-то странный на конце
Konstantin
после .git
Юра
вообще не понимаю что происходит, и зачем нужны какие-то токены и т.д.
Konstantin
у гитхаба по дефолту очень жесткие рейтлимиты для неаутентифицированных пользователей
Konstantin
а композер за средний инсталл делает туда сотни запросов, которые гитхаб в какой-то момент начинает банить. поэтому композер вынужден требовать ридонли-токен для гх, чтобы рейтлимиты были мягче, тк запросы совершаются от имени какого-то пользователя
Юра
короче говорят что symfony/webpack-encore-pack уже слишком стар
Konstantin
вероятно так
Юра
я его снес и вместо него symfony/webpack-encore-bundle
Юра
там старый проект не спрашивайте )
Konstantin
а ну короче понятно. логика такая: если пакета нету, композер думает что он есть, просто приватный. вероятно гитхаб на приватный проект для анона выдает 404, а не 403, и композер не может отличить одно от другого. поэтому он подумал, что ты просто хочешь приватный пакет поставить, а для этого нужно авторизоваться
Юра
Сам фабьен приходит и бьёт
The Ant
кому вообще в голову приходит свитч переменной? лично мне за почти 10 лет ниразу это говно не понадобилось
Павел
че такое web3.0
Shokha
че такое web3.0
Web3 — концепция нового, третьего поколения интернета, децентрализованного и работающего на блокчейне и экономике токенов. Она противопоставляется Всемирной паутине Web2, работающей на базе централизованных платформ для социального взаимодействия между пользователями.
Иван
че такое web3.0
маркетинговое говно