Какими PHP фреймворками вы пользуетесь чаще всего?
Anonymous Poll
22%
Symfony
42%
Laravel
15%
Yii
0%
CakePHP
2%
CodeIgniter
2%
Zend
1%
Phalcon
5%
Другой
11%
Не пользуюсь
Довольно занимательная статейка на тему "Как хранить перечисления в PHP, чтобы это было удобно". Есть ограниченный список значений? Нет Enum, к которому ты так привык в другом языке? В статье, на мой взгляд, лучшая реализация таких списков.
#php #перечисления #enum
https://telegra.ph/Perechisleniya-v-PHP-09-14
#php #перечисления #enum
https://telegra.ph/Perechisleniya-v-PHP-09-14
Telegraph
Перечисления в PHP
В рамках описания предметной области распространены понятия с ограниченным числом значений. Для этого лучше всего подходят перечисления. В PHP нет специальных конструкций для описания перечисления, однако их можно имитировать при помощи объектно-ориентированного…
Хэй хо! Все мы любим (я надеюсь), писать юнит-тесты. Ну и конечно же - потешить свое самолюбие, глянув на отчет code-coverage, когда там >50% кода покрыто тестами. Но так ли точна эта цифра? Давайте разберемся, как работают замеры и какие есть подводные камни.
#phpunit #unittest #codecoverage
https://telegra.ph/Uluchsheniya-pokrytiya-PHP-koda-v-2020-godu-09-18
#phpunit #unittest #codecoverage
https://telegra.ph/Uluchsheniya-pokrytiya-PHP-koda-v-2020-godu-09-18
Telegraph
Улучшения покрытия PHP кода в 2020 году
А вы знали что метрики покрытия вашего кода врут? В 2003 году Дерик Ретанс (Derick Rethans) выпустил Xdebug 1.2. Впервые в экосистеме PHP появилась возможность собирать данные о покрытии кода. В 2004 году Себастьян Бергманн выпустил PHPUnit 2, где впервые…
Небольшой экскурс в историю, или 101 способ записать число в PHP. Статейка из разряда "а вы знали?". Просто почитать и пойти жить дальше.
#php #otherlanguagnes #offtop
https://telegra.ph/20-20--god-v-kotorom-podcherkivanie-v-chislovyh-literalah-pobedilo-09-20
#php #otherlanguagnes #offtop
https://telegra.ph/20-20--god-v-kotorom-podcherkivanie-v-chislovyh-literalah-pobedilo-09-20
Telegraph
20_20 — год, в котором подчеркивание в числовых литералах победило
Вдруг вы не знали, но в языке, на котором вы пишите, вы можете использовать _ в числах. Например, следующий код на PHP: <?php print(1_00); print(100); Выведет 100100 (проверить онлайн). Этот синтаксический сахар появился в Ada в 1980 году, и он имел переменный…
Всем доброго воскресного вечера. Совсем недавно словили прелюбопытнейший фатал на продакшн. Спешу поделиться с вами (если, конечно, вы используете strict_types у себя в коде)
#php #особенностиPHP #strictTypes
https://telegra.ph/Pochemu-PHP-eshche-daleko-to-strogoj-tipizacii-10-11
#php #особенностиPHP #strictTypes
https://telegra.ph/Pochemu-PHP-eshche-daleko-to-strogoj-tipizacii-10-11
Telegraph
Почему PHP еще далеко то строгой типизации
Всем привет. С выходом php 7.1 мы стараемся активно использовать strict types, да и довольно удобно зачастую указывать типы входных параметров и результата. Довольно местами даже код улучшается, согласитесь, теперь не напишешь вот такой метод, принимающий…
В продолжение strict types хочу поделиться вот такой статьёй
#php #strictTypes
https://telegra.ph/Dostoinstva-i-fatalnye-nedostatki-tipizacii-v-php-10-11
#php #strictTypes
https://telegra.ph/Dostoinstva-i-fatalnye-nedostatki-tipizacii-v-php-10-11
Telegraph
Достоинства и фатальные недостатки типизации в php
Язык php часто ругают, обычно необоснованно. Особенно удивляет, что javascript ругают меньше. Зачастую это делают люди, которые писали на нем 10+ лет назад, когда язык был действительно чертовски плох, да и разработчики в те времена не задумывались над качеством…
24 октября релизнули composer v2.0, а также уже успели выпустить несколько багфиксов. Самые интересные плюшки обновленного композера в статье https://telegra.ph/Composer-2-CHto-novogo-10-28
#composer #release
#composer #release
Telegraph
Composer 2: Что нового?
Composer, менеджер зависимостей для PHP, был выпущен около 8 лет назад, а сегодня опубликовали новую версию, 2.0. За эти годы Composer получил множество новых функций и не отставал от стандартов PHP. Вторая версия совместима со старыми проектами, но привнесет…
Этой весной я перевел статью о 8-ке в восьми кусочках кода, а на этой неделе состоится ее долгожданный релиз.
Если ты хочешь пообщаться с одними из главных контрибьюторов PHP Никитой Поповым и Дмитрием Стоговым, а также послушать о новых возможностях языка на практике - заходи на стрим 25 ноября.
Подробная программа тут.
Если ты хочешь пообщаться с одними из главных контрибьюторов PHP Никитой Поповым и Дмитрием Стоговым, а также послушать о новых возможностях языка на практике - заходи на стрим 25 ноября.
Подробная программа тут.
Сталкивались с таким, что требуется отрефакторить чего-то, или пофиксить багу, а там ну просто целый зоопарк наследников и наследников наследников? Ну или простая задача - нужен новый аргумент в конструкторе/методе. И задача превращается в ад. Это один из пунктиков, почему наследование стоит использовать осторожно, и композиция зачастую лучшее решение.
И вот вам статейка на смежную тему.
#php #final
https://telegra.ph/Finalnye-klassy-v-PHP-Java-i-drugih-yazykah-12-01
И вот вам статейка на смежную тему.
#php #final
https://telegra.ph/Finalnye-klassy-v-PHP-Java-i-drugih-yazykah-12-01
Telegraph
Финальные классы в PHP, Java и других языках
Использовать финальные классы или не использовать финальные классы? Вот в чём вопрос. А ещё в том, когда и как это делать правильно. Почему стоит использовать финальные классы Максимальное уменьшение области видимости Когда вы видите у класса префикс final…
Со всеми этими ковидами и прочими авралами я совсем пропустил одну очень и очень любопытную новость.
Вконтакте снова выложил свой движок KPHP.
#php #kphp #компилятор #vk
Все подробности тут
https://telegra.ph/VKontakte-snova-vykladyvaet-KPHP-12-01
Вконтакте снова выложил свой движок KPHP.
#php #kphp #компилятор #vk
Все подробности тут
https://telegra.ph/VKontakte-snova-vykladyvaet-KPHP-12-01
Telegraph
ВКонтакте снова выкладывает KPHP
Привет! Сейчас будет дежавю. Мы снова выложили на GitHub наш PHP-компилятор — KPHP. Он проделал большой путь, и чтобы рассказать о нём, сначала телепортируемся на шесть лет назад. Поясню для тех, кто не в теме: платформа ВКонтакте изначально была написана…
26 ноября вышел PHP 8, очень много всего уже было написано, но хочу еще раз оставить шпаргалку, что нового и как использовать
#php8 #cheatsheet
https://telegra.ph/PHP-8--probuem-novye-vozmozhnosti-12-01
#php8 #cheatsheet
https://telegra.ph/PHP-8--probuem-novye-vozmozhnosti-12-01
Telegraph
PHP 8 — пробуем новые возможности
PHP 8 уже на этапе release candidate, версия RC 3 вышла 29 октября, а полноценный релиз назначен на 26 ноября. Так что пора взглянуть на новые возможности, которые нас ждут в PHP 8. График релизов можно посмотреть здесь. А официальное руководство по обновлению…
Как часто вы сталкиваетесь с проблемой, когда для тестирования задачи приходится менять код? Тесты отложенной отправки письма, генерации чего-то по расписанию раз в неделю и т.д.
Badoo имеет свое собственное решение, которое упрощает жизнь тестировщикам.
#php #QAAPI #trick
Все тут:
https://telegra.ph/API-dlya-QA-testiruem-fichi-bez-dostupa-k-kodu-12-01
Badoo имеет свое собственное решение, которое упрощает жизнь тестировщикам.
#php #QAAPI #trick
Все тут:
https://telegra.ph/API-dlya-QA-testiruem-fichi-bez-dostupa-k-kodu-12-01
Telegraph
API для QA: тестируем фичи без доступа к коду
Многие фичи приложения невозможно быстро протестировать, не меняя исходный код. Представьте типичную задачу, с которой может столкнуться каждый разработчик: через три дня после регистрации пользователю нужно предложить купить премиум-доступ к продукту со…
🔥 Трейты! Выстрел себе в ногу или рабочее решение? — ютуб-холивар в эту среду.
На примерах разберем, хороши ли трейты как способ снизить дублирование кода, быстро внедрить функциональность и не только. Читай подробнее о стриме и приходи в эфир 23 декабря в 19:00 (Мск/Минск, 18:00 — Киев).
Против трейтов: Валентин Удальцов (автор канала Пых).
В защиту:
— Сергей Жук (Skyeng)
— Кирилл Несмеянов (SpiralScout)
— Иван Лещёв (BotHelp.iо)
— Александр Дубовской (RaDon)
Ведущий: Роман Пронский (PHP Digest).
На примерах разберем, хороши ли трейты как способ снизить дублирование кода, быстро внедрить функциональность и не только. Читай подробнее о стриме и приходи в эфир 23 декабря в 19:00 (Мск/Минск, 18:00 — Киев).
Против трейтов: Валентин Удальцов (автор канала Пых).
В защиту:
— Сергей Жук (Skyeng)
— Кирилл Несмеянов (SpiralScout)
— Иван Лещёв (BotHelp.iо)
— Александр Дубовской (RaDon)
Ведущий: Роман Пронский (PHP Digest).
Для тех, кто еще ленится двумя командами установить и запустить какой-нибудь статический анализатор кода, ребята записали хороший аудиоподкаст. Также есть частичная текстовая расшифровка.
#phpstan #psalm #phan #статическиеанализаторы
Найти можно тут:
https://telegra.ph/Sejchas-ya-budu-ubezhdat-vas-ispolzovat-staticheskij-analiz-v-PHP-12-01
#phpstan #psalm #phan #статическиеанализаторы
Найти можно тут:
https://telegra.ph/Sejchas-ya-budu-ubezhdat-vas-ispolzovat-staticheskij-analiz-v-PHP-12-01
Telegraph
Сейчас я буду убеждать вас использовать статический анализ в PHP
Я помню выход PHP7: появились strict types, скалярные type hint-ы. Мы начали двигаться в сторону языка со статической типизацией, но типизация не ушла в статику. Концептуально все осталась прежним — мы запускаем программу и только в runtime узнаем, что где…
В начале месяца под одним из постов задали вопрос:
Композиция === Dependency Injection?
Я тогда еще написал статейку, но все руки не доходили выложить ее сюда. Я постарался подробно объяснить, в чем разница и как использовать: Dependency Injection (Внедрение зависимостей), Dependency Inversion (Инверсия зависимостей) и Композиция.
#solid #di #composition #архитектура
https://telegra.ph/Uluchshaem-arhitekturu-Inversiya-i-vnedrenie-zavisimostej-nasledovanie-i-kompoziciya-12-30
Композиция === Dependency Injection?
Я тогда еще написал статейку, но все руки не доходили выложить ее сюда. Я постарался подробно объяснить, в чем разница и как использовать: Dependency Injection (Внедрение зависимостей), Dependency Inversion (Инверсия зависимостей) и Композиция.
#solid #di #composition #архитектура
https://telegra.ph/Uluchshaem-arhitekturu-Inversiya-i-vnedrenie-zavisimostej-nasledovanie-i-kompoziciya-12-30
Telegraph
Улучшаем архитектуру: Инверсия и внедрение зависимостей, наследование и композиция
Всем привет. Очень часто, работая со старым (а иногда и не очень) кодом, или пытаясь применить какую-то библиотеку, сталкиваешься с ограничениями в расширении. Зачастую проблемы бы не было, будь код архитектурно грамотен. Есть множество архитектурных правил…
🎄🐘 Подводим итоги PHP-года и разыгрываем слона
Вместе с PHP-Дайджестом придумали опрос про 2020 год и PHP-сообщество. Приходи выбрать фреймворк года, персону года и самый огненный стрим.
По итогам сделаем подборки статей, докладов, каналов по PHP. Все результаты опубликуем на phpcommunity.ru и в статье на Хабре.
Опрос анонимный: оставляйте почту, только если хотите поучаствовать в розыгрыше фирменного пхп-слона.
Вместе с PHP-Дайджестом придумали опрос про 2020 год и PHP-сообщество. Приходи выбрать фреймворк года, персону года и самый огненный стрим.
По итогам сделаем подборки статей, докладов, каналов по PHP. Все результаты опубликуем на phpcommunity.ru и в статье на Хабре.
Опрос анонимный: оставляйте почту, только если хотите поучаствовать в розыгрыше фирменного пхп-слона.
Фронт для прожженного бэка
Всем привет. Данный пост подойдет новичкам, или прожженным бэкендерам, которым проще написать на го или джаве, чем на js/css. Когда вообще появилось это разделение на Front и Back? Только только у нас в команде был верстальщик, который особо и программистом то не выглядел, и вот вдруг React, Angular, TypeScript, а кто не успел - теперь Backend разработчик.
Так что делать, если ты бэкэнд до мозга костей, а пет проект, под капотом выглядящий великолепно(нет), с фронта похож на сайты из 2000х?
1. Twitter bootstrap. Содержит множество полезных симпатичных элементов из коробки. И хоть фронты сейчас начнут кидаться ссаными тапками (и тряпками), потому что бутстрап - это только скелет, лэйаут, грид, etc на котором нужно строить свое приложение, но для нас это просто палочка-выручалочка, если нужно придать человеческий вид своему детищу.
2. Vue JS Если надоело писать говнокод на jQuery для того, чтобы например показать форму редактирования прямо на строке в гриде, и после того как все заработало от одного вида этого куска кхм хочется принять валокордин - есть великолепная припарка - Vue JS.
Он выглядит так, как будто он написан бэкэндерами для бэкэндеров, чтобы последние хоть как-то могли похвастаться тем, что знают js фреймворк, и гордо называть себя full stackами. В нем нет этого бардака jquery, и нет тонн синтаксического сахара и абстракций type script. Все бесподобно просто и понятно, как php, и приправлено отличной подробной докой.
3. А для тех, кому нужно и то и то - вот bootstrap-vue.org
Сам не пробовал, но раз поддерживаются последние версии и того и другого - значит проект живой и свежий.
Эхх, за что я любил Yii 1 в лохматом 2012 - так это за коробочный неплохой внешний вид, и включение аякса на гриде одним параметром. Теперь такого не делают))
Вместо послесловия
Ну и раз зашел разговор про сервера: я давно забил на хостинги. По цене они не намного выигрывают у vds/vps а ограничений масса. Да и я считаю что каждый уважающий себя php разработчик должен уметь развернуть php+nginx+db на чистой машине, ну и прекрасно знать что такое ssh, sudo, и почему нельзя запускать nginx под рутом.
Так вот, я уже лет 7 пользуюсь digitalOcean, 5$ в месяц и все мои пет-проекты прекрасно живут на выделенной виртуалке. И по этому случаю держите реферальную ссылку https://m.do.co/c/a2a1a8f9796f , которая не только мне согреет лапу, но и даст вам 100$ на 60 дней потестить и решить, нужно ли оно вам вообще. Они зажмыдились, раньше давали 25$ навсегда (а это, на минуточку, 5 месяцев халявного пятибаксового сервера) а сейчас 100$ но всего на 2 месяца, но это ж все-таки лучше, чем ничего))
Добавил реакции, хочу получить фидбэк, полезно ли, или больше такое не писать.
Всем привет. Данный пост подойдет новичкам, или прожженным бэкендерам, которым проще написать на го или джаве, чем на js/css. Когда вообще появилось это разделение на Front и Back? Только только у нас в команде был верстальщик, который особо и программистом то не выглядел, и вот вдруг React, Angular, TypeScript, а кто не успел - теперь Backend разработчик.
Так что делать, если ты бэкэнд до мозга костей, а пет проект, под капотом выглядящий великолепно(нет), с фронта похож на сайты из 2000х?
1. Twitter bootstrap. Содержит множество полезных симпатичных элементов из коробки. И хоть фронты сейчас начнут кидаться ссаными тапками (и тряпками), потому что бутстрап - это только скелет, лэйаут, грид, etc на котором нужно строить свое приложение, но для нас это просто палочка-выручалочка, если нужно придать человеческий вид своему детищу.
2. Vue JS Если надоело писать говнокод на jQuery для того, чтобы например показать форму редактирования прямо на строке в гриде, и после того как все заработало от одного вида этого куска кхм хочется принять валокордин - есть великолепная припарка - Vue JS.
Он выглядит так, как будто он написан бэкэндерами для бэкэндеров, чтобы последние хоть как-то могли похвастаться тем, что знают js фреймворк, и гордо называть себя full stackами. В нем нет этого бардака jquery, и нет тонн синтаксического сахара и абстракций type script. Все бесподобно просто и понятно, как php, и приправлено отличной подробной докой.
3. А для тех, кому нужно и то и то - вот bootstrap-vue.org
Сам не пробовал, но раз поддерживаются последние версии и того и другого - значит проект живой и свежий.
Эхх, за что я любил Yii 1 в лохматом 2012 - так это за коробочный неплохой внешний вид, и включение аякса на гриде одним параметром. Теперь такого не делают))
Вместо послесловия
Ну и раз зашел разговор про сервера: я давно забил на хостинги. По цене они не намного выигрывают у vds/vps а ограничений масса. Да и я считаю что каждый уважающий себя php разработчик должен уметь развернуть php+nginx+db на чистой машине, ну и прекрасно знать что такое ssh, sudo, и почему нельзя запускать nginx под рутом.
Так вот, я уже лет 7 пользуюсь digitalOcean, 5$ в месяц и все мои пет-проекты прекрасно живут на выделенной виртуалке. И по этому случаю держите реферальную ссылку https://m.do.co/c/a2a1a8f9796f , которая не только мне согреет лапу, но и даст вам 100$ на 60 дней потестить и решить, нужно ли оно вам вообще. Они зажмыдились, раньше давали 25$ навсегда (а это, на минуточку, 5 месяцев халявного пятибаксового сервера) а сейчас 100$ но всего на 2 месяца, но это ж все-таки лучше, чем ничего))
Добавил реакции, хочу получить фидбэк, полезно ли, или больше такое не писать.
Статья про транзакции для самых маленьких. Мне очень понравилось, как просто и красиво расписано.
Если вдруг (маловероятно конечно, но вдруг) вы еще не разбирались с транзакциями - то эта статья - отличный старт.
#транзакции
https://telegra.ph/CHto-takoe-tranzakciya-01-25
Если вдруг (маловероятно конечно, но вдруг) вы еще не разбирались с транзакциями - то эта статья - отличный старт.
#транзакции
https://telegra.ph/CHto-takoe-tranzakciya-01-25
Telegraph
Что такое транзакция
Транзакция — это набор операций по работе с базой данных (БД), объединенных в одну атомарную пачку. (Предполагается, что вы знаете, что такое БД. Но чуть позже тут будет ссылка на статью «что это такое») Транзакционные базы данных (базы, работающие через…
Только-только я расстроился, т.к. уже конец января, а от badoo ни слова о ежегодном конкурсе (для тех, кто не в курсе: они каждый год выкладывают пачку задач на hackerrank, и если ты решил хорошо - зовут на собес, а там и в Лондон, на работу), так сразу нашел, чем потешить свое ЧСВ.
Обнаружил, что в linkedin появились значки вида “знаток PHP”, и, чтобы получить их, нужно пройти небольшой тест. Например, тест по PHP состоял из 15 вопросов, на каждый из которых давалось 1,5 минуты. Если зафейлил - есть возможность пройти тест еще раз(не знаю, с такими же вопросами или другими, но лично я бы сделал с другими, иначе какой смысл).
Сами вопросы были простецкие, ответы выбираются из готовых четырех-пяти. Единственный вопрос, который чуть не обнулил мой таймер в 1.5 минуты - про форматирование времени: ну не помню я наизусть всех модификаторов=) в итоге ответил интуитивно, и вроде как правильно.
В общем, всем рекомендую! И делитесь своими результатами в комментариях, интересно, кто как прошел.
Обнаружил, что в linkedin появились значки вида “знаток PHP”, и, чтобы получить их, нужно пройти небольшой тест. Например, тест по PHP состоял из 15 вопросов, на каждый из которых давалось 1,5 минуты. Если зафейлил - есть возможность пройти тест еще раз(не знаю, с такими же вопросами или другими, но лично я бы сделал с другими, иначе какой смысл).
Сами вопросы были простецкие, ответы выбираются из готовых четырех-пяти. Единственный вопрос, который чуть не обнулил мой таймер в 1.5 минуты - про форматирование времени: ну не помню я наизусть всех модификаторов=) в итоге ответил интуитивно, и вроде как правильно.
В общем, всем рекомендую! И делитесь своими результатами в комментариях, интересно, кто как прошел.
Откопал пару задачек на алгоритмы в интернетах, предлагаю вам их решить, ответы пишите в комменты. Ну и ставьте плюс в комменты, если хотите больше задачек.
———————
Задача 1.
Во время переезда в квартире появилось 5 пустых коробок, и кот стал в них спать. На каждой коробке написана своя цифра, от 1 до 5, а сами коробки стоят в ряд по порядку.
Наутро кот вылезает из очередной коробки, а на ночь переходит спать в соседнюю справа или слева, которая стоит рядом с той, где он ночевал в прошлый раз. Каждое утро можно открыть только одну коробку, чтобы проверить, есть ли там кот.
Есть ли такая стратегия, чтобы гарантированно найти кота в какое-нибудь утро, если мы не знаем, в какую коробку он пошёл спать в первую ночь?
———————
Задача 2.
Представьте, что у вас есть электрическая духовка с одной механической кнопкой. Кнопка по очереди включает режимы работы от слабых к сильным, затем выключает духовку, а при следующем нажатии снова включает самый слабый режим. Так можно щёлкать по кругу сколько угодно — в зависимости от количества щелчков духовка будет проходить все стадии работы.
И вот ситуация: вы дома, вам скоро уезжать, духовка работает на первом режиме. Внезапно отключается электричество.
Проблема в том, что когда электричество включится, духовка заработает на том режиме, на котором стоит кнопка. Вас дома уже не будет.
Сейчас вам нужно нажать механическую кнопку столько раз, чтобы при включении света духовка оказалась в выключенном режиме. Вы не помните, сколько именно у духовки режимов работы, но их точно не больше четырёх (включая выключенный).
Вопрос: сколько раз нужно сейчас нажать на кнопку, чтобы духовка точно оказалась в выключенном режиме?
#задачи #логика #арифметика
———————
Задача 1.
Во время переезда в квартире появилось 5 пустых коробок, и кот стал в них спать. На каждой коробке написана своя цифра, от 1 до 5, а сами коробки стоят в ряд по порядку.
Наутро кот вылезает из очередной коробки, а на ночь переходит спать в соседнюю справа или слева, которая стоит рядом с той, где он ночевал в прошлый раз. Каждое утро можно открыть только одну коробку, чтобы проверить, есть ли там кот.
Есть ли такая стратегия, чтобы гарантированно найти кота в какое-нибудь утро, если мы не знаем, в какую коробку он пошёл спать в первую ночь?
———————
Задача 2.
Представьте, что у вас есть электрическая духовка с одной механической кнопкой. Кнопка по очереди включает режимы работы от слабых к сильным, затем выключает духовку, а при следующем нажатии снова включает самый слабый режим. Так можно щёлкать по кругу сколько угодно — в зависимости от количества щелчков духовка будет проходить все стадии работы.
И вот ситуация: вы дома, вам скоро уезжать, духовка работает на первом режиме. Внезапно отключается электричество.
Проблема в том, что когда электричество включится, духовка заработает на том режиме, на котором стоит кнопка. Вас дома уже не будет.
Сейчас вам нужно нажать механическую кнопку столько раз, чтобы при включении света духовка оказалась в выключенном режиме. Вы не помните, сколько именно у духовки режимов работы, но их точно не больше четырёх (включая выключенный).
Вопрос: сколько раз нужно сейчас нажать на кнопку, чтобы духовка точно оказалась в выключенном режиме?
#задачи #логика #арифметика