Каталог RSS-каналов
Статистика

RSS-каналов в каталоге: 374

Добавлено сегодня: 0

Добавлено вчера: 0

Hi-Tech / Интернет

RMCreative.ru - Блог

Новости и идеи веб-разработки

Найдено 49 записей

На днях релизнулся PHP 8. Он не так богат на полезные возможности, как PHP 7.0 или PHP 7.4, но определённо хорош как производительностью с новым JIT, так и тысячей приятных мелочей. О новых возможностях коротко можно почитать на специальной странице, которую мы подготовили вместе Романом Пронским, JetBrains и сообществом. В честь выхода мы провели стрим с участием двух видных разработчиков этого релиза: Дмитрия Стогова и Никиты Попова. Запись можно посмотреть на YouTube. По поводу стабильности могу сказать, что, определённо можно пробовать переводить на восьмёрку продакшн. Большинство серьёзных багов отловили в бетах. Yii 1, Yii 2 и Yii 3 к PHP 8 готовы.

Unit-тесты должны быть изолированы. То есть тесты должны проходить если выполнять из по-одному или если включить в PHPUnit режим выполнения в случайном порядке через phpunit.xml.dist: Для этого, если тест работает с окружением (например, с файловой системой), окружение нужно подчищать. Причём подчищать и до и после через setUp() и tearDown(): final class MyTest extends PHPUnit\Framework\TestCase { public function setUp(): void { $this->cleanup(); $path = realpath(sys_get_temp_dir()); mkdir($path, 755); } public function tearDown(): void { $this->cleanup(); } private function cleanup(): void { $path = realpath(sys_get_temp_dir()); rmdir($path) } Зачистка делается два раза и до и после потому как если какой-то тест упадёт, зачистка в tearDown() не выполнится...

Недавно у меня умер SSD и заставил настраивать заново всё окружение. Опробованные Linux по тем или иным причинам не зашли (но я ещё попробую, может пропустил что). Вернулся на Windows 10. Для тестов фреймворка мне необходимы несколько версий PHP и в этот раз удалось сделать удобно. В Windows Terminal у меня теперь несколько профилей с git bash и в каждом отдельная версия PHP. Делается так: Берём сам PHP, распаковываем в отдельные директории. Например, C:\php74, C:\php80. Добавляем профили: { " guid " : " {e084a08a-ad94-499d-9573-1d5904b4e9a0} " , " name " : " Git Bash with PHP 8 " , " suppressApplicationTitle " : true , " icon " : " %PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico " , " commandline " : " cmd.exe /C \" SET PATH=%PATH%;C: \\ php80...

Система asset-ов Yii 2 очень удобна. Можно расположить ресурсы в пакетах или ближе к исходникам и фреймворк при первом запросе на генерируемую PHP страницу скопирует их (или сделает симлинк) в нужное место. Пока экземпляр приложения один, всё работает замечательно, а вот когда появляется балансировщик, это уже не работает потому как запрос каждый раз уходит на разный сервер. Проблем тут несколько. Yii, чтобы избавить от залипания браузерного кеша, при выборе директории, в которую копируется ресурс, использует время изменения директории: $path = (is_file($path) ? dirname($path) : $path) . filemtime($path); return sprintf('%x', crc32($path . Yii::getVersion() . '|' . $this->linkAssets)); На каждом экземпляре приложения время будет разным, поэтому ресурсы...

Почти три месяца прошло с последнего выпуска новостей. От нас почти ничего не было слышно. Мы работали. После расширения команды Yii 3 я больше занимаюсь управлением, ревью, проектированием и обсуждениями, чем непосредственно кодом. Получается неплохо. В общем темп ускорился, и мы всё ближе к нашим целям. Активность на официальном форуме и форуме yiiframework.ru стала совсем низкой если сравнивать со временами Yii 1 и Yii 2. Сообщество перешло в разные социальные сети и чаты. Я думаю, что такая миграция — это плохо. В соцсетях и чатах практически невозможно найти предыдущие ответы. Одни и те же вопросы повторяются практически каждый день и ответы не оседают в поиске. Почти уверен, что тот, кто первым начнёт собирать вопросы и ответы и публиковать их как...

Нагрузку на сайт нередко делают не посетители, а разные поисковые боты. Когда-то проблемы были даже от робота Google, но сейчас он научился снижать аппетиты при появлении ошибок или существенном повышении времени ответа. Яндекс тоже поумерил аппетиты и настраивается через Вебмастер. Но "голодные" боты ещё остались. Один из таких - AhrefsBot. На наше счастье, многие боты, которые сами не умеют регулировать свой аппетит, подчиняются robots.txt в корне сайта, директиве Crawl-Delay. Она выставляет задержку между парсингом следующей страницы в секундах. Одной секунды для многих проектов вполне достаточно (86400 страниц). Если мало - можно использовать дробные значения. User-agent: * Crawl-Delay: 1

IXBT опубликовали новость "Microsoft прекращает поддержку PHP в Windows". Компания Microsoft объявила о том, что она собирается прекратить поддержку PHP в своей операционной системе Windows. На самом деле всё не так: Microsoft многие годы оплачивали фуллтайм-работу по поддержке Windows в PHP. Изначально они объявили что делают это для версий 7.x. К PHP 8 это не относилось. В самой операционной системе Windows ничего не меняется. Ну разве что WSL 2 добавили, но на запуск php.exe это не влияет никак. Для версий PHP меньше 8-ки ничего не меняется. Будут официальные билды. Для 8-ки команда из Microsoft билдов делать не будет. Скорее всего потому как можно нормально запускать PHP из WSL 2. Но, на самом деле, никто не мешает собрать билд самому. Плюс не факт, что...

Поиск новых мэйнтейнеров отмечается как большая проблема. В сообществе много активных разработчиков, которые рады писать новый код, но мало кто готов посвятить своё время на сопровождение и проверку чужого кода. Кроме профессионализма, мэйнтейнеры должны пользоваться полным доверием. От мэйнтейнеров также требуется непрерывная вовлечённость в процесс и постоянная работа - сопровождающий всегда должен быть доступен, каждый день читать письма и реагировать на них. Работа в подобных условиях требует большой самодисциплины, поэтому мэйнтейнеров мало и их не хватает, а поиск новых мэйнтейнеров, способных рецензировать чужой код и направлять изменения вышестоящим мэйнтейнерам, становится одной из главных проблем в сообществе...

8 июня 1995 года, программист родом из Гренландии Расмус Лердорф публикует в usenet анонс набора CGI-скриптов, который он назвал PHP Tools. Иногда говорят, что первые версии PHP были написаны на Perl. Это, конечно же, неправда. Главные факты и события из 25 лет истории PHP смотрите в таймлайне. Заревьювить и дополнить его помогли непосредственные участники событий: Andi Gutmans, Derick Rethans, Peter Kokot, Александр Макаров, Дмитрий Стогов и другие. Еще 27 мая исполнилось 10 лет PhpStorm. Чтоб отметить сразу два дня рождения делаем скидку 50% на персональную годовую подписку. С днем рождения PHP!

Конференцию сделали. Отлично вышло несмотря на то, что многое пробовали сделать в первый раз. Не так драйвово как в оффлайне, но что-то крутое накодить после захотелось. Итак, цифры. Команда 10 докладчиков. Действительно замечательных. 9 членов программного комитета. Не все принимали активное участие в подготовке, но все привнесли в конференцию что-то особенное. Многчисленные сотрудники Онтико Олега Бунина и их подрядчики. Алексей Корнеев из Skyeng и приведённая им команда переводчиков-синхронистов. 5 партнёров, которые сделали мероприятие бесплатным. 7 инфопартнёров. Многочисленные сообщества PHP, которые позволили через свои площадки пригласить всех на трансляцию. Стрим По данным YouTube: Нас посмотрели 2759 человек в переводе и 2070 без перевода...

Почти в любом деле самое главное - правильная команда. Для PHP Russia получилась именно такая. Онтико делают прекрасный оффлайн и ответственно подходят к новому для них онлайну. Члены программного комитета подбирают замечательную программу из самых сильных докладчиков. В этот раз у нас получается много экспериментов. Почти полностью англоязычная программа, англоязычный ведущий. Онлайн (эта часть вынужденная, но кто знает, может нам понравится). Ну и чтобы уже совсем всё было экспериментально, мы делаем ещё один. Алексей Корнеев из Skyeng, который уже организовал несколько отличных онлайн митапов по PHP, предложил нам организовать синхронный перевод. Когда-то давно или на РИТ или на Highload синхронный перевод был и это вышло откровенно плохо. Олег Бунин...

Churn - полезный инструмент, позволяющий быстро выделить в проекте область для более пристального рассматривания. Посчитать его можно при помощи git при помощи bash-скрипта за авторством Gary Bernhardt: git churn -- since = ' 1 month ago ' Получим список файлов проекта с количеством правок в этих файлах. Например, для директории framework Yii 2 это будет: 1 framework/classes.php 1 framework/data/Sort.php 1 framework/db/ActiveQuery.php 1 framework/db/sqlite/QueryBuilder.php 1 framework/UPGRADE.md 1 framework/web/Controller.php 1 framework/web/Response.php 2 framework/helpers/BaseHtml.php 2 framework/web/UrlManager.php 3 framework/db/Connection.php 3 framework/db/oci/Command.php 3 framework/validators/StringValidator.php 3 framework/web/Request.php 4...

Друзья, всем привет! В связи с объявленной ВОЗ пандемией, а также ограничительными мерами на участия в массовых мероприятиях, изданных как на уровне государственных регуляторов, так и на уровне корпораций, мы приняли трудное решение перенести конференцию PHP Russia с мая на 14 сентября (окончательно подтвердим новую дату на следующей неделе). Это настоящее потрясение для всех нас, но безопасность и здоровье участников и партнёров превыше всего. Не волнуйтесь, все приобретенные билеты и трансляции перенесены на новую дату. При необходимости можно поменять ваши билеты на любую другую конференцию Онтико или заменить участников. По всем подобным вопросам пишите на organization@ontico.ru. Чтобы не останавливать наше профессиональное общение, 13 мая мы проведём...

Я собеседовался в Facebook в 2012-ом. Тогда произошло странное. После где-то пяти собеседований HR не вышел на связь. Я подумал, что где-то не справился и в итоге принял предложение Stay.com (к лучшему). Через несколько лет тот же HR написал мне, рассказал, что тогда уволился и извинился что не передал как надо тогда дела. Бывает... Но этот пост о технической стороне собеседований. А она, судя по всему, мало поменялась с тех пор. В прошлом месяце мне написали из Facebook London. Cозвонились (предложения я не отклоняю, не выяснив детали... а вдруг?), поговорили. Стало понятно, что по совокупности факторов (необходимость релокации, невозможность заниматься Yii) предложение не лучшее. С ответом я немного затянул и получил план собеседования: 45 минут. 1-2...

«Как убедить заказчика что нужны тесты?» В одном из чатов подняли такой вопрос. Не такой уж редкий. Правильный ответ — «никак». Заказчику, если он сам не разработчик, не нужны ни тесты, ни красивый код, ни архитектура. Нужно быстро, не сильно дорого, чтобы работало правильно и не ломалось. Тесты — способ сделать так, чтобы работало правильно и не ломалось. Один из способов. Можно, например, проверять руками и делать это каждый релиз. На вопрос «писать ли мне тесты» заказчик, вероятнее всего, ответит, или подумает, «не вижу зачем мне нужны тесты» и будет прав. Ему не тесты нужны. Нужно чтобы работало и не ломалось. Не нужно убеждать заказчика что тесты нужны, не нужно их отдельно продавать. Если тесты — оптимальный способ добиться желаемого результата...