Telegram RegisterThe public register of Telegram
Telegram profile photo for PHP Generation

Channel

PHP Generation

@php_generation

On this record: Growth · Engagement · What this channel posts · Posts · Citations · Handles named that no longer answer · Cite this entry

5subscribers

+0 since we began measuring on 7 August 2026

Risers and fallers across the register · movement among entries of Under 1,000.

Register entry

Telegram ID-1001453878912
TypeChannel
Username@php_generation
DescriptionPHP G - Ваш проводник в увлекательный мир PHP
CreatedBetween 1 April 2019 and 20 March 2021— estimated from Telegram’s id allocation, not measured. How this range is calculated.
First recorded13 August 2026
Last confirmed live21 August 2026
Measurements held2
On Telegramt.me/php_generation

Growth

57 August 2026 — 5 subscribers13 August 2026 — 5 subscribers7 August 202613 August 2026
2 measurements spanning 5 days. Dots are measurements; the straight line between them is drawn to join them, not to claim we know the path taken in between — snapshots are recorded only when a count changes, so gaps mean “no change observed”, never “interpolated”. The vertical axis spans 4–6 and does not start at zero.
Measurement log — every subscribers count we have recorded
Measured (UTC)SubscribersChange
13 Aug 2026, 01:325no change
7 Aug 2026, 15:455first reading

Engagement

20 posts held, back to 20 March 2021the reader has not yet reached the start of this channel’s public history, so older posts may sit further back, unread. Read across 1 pageof Telegram’s post history, 20 posts per page.

Nothing published in the last 30 days. ERR and ER are rolling 30-day measures, so there is nothing to compute — we hold 20 posts for this entry, the most recent from 9 April 2021. An engagement rate over an empty window would be a number about nothing.

What this channel posts

Photos
17
Links
18

Lifetime counters from Telegram’s own channel header, read 13 August 2026 — not the date at the top of this page, which is when the subscriber count was last read. Below Telegram’s rounding threshold, so these counts are exact.

Recent posts

9 Apr 2021, 15:47 UTC81 viewsread 13 August 2026

Вконтакте снова выложил свой движок KPHP. Все подробности тут https://telegra.ph/VKontakte-snova-vykladyvaet-KPHP-12-01

8 Apr 2021, 15:34 UTC58 viewsread 13 August 2026
Photo

Функция для получения всех типов класса Такая функция потребовалась мне для поиска обработчика объекта по типу. Генератор здесь позволяет не рефлексировать раньше времени. https://3v4l.org/EOPjm

7 Apr 2021, 09:44 UTC39 viewsread 13 August 2026

Фронт для прожженного бэка Всем привет. Данный пост подойдет новичкам, или прожженным бэкендерам, которым проще написать на го или джаве, чем на js/css. Когда вообще появилось это разделение на Front и Back? Только только у нас в команде был верстальщик, который особо и программистом то не выглядел, и вот вдруг React, Angular, TypeScript, а кто не успел - теперь Backend разработчик. Так что делать, если ты бэкэнд д

6 Apr 2021, 12:47 UTC25 viewsread 13 August 2026
Photo

При помощи Generator::valid() можно проверить генератор на пустоту, не обходя его целиком. После вызова $generator->valid() функция генератора начинает выполнение и доходит либо до первого yield (тогда valid возвращает true), либо до конца (valid возвращает false). Интересно, что в первом случае на генераторе можно вызвать rewind без каких-либо последствий, так как обход ещё не начался. Во втором случае генератор за

5 Apr 2021, 16:34 UTC21 viewsread 13 August 2026
Photo

Как избавиться от лишних неявных зависимостей 🧹 Рассмотрим классический пример про полифилы. Symfony Console версии 5.1 использует функцию is_countable, которая появилась в PHP 7.3. Чтобы поддерживать PHP 7.2, пакет требует полифил symfony/polyfill-php73. Поэтому когда мы устанавливаем symfony/console в проекте с PHP 7.4, мы получаем не только компонент, но и полифил PHP 7.3, который нам, очевидно, не нужен. Чтобы

4 Apr 2021, 15:11 UTC24 viewsread 13 August 2026
Photo

Единственный правильный способ прокинуть логгер ☝️ Что не так с LoggerAware* костылями: • LoggerAwareInterface делает дыру в сервисе методом setLogger. Да и как контракт он абсолютно бесполезен. • В LoggerAwareTrait свойство logger, что бы ни говорил phpdoc, имеет значение по умолчанию null и, соответственно, nullable тип. Значит его либо нужно всегда проверять if ($this->logger !== null), либо как в сниппете иниц

3 Apr 2021, 16:31 UTC23 viewsread 13 August 2026

Аргумент "непустой индексный массив строк" на чистом PHP и с использованием Psalm: function native(string $name, string ...$names): void { foreach ([$name, ...$names] as $name) { // ... } } /** * @psalm-param non-empty-list<string> $names */ function psalm(array $names): void { foreach ($names as $name) { // ... } } Оба варианта по-своему интересны, выбирайте исходя из типичного к

2 Apr 2021, 10:19 UTC24 viewsread 13 August 2026
Photo

Как получить все типы значения Для примитивов всё просто — в PHP 8 теперь есть функция get_debug_type, она возвращает тип в привычном формате. В случае объекта помимо класса нужно вернуть список суперклассов (умное название для родительских) и интерфейсов. Проще всего их добыть встроенными функциями class_parents и class_implements. Что касается порядка отдаваемых типов, как правило, требуется сортировка от конкре

1 Apr 2021, 15:17 UTC23 viewsread 13 August 2026
Photo

Оператор new в инициализаторах https://wiki.php.net/rfc/new_in_initializers Не прошло и недели после стрима, как Никита Попов опубликовал обещанный RFC, разрешающий использовать new в инициализаторах. Если его примут, то в качестве дефолтных значений статических переменных, параметров, констант и свойств можно будет использовать объекты. Интересно, что в рамках этого предложения атрибуты тоже получат право исполь

30 Mar 2021, 10:33 UTC19 viewsread 13 August 2026

Обработка deadlock в Doctrine Проблему взаимных блокировок в первую очередь надо решать исходя из контекста, где они возникают. Однако если дедлоки стреляют изредка, можно предусмотреть простой retry. Удобнее всего его реализовать как middleware для command bus и там поймать Doctrine\DBAL\Exception\RetryableException. Помните, что после ошибки EntityManager закрывается. В Symfony его можно оживить вызовом метода re

29 Mar 2021, 16:14 UTC15 viewsread 13 August 2026

Раньше, чтобы создать nullable ValueObject из nullable примитива, приходилось писать колбасу вроде null === $stringClientId ? null : ClientId::fromString($stringClientId). Сегодня условные типы Psalm позволяют перенести if в статический конструктор: /** * @template T of ?string * @psalm-param T $id * @psalm-return (T is null ? null : self) */ public static function fromString(?string $id): ?self { if (null

28 Mar 2021, 05:46 UTC18 viewsread 13 August 2026

Как часто вы сталкиваетесь с проблемой, когда для тестирования задачи приходится менять код? Тесты отложенной отправки письма, генерации чего-то по расписанию раз в неделю и т.д. Badoo имеет свое собственное решение, которое упрощает жизнь тестировщикам. Все тут: https://telegra.ph/API-dlya-QA-testiruem-fichi-bez-dostupa-k-kodu-12-01

Showing the 12 most recent of 20 posts we hold for @php_generation. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.

Mentions

Names

Channels on the register whose handles appear in this channel's posts.

A mention is a weaker signal than a forward and is counted separately for that reason — naming a channel is not republishing it, and a handle in a post body is easy to place deliberately. The post counts beside each row below are distinct posts in which the handle appeared, from posts we have read on both sides — the “Named by N registered channels” figure above is a different count, of distinct NAMING CHANNELS rather than posts, and is not the sum of the rows under it.

Cite this entry

A live page changes as we take new readings, so a citation should name the measurement it is based on, not just the URL. The line below cites the subscriber count as measured 13 August 2026 — this entry's latest reading, not the date you are reading this.

“PHP Generation” (@php_generation), 5 subscribers as measured 13 August 2026. Telegram Register, tgregister.com/channel/php_generation.

Full measurement history, CC BY 4.0. Every reading this register holds for this entry, not just the latest one, as a dated, downloadable record: CSV · JSON. Free to use with attribution to tgregister.com. Each file carries its own generation timestamp, which is the figure to cite for exactly when the data was retrieved.