Предновогодний PHP-сюрприз: представьте себе элемент формы с пробелами в атрибуте name
Ответ:
Откуда взялись подчёркивания вместо пробелов в ключе
Более того, на подчёркивания заменяются не только пробелы:
chr(32) ( ) (space)
chr(46) (.) (dot)
chr(91) ([) (open square bracket)
chr(128) - chr(159) (various)
https://www.php.net/manual/en/language.variables.external.php
<input type="text" name="имя с пробелом">, делаем submit формы в браузере, что увидим в $_POST?Ответ:
['имя_с_пробелом' => ...]Откуда взялись подчёркивания вместо пробелов в ключе
'имя_с_пробелом'? Оказывается, это сделано для совместимости с register_globals (есть олды, которые помнят register_globals?)!Более того, на подчёркивания заменяются не только пробелы:
chr(32) ( ) (space)
chr(46) (.) (dot)
chr(91) ([) (open square bracket)
chr(128) - chr(159) (various)
https://www.php.net/manual/en/language.variables.external.php
❤13🙈8👍5
Крутанул слот-машину, в следующем году всё ок https://tproger.ru/interactive/slot-machina-2022/
🔥4😁2🥱1
Свежие PHP-инсайды: Валентин (телеграм канал Пых) перешел на Roadrunner! https://t.me/phpyh/341
❤6😁3🤡1
Все уже, наверное, слышали про ChatGPT, который пишет более менее вменяемый код в некоторых случаях.
Ещё один пример:
- ChatGPT решил поставленную задачу с помощью рекурсивного алгоритма
- Человек попросил сделать без рекурсии и ChatGPT выдал решение без рекурсии
- Человек нашел ошибку, ChatGPT разобрал причины своей ошибки и исправил
Ссылка на видео с нужным таймкодом (на русском): https://youtu.be/Bn3Vv2KvhE0?t=1762
Ещё один пример:
- ChatGPT решил поставленную задачу с помощью рекурсивного алгоритма
- Человек попросил сделать без рекурсии и ChatGPT выдал решение без рекурсии
- Человек нашел ошибку, ChatGPT разобрал причины своей ошибки и исправил
Ссылка на видео с нужным таймкодом (на русском): https://youtu.be/Bn3Vv2KvhE0?t=1762
🔥6👍3😁3🤔1😢1
1 января скопировал директорию c рабочими проекатами в локальную директорию Yandex.Disk - началась выгрузка в облако.
Клиент диска иногда показывает текущую скорость upload 5-10 Мб/сек, а иногда просто пишет статус "Syncing" - подозреваю, что он так индексирует изменения, обменивается метаинформацией с сервером.
Размер директории всего около 10 Гб, при скорости 5 Мб/сек должно было выгрузиться за 33 минуты, прошло уже 60 часов. И не понятно где посмотреть процент выполненного.
Но есть специфика: внутри около 350тыс мелких файлов в различных директориях node_modules и vendor - возможно, это сильно усложняет работу для Яндекс Диска. Пробовал нагуглить похожие жалобы по выгрузке node_modules в Яндекс.Диск, но не нашел.
Для сравнения Dropbox отлично справляется с задачей выгрузи сотен тысяч мелких файлов из node_modules.
Клиент диска иногда показывает текущую скорость upload 5-10 Мб/сек, а иногда просто пишет статус "Syncing" - подозреваю, что он так индексирует изменения, обменивается метаинформацией с сервером.
Размер директории всего около 10 Гб, при скорости 5 Мб/сек должно было выгрузиться за 33 минуты, прошло уже 60 часов. И не понятно где посмотреть процент выполненного.
Но есть специфика: внутри около 350тыс мелких файлов в различных директориях node_modules и vendor - возможно, это сильно усложняет работу для Яндекс Диска. Пробовал нагуглить похожие жалобы по выгрузке node_modules в Яндекс.Диск, но не нашел.
Для сравнения Dropbox отлично справляется с задачей выгрузи сотен тысяч мелких файлов из node_modules.
🤔7👍4😁4
This media is not supported in your browser
VIEW IN TELEGRAM
Кирилл Мокевнин из Хекслета про популярность PHP vs Python vs JS среди студентов курсов
👍14❤4🤔4⚡1🤡1
Разбирал сохранённые плейлисты на YouTube, нашел простой и интересный доклад с PHP UK 2017: разбор определений базовых терминов
- parameter vs argument
- lexical scope vs dynamic scope
- recursion
- concatenation
- instantiation
- …
https://youtu.be/iNrmKyA1vig
- parameter vs argument
- lexical scope vs dynamic scope
- recursion
- concatenation
- instantiation
- …
https://youtu.be/iNrmKyA1vig
YouTube
PHP UK Conference 2017 - Jennifer Wong - I Think I Know What You’re Talking About, But I'm Not Sure
Recursion, instantiate, lexical scope - where do these words come from?! If you’ve ever been in conversation with other developers and thought, “I think I know what they’re talking about, but I’m not sure...”, you’re not alone. Let’s delve into the weird…
👍8
Forwarded from Пых (Валентин Удальцов)
Самописные инфраструктурные компоненты vs компоненты фреймворка. Когда усилия стоят того?
Мы с Петром Мязиным врываемся в 2023 c анонсом нового эпизода подкаста Пятиминутка PHP про самописные инфраструктурные компоненты. Завтра запишем, через неделю Пётр выложит!
А пока в комментариях напишите вопросы по этой теме и кейсы, которые вы бы хотели, чтобы мы разобрали.
Мы с Петром Мязиным врываемся в 2023 c анонсом нового эпизода подкаста Пятиминутка PHP про самописные инфраструктурные компоненты. Завтра запишем, через неделю Пётр выложит!
А пока в комментариях напишите вопросы по этой теме и кейсы, которые вы бы хотели, чтобы мы разобрали.
🔥10👍3🤔1
Публичный roadmap развития PhpStorm https://blog.jetbrains.com/phpstorm/2023/01/what-s-next-in-phpstorm-the-2023-1-public-roadmap/
The JetBrains Blog
What’s Next in PhpStorm: The 2023.1 Public Roadmap | The PhpStorm Blog
In the first release of 2023, we aim to improve performance and bring faster indexing, add 3v4l integration, improve support for generics, as well as PHPStan and Psalm tags, add support for multi-comp
👍6
Пых
Самописные инфраструктурные компоненты vs компоненты фреймворка. Когда усилия стоят того? Мы с Петром Мязиным врываемся в 2023 c анонсом нового эпизода подкаста Пятиминутка PHP про самописные инфраструктурные компоненты. Завтра запишем, через неделю Пётр…
Записали с Валентином отличный выпуск подкаста, теперь надо смонтировать!
Начали с общих рассуждений о плюсах и минусах самописных инфраструктурных компонент, слово за слово, и вот мы уже разбираем outbox паттерн и реализацию exchange и middleware для шины сообщений на PHP 🤯
Начали с общих рассуждений о плюсах и минусах самописных инфраструктурных компонент, слово за слово, и вот мы уже разбираем outbox паттерн и реализацию exchange и middleware для шины сообщений на PHP 🤯
👍14🔥4😁3
Forwarded from Стартап дня. Александр Горный.
ПРОГРАММИРОВАНИЕ'2023
Чуть-чуть попрограммировал, причем, так уж вышло, на PHP, на котором свободно я не писал никогда. Бизнес-задача решена, код занял 14 строк. Гуглить пришлось пять раз, в двух случаях поисковик не помог, зато помог ChatGPT. Понятно, что в обоих я бы в итоге и правильный запрос к Google подобрал, как-то люди и до OpenAI кодили, но всё равно прогресс приятен.
В реальной жизни мне это в голову не пришло, сейчас попросил чат сразу написать весь скрипт. Получилась почти буква-в-букву моя первая версия, с теми же двумя проблемами, ради которых к нему и пришлось обращаться.
#ai #chatgpt
——
http://t.me/startupoftheday — рассказ о новом стартапе каждый день. Кратко и без воды.
Чуть-чуть попрограммировал, причем, так уж вышло, на PHP, на котором свободно я не писал никогда. Бизнес-задача решена, код занял 14 строк. Гуглить пришлось пять раз, в двух случаях поисковик не помог, зато помог ChatGPT. Понятно, что в обоих я бы в итоге и правильный запрос к Google подобрал, как-то люди и до OpenAI кодили, но всё равно прогресс приятен.
В реальной жизни мне это в голову не пришло, сейчас попросил чат сразу написать весь скрипт. Получилась почти буква-в-букву моя первая версия, с теми же двумя проблемами, ради которых к нему и пришлось обращаться.
#ai #chatgpt
——
http://t.me/startupoftheday — рассказ о новом стартапе каждый день. Кратко и без воды.
🤯3
Forwarded from Senior Software Vlogger
Сеньор джуну в Яндексе:
— Ты отправил код на ревью?
— Я не до конца понял, как работает отправка, но вроде отправил.
— Ты отправил код на ревью?
— Я не до конца понял, как работает отправка, но вроде отправил.
😁40😢3🤣3🤪1
Самописные инфраструктурные компоненты
Пятиминутка PHP
Тема этого выпуска: самописные инфраструктурные компоненты – зачем они нужны и чем не угодили Open Source аналоги, помимо фатального недостатка?
Отвечает Валентин Удальцов – автор телеграм канала Пых https://t.me/phpyh
- Пишет ли Валентин собственный фреймворк?
- Что такое инфраструктурный компонент? Определение
- Примеры инфраструктурных компонент, написанных в команде Валентина: работа с БД, виладтор+гидратор на типах статанализа, шина сообщений
- История появления библиотеки для работы с запросами к БД и чем не подошли популярные решения?
- Учёт нюансов PostgreSQL, нативная работа с JSON в СУДБ
- Неудобства Doctrine Query Language (DQL)
- Неудобства Doctrine DBAL
- Single Responsibility принцип в Doctrine
- Конвертация типов из PHP в БД и в обратную сторону из БД в PHP
- Коммит в Open Source библиотеку vs написание своей собственной реализации
- Стоимость разработки самописных компонент для бизнеса
- Мотивация команды
- Распространение знаний внутри компании, документация
- Тесты как документация
- Сегодня самописные компоненты, а завтра самописный фреймворк?
- Безопасность собственного решения
- Свой фреймворк или свой Open Source как часть HR-бренда
- Как отличить резонную разработку
- Кто принимает финальное решение о старте собственной разработки вместо использования готового решения?
- Подробности про собственную шину сообщений (Message Bus компонент)
- Вопросы гарантированной доставки сообщений
- Паттерн Outbox https://habr.com/ru/company/lamoda/blog/678932/
- Недостатки Symfony Messanger Component
- Работа с middleware в шине сообщений – разные middleware для разных обработчиков
- Routing Topology
- Exchange сообщения – Fanout – Exchange модуля/очереди
- Поддержка паттерна Saga
- Отделение класса с состоянием от класса с поведением, но с сохранением инкапсуляции
- Когда будет опубликована библиотека для работы с запросами к БД Thesis? https://phprussia.ru/moscow/2021/abstracts/7654
- Перфекционизм vs Тщательность
- Цели на 2023 год
Отвечает Валентин Удальцов – автор телеграм канала Пых https://t.me/phpyh
- Пишет ли Валентин собственный фреймворк?
- Что такое инфраструктурный компонент? Определение
- Примеры инфраструктурных компонент, написанных в команде Валентина: работа с БД, виладтор+гидратор на типах статанализа, шина сообщений
- История появления библиотеки для работы с запросами к БД и чем не подошли популярные решения?
- Учёт нюансов PostgreSQL, нативная работа с JSON в СУДБ
- Неудобства Doctrine Query Language (DQL)
- Неудобства Doctrine DBAL
- Single Responsibility принцип в Doctrine
- Конвертация типов из PHP в БД и в обратную сторону из БД в PHP
- Коммит в Open Source библиотеку vs написание своей собственной реализации
- Стоимость разработки самописных компонент для бизнеса
- Мотивация команды
- Распространение знаний внутри компании, документация
- Тесты как документация
- Сегодня самописные компоненты, а завтра самописный фреймворк?
- Безопасность собственного решения
- Свой фреймворк или свой Open Source как часть HR-бренда
- Как отличить резонную разработку
- Кто принимает финальное решение о старте собственной разработки вместо использования готового решения?
- Подробности про собственную шину сообщений (Message Bus компонент)
- Вопросы гарантированной доставки сообщений
- Паттерн Outbox https://habr.com/ru/company/lamoda/blog/678932/
- Недостатки Symfony Messanger Component
- Работа с middleware в шине сообщений – разные middleware для разных обработчиков
- Routing Topology
- Exchange сообщения – Fanout – Exchange модуля/очереди
- Поддержка паттерна Saga
- Отделение класса с состоянием от класса с поведением, но с сохранением инкапсуляции
- Когда будет опубликована библиотека для работы с запросами к БД Thesis? https://phprussia.ru/moscow/2021/abstracts/7654
- Перфекционизм vs Тщательность
- Цели на 2023 год
👍13🔥6❤2