PHP.today
3.76K subscribers
12 photos
4 files
236 links
Самые свежие новости из мира PHP. Обновленные стандарты. Лучшие практики с примерами кода. Как писать чистый, читаемый и понятный код.
Чат тут https://tttttt.me/all_it_ru
Download Telegram
Да, кстати.

Совсем забыл про основной ресурс, так сказать, библию для новичка.
http://www.phptherightway.com/
Авторы собрали очень много важных вещей о PHP в одном месте.
Конечно, это далеко не все, библия скорее похожа на методичку...

Кстати, русская версия слегка отстает от английской, поэтому лучше читать «в оригинале».
Всем привет!
Сегодня понедельник, а это значит что настало время включаться в работу, и немного поразмять мозги.

И у меня для вас есть интересная задачка из разряда "задачки из собеседований".

Есть таблица MySQL, содержащая личные сообщения пользователей
CREATE TABLE messages (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
user_from_id INT(10) UNSIGNED NOT NULL,
user_to_id INT(10) UNSIGNED NOT NULL,
message TEXT NOT NULL,
created_at INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (id)
);

Нужно выбрать самую активную пару (пару пользователей с самым большим количеством сообщений) одним MySQL запросом.

Можно несколько вариантов ответа.

Свои ответы присылайте в гугл-форму тут: http://bit.ly/2zghotV
#задачисобеса
Еще немного про уязвимости.
Представьте себе, что вы даете пользователям возможность принимать сообщения на адрес вида some-name@yourdomain.com
К примеру - взять Трелло. Там можно создавать карточки, просто отправляя письмо на blablabla@trello.com.
А также представьте, что на этот домен у вас настроен SSO. Ну или есть тима в слаке.
Что из этого может выйти плохого - можно почитать в следующей статье.
http://telegra.ph/Nemnogo-ob-uyazvimostyah-11-06
Всем доброе субботнее утро! (А кому-то уже и добрый субботний день)
Знаете, почему мы получаем удовольствие от выполнения задачи? Это дофамин, так сказать - гормон удовлетворения. Достигли поставленную цель - получили порцию дофамина.
Эдакое мини-счастье.

Для разработчика очень важно получать дофамин в процессе выполнения больших задач, т.к. иначе мы просто начинаем думать "а на кой оно все", или "ну нафиг это грамотное исполнение, напишу говнокодом, и так убил 2 недели".

Поэтому всегда старайтесь разбивать задачу на дробные кусочки, и получать дофамин за выполнение каждого из них.

Ну и не забывайте про мини-достижения, будь то "красивый рефакторинг вон того класса", звездочка на гитхабе, ну или успешно пройденный профессиональный мини-тест.

Кстати, хочу рассказать об одном интересном проекте - Geekbrains (его купила Mail Ru, но не пугайтесь) - это IT академия, но наш интерес не в этом. Самое главное для нас - там есть бесплатные тесты по различным языкам программирования на различные уровни.

Очень советую пройти тест по PHP для всех уровней. Ссылку оставлю ниже:
http://bit.ly/2yq6azB
Всем привет. Сегодня хотелось бы затронуть SQL базы данных. Я недавно ставил сборку nginx+mysql+php на новый сервер, на всякий случай залез в мануалы, и digital ocean в своем мане предлагает ставить MariaDB вместо mysql. И правда, эти штуки совместимы между собой (до тех пор, пока вы не используете множественные триггеры, или еще какую-нибудь завернутую хрень).

А почему все-таки стоит перейти на MariaDB - описано тут
http://telegra.ph/MariaDB-protiv-MySQL-11-24
Всего 3 дня осталось до релиза одного из самых популярных фреймворков: Symfony, который ожидается 30 ноября. Это будет 4 версия, которая принесет много нового и интересного.

Интересно, как симфони изменила нашу жизнь. Отдельные ее компоненты можно найти в самых неожиданных местах 😆.

Подробнее об основных нововведениях четвертой версии можно почитать тут (ну или пойти дальше ковырять свой -друпал- (зачеркнуто) любимый фреймворк)
http://telegra.ph/Budushchij-reliz-Symfony-40-i-proekt-s-ispolzovaniem-Symfony-Flex-11-27
А какой фреймворк вы считаете самым прогрессивным (ну или просто - самым лучшим/элегантным)

▪️ 39% (170) Laravel
🔸🔸🔸🔸🔸🔸🔸🔸
▫️ 14% (64) Symfony
🔸🔸🔸
▪️ 22% (97) Yii
🔸🔸🔸🔸
▫️ 2% (9) Zend

▪️ 1% (8) CodeIgniter

▫️ 1% (6) CakePHP

▪️ 3% (13) Phalcon

▫️ 0% (3) PHPixie

▪️ 1% (7) Другой

▫️ 12% (52) Отсутствие фреймворка
🔸🔸
👥 429 - всего голосов
Немного об аутентификации.

В нашем мире часто никто не задумывается об аутентификации всерьез. Ну, вводи логин-пароль, а я их сохраню. Что? Не секьюрно сохранять так? Ок, давайте в md5.

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


http://telegra.ph/Kak-ty-realizuesh-autentifikaciyu-priyatel-11-29
Когда-то, на заре моей карьеры, на собеседовании меня спросили: "Как вы считаете, чем плох Singleton?".

Я тогда сильно удивился, ведь как, самый популярный паттерн - плохой? И кому теперь верить? Да, каюсь, я тогда не использовал unit-тестирование. Иначе я знал бы хотя бы один ответ.

А в этой статье подробно разобрано, почему Singleton нужно использовать с осторожностью. http://telegra.ph/Pochemu-Singleton-ehto-ploho-12-01
Знаете, то чувство, когда ты не очень любишь mail.ru, но вдруг почувствовал его полезность?😱

Что мне нравится - так это их любовь к своему блогу на хабре и перевод интересных материалов.

Предлагаю ознакомиться с разборкой по кирпичикам механизма кеширования PHP кода.
http://telegra.ph/Vo-vsyom-vinovat-PHP-OPCache-12-04
Приближается 2018 год, и технари — в частности веб-разработчики — должны отбросить многие старые методики и верования в сфере разработки защищённых PHP-приложений. Особенно это относится ко всем, кто не верит, что такие приложения вообще возможны.

Это руководство — дополнение к электронной книге PHP: The Right Way с сильным уклоном в безопасность, а не общие вопросы программирования на PHP (вроде стиля кода).


Part 1. http://telegra.ph/Rukovodstvo-po-napisaniyu-zashchishchyonnyh-PHP-prilozhenij-v-2018-m-Part-1-12-18
Поговорим немного о работе с большими файлами в php: http://telegra.ph/Kak-prochitat-bolshoj-fajl-sredstvami-PHP-ne-grohnuv-pri-ehtom-servak-12-19