Уютное сообщество пхпшников. Книги
1.29K subscribers
50 photos
65 links
Канал с книгами по PHP. Только новые книги для старта карьеры.
В планах тесты с разбором задач по PHP.


По рекламе: @anothertechrock
Download Telegram
Как по вашему, кто должен первым называть сумму зарплаты на собеседовании: кандидат или рекрутер/интервьюер? Обосновать можно в комментариях)
Anonymous Poll
26%
Кандидат
74%
Интервьювер
Полезный код. Проверка доступности видео на YouTube

Решение, как проверить на PHP, что видео YouTube доступно, не удалено и не закрыто
function isAvailableVideo($videoId) {
$headers = get_headers('https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v='.$videoId.'&format=json');
return (substr($headers[0], 9, 3) !== '404');
}

Если видео доступно и открывается, то функция возвратит true, если с видео что-то не так, возвратит false
👍5💩3
Каким учебным ресурсам вы отдаете предпочтение при изучении языка программирования? (Можно отмечать больше одного).
Anonymous Poll
59%
книги
40%
статьи
35%
отдельные видео
43%
целые видеокурсы
42%
работаю над проектом и ищу нужное для проекта в разных источниках
9%
посмотреть ответы
Сколько мониторов, по вашему мнению, нужно для комфортной работы над программами?
Anonymous Poll
21%
одного хватит
55%
два
16%
три лучше, чем два)
8%
мониторов не может быть слишком много
Полезный код. Удаляем лишние символы из номера телефона

Решение, как удалить лишние символы из номера телефона и оставить только цифры в PHP
$phone = preg_replace('![^0-9]+!', '', $phone)

Свежие вакансии по PHP тут : @rabotaphp
👍4💩2
Привет, друзья! А как вы научились программировать (по большей части)? Уроки информатики в школе не считаем.
Anonymous Poll
13%
университет
22%
курсы
48%
книги, видео, статьи
4%
лбительский кружок какой-нибудь в детстве
3%
друг / родственник научил
11%
другое
👍1
Best practices. Как правильно делать. Имена

Переменные мы пишем в нижнем регистре:
$specialname = 10;

Константы в верхнем регистре:
echo SPECIALNAME;

Имена функций и классов пишем с маленькой буквы, но при этом имена, состоящие из двух или более слов пишем в верблюжьем стиле, то есть каждое новое слово начинается с большой буквы:
function myJob(){}
function specialAction(){}
function myBossVeryStupid(){}

Свежие вакансии по PHP тут : @rabotaphp
💩6👍4👎1
Best practices. Как правильно делать. Синтаксис-Массивы

Достаточно простой синтаксис, если мы имеем сложные массивы и много данных в массиве, то каждый элемент массива с новой строчки и отступом в +4 пробела от общей линии. При этом простые можно писать в одну строчку:
$array = array(10,5,2,'Стас');
$array = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3',
);
$array = array(
'key1' => array(
'key1' => 'value1',
'key2' => 'value2',
),
'key2' => 'value',
);

Свежие вакансии по PHP тут : @rabotaphp
💩6👍3
Best practices. Что не надо делать?

Никогда ни при каких обстоятельствах не пользуйтесь сокращенной записью открытия блока PHP:
<? или <?=$var;?>
всегда пишите полностью:
<?php echo $var; ?>

В именах файлов и директорий никогда не используйте русский текст, пробел, точку, запятую и другие символы, можно использовать ТОЛЬКО латинские символы (английские символы) и нижнее подчёркивание.

Свежие вакансии по PHP тут : @rabotaphp
🤡11👍4💩4👎3
Тип parent

Недавно осознал, что parent можно использовать как тип в любых местах. Вроде и логично, но как-то странно... Согласитесь, вы бы поёжились, если бы увидели что-то подобное на ревью.

final class ParentOverdose extends ArrayObject
{
public function __construct(
public parent $iAmParent,
) {
parent::__construct();
}

public function iReturnParent(): parent
{
return new parent();
}

public function iAcceptParent(parent $parent): void
{
}
}

https://3v4l.org/TDXEa
Integrating Web Services with OAuth and PHP

Автор: Matthew Frost
Год издания: 2016

#php #english
Как изощрённо очистить свойство после чтения

Пишите в комментариях, пропустили ли бы вы такой код на ревью и почему. 🤓

/**
* @return list<object>
*/
public function releaseEvents(): array
{
try {
return $this->events;
} finally {
$this->events = [];
}
}
Какой вариант оптимальнее по памяти? (Какая переменная меньше?)
Anonymous Quiz
22%
Первый ($toStringAsKeyMemory)
78%
Второй ($toHexAsKeyMemory)
🤔11👎4👏21
uniqid()

Функция uniqid — простой и быстрый способ получить ±уникальную криптографически небезопасную строку.

Как она работает? Функция берёт секунды и микросекунды, прошедшие с начала эпохи Unix, и конкатенирует их в шестнадцатиричном представлении:

function uniqid(): string
{
$time = gettimeofday();

return sprintf('%x%x', $time['sec'], $time['usec']);
}

Таким образом, выдаваемая строка имеет длину 13 символов (как посчитать длину самому). Если требуется меньше, то отрезать нужно с конца, так как наибольшей энтропией обладают последние знаки. Например, чтобы получить 8 символов, используем выражение substr(uniqid(), -8).

Первый необязательный параметр $prefix эквивалентен конкатенации $prefix.uniqid().

Второй необязательный параметр $more_entropy добавляет к результату псевдослучайное число, что снижает риск получить одинаковые значения в параллельных процессах. Такая строка содержит 23 символа и имеет вид 61e0e81a580527.28156047.

Не стоит относиться к этой функции слишком серьёзно, но в простейших случаях, например, при именовании каких-нибудь временных штук, она избавит вас от 🚲.
Тип parent

Недавно осознал, что parent можно использовать как тип в любых местах. Вроде и логично, но как-то странно... Согласитесь, вы бы поёжились, если бы увидели что-то подобное на ревью.

final class ParentOverdose extends ArrayObject
{
public function __construct(
public parent $iAmParent,
) {
parent::__construct();
}

public function iReturnParent(): parent
{
return new parent();
}

public function iAcceptParent(parent $parent): void
{
}
}

https://3v4l.org/TDXEa
1👍1
Что вернет dirname("php")?
Anonymous Quiz
35%
""
19%
"."
22%
"/"
24%
DIRECTORY_SEPARATOR
👍5
Если вы используете Deployer, то после успешного пятничного деплоя можете поиграть в Блэкджек из консоли.

./vendor/bin/dep blackjack
👍4