Все самое полезное для пхпшника в одном канале.
По рекламе: @tproger_sales_bot
Учиться у нас: clc.to/M561SQ
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Created
23 July 2018 — measured — cross-checked against a third-party dataset (ext.tg_channel)
Technology — a classification, not a measurement. An on-box language model (Qwen3.6-35B-A3B-FP8, prompt version 1) read this channel’s own recent posts on 11 September 2026 and assigned it the closest of 31 fixed categories, at 96% confidence. This is a model’s judgement about what the channel is likely to be about, not a fact this register measured the way a subscriber count or a view count is measured — it can be revised on a later pass, and it carries no weight anywhere else on this page. How this classification works, and the other topics.
Growth
62 measurements spanning 96 days, net -144. 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 10,410–10,598 and does not start at zero.
Measurement log — every subscribers count we have recorded, most recent 20 of 62
Measured (UTC)
Subscribers
Change
10 Nov 2026, 06:46
10,432
-4
8 Nov 2026, 21:09
10,436
-5
7 Nov 2026, 14:47
10,441
-2
6 Nov 2026, 12:04
10,443
-4
5 Nov 2026, 11:01
10,447
-4
4 Nov 2026, 09:54
10,451
-1
3 Nov 2026, 11:57
10,452
-3
2 Nov 2026, 10:54
10,455
-3
1 Nov 2026, 13:55
10,458
-2
31 Oct 2026, 14:18
10,460
-1
30 Oct 2026, 12:17
10,461
-1
29 Oct 2026, 12:19
10,462
-1
28 Oct 2026, 11:30
10,463
+4
27 Oct 2026, 12:04
10,459
-2
26 Oct 2026, 15:26
10,461
-8
25 Oct 2026, 14:17
10,469
-1
24 Oct 2026, 14:10
10,470
-3
23 Oct 2026, 14:15
10,473
-5
22 Oct 2026, 15:11
10,478
-4
21 Oct 2026, 10:19
10,482
first reading
Engagement
73 posts held, back to 22 July 2026 — the reader has not yet reached the start of this channel’s public history, so older posts may sit further back, unread. Read across 56 pages of Telegram’s post history, 20 posts per page.
ERR · 30 days
15.9%
avg views ÷ 10,432 subscribers
Avg views / post
1,660
29 posts measured
Reaction rate
0.129%
reactions ÷ views · ER floor
Posts in window
29
of 73 held
ERR is average views per post over the last 30 days divided by subscribers, the definition TGStat uses, so this figure is comparable with the one you will see elsewhere. It falls structurally as a channel grows: a high ERR on a small channel and a low one on a large channel describe reach mathematics, not quality. We publish the figure and the sample it came from and pass no verdict on it.
ER is defined industry-wide as (forwards + reactions + comments) ÷ views — note the denominator is views, not subscribers. Telegram’s public web preview carries views and reactions but not forward or comment counts, so the reaction rate above is the reactions term only and is therefore a floor: the true ER for this channel is higher by an amount we have not measured and will not estimate. It is computed over the 19 of 29 measured posts that carry a reaction reading, and over those same posts' views.
What these figures were computed from
Window
Rolling 30 days · latest post in window 11 November 2026
Posts held
73 (22 July 2026 – 11 November 2026)
Views total
48,102
Reactions total
41
Forwards / comments
not exposed by the public surface — not measured, not estimated
Readings taken
11 Nov 2026, 10:51 UTC
Views are a single reading per post, taken at the time above. A post published in the last day or two is still accumulating views, which pulls the 30-day average down slightly. That is a property of the standard definition rather than a fault in it, so we keep the definition rather than “correcting” the number into something nobody can reproduce.
Precision. Telegram publishes view counts on its public widget in short form — 8.12K, 3.7M — so any reading at or above 1,000 reaches us rounded to three significant figures, and only counts below 1,000 are exact. Averages and rates derived from them are shown to the same precision rather than to the unit: a figure like 3,701,250 would assert digits nobody measured.
Reaction counts are published per emoji and rounded the same way, so a total below 1,000 is exact and a larger one is a sum that may carry a rounded component from each emoji above 1,000. Because it is a sum, it does not look rounded — read a large reaction total as three significant figures per contributing emoji rather than as the figure it prints.
What this channel posts
Photos
≈1,770
Videos
≈31
Links
≈4,610
Lifetime counters from Telegram’s own channel header, read 11 November 2026 — not the date at the top of this page, which is when the subscriber count was last read. A count marked ≈ was rounded by Telegram before we ever saw it — t.me prints these counters in full below 1,000 and to three significant figures above, so ≈142,000 means somewhere between 141,500 and 142,499.
Reaction mix
533 reactions across 53 posts, in 14 distinct kinds. The most used accounts for 32.1% of them.
Every reaction kind recorded on the sample, most used first
Reaction
Count
Share
Share, drawn
👍
171
32.1%
😁
126
23.6%
🔥
65
12.2%
❤
63
11.8%
🥱
41
7.69%
🌚
20
3.75%
😢
13
2.44%
🤔
13
2.44%
👾
7
1.31%
❤🔥
5
0.938%
💯
5
0.938%
🥰
2
0.375%
😍
1
0.188%
🤩
1
0.188%
No sentiment is inferred, and none should be read in. This table is ordered by count and by nothing else. Emoji do not carry stable meaning across languages or communities — 🙏 is thanks in one channel and mourning in another — so we publish which ones were pressed and how often, and pass no judgement on what an audience meant by them.
Precision. Telegram publishes reaction counts per emoji and short-forms each one — 4.34K, 1.2M — so any single kind at or above 1,000 reaches us at three significant figures, and only counts below 1,000 are exact. The shares above are ratios of those figures and carry the same error. This is also why the total here can differ slightly from a reaction total printed elsewhere on the page: both are sums of the same rounded parts, taken over samples with different edges.
Coverage. Reactions were read on 59 of the 73 sampled posts in this sample. Summed by Telegram’s own count on each post — not by adding up the per-emoji breakdown above — those same posts carry 569 reactions in total: the kind of figure the paragraph above means by “a reaction total printed elsewhere on the page”.
Measured over the 73 most recent posts we hold, published 22 July 2026 to 11 November 2026, using the newest reading held for each. Telegram Stars are excluded: they are a payment, not a reaction, and they have their own section.
Recent posts
Telegram’s own ‘edited’ marker: 0 of 29 posts held from the last 30 days (0%) carried it when this register last read them. The marker says a post was changed after publishing, not what it said before — this register holds the earlier wording only where an edit fell between two of its own reads (see the edit ledger and how it is measured).
💡 Time\Duration в PHP 8.6 сделает единицы таймаута явными
В одном API таймаут задаётся в секундах, в другом — в миллисекундах, в третьем — в микросекундах. Значение 250 приходится расшифровывать по документации или имени параметра.
В PHP 8.6 появится Time\Duration — общий тип для длительности. Именованные конструкторы сразу показывают единицу измерения:
$timeout = Time\Duration::fromMilliseconds(250);
Объект хран…
💡 Symfony 8.2 позволит редактировать разные типы блоков в одной форме
В конструкторе страниц рядом живут заголовки, текстовые блоки и футеры. У каждого блока свои поля, поэтому для такой коллекции приходится подбирать форму отдельно для каждого элемента.
В готовящейся Symfony 8.2 для этого появится PolymorphicCollectionType. Вы объявляете доступные формы и добавляете провайдер, который выбирает нужную по данным бло…
💡 Laravel позволяет получать уведомления о долгих заданиях очереди
Задание очереди ещё выполняется, а пользователь уже несколько минут ждёт отчёт. Чтобы заметить такую ситуацию, полезно задать порог времени и отправить уведомление при его превышении.
В Laravel появился Queue::whenJobRunsLongerThan. Через него можно зарегистрировать обработчик для заданий, которые выполнялись дольше заданного времени.
Обработчик вы…
💡 Composer 2.11 исправляет утечку токенов в composer.lock
При работе с приватными репозиториями Composer мог записывать HTTP-заголовки с токенами доступа в composer.lock. Если такой файл попадал в репозиторий, вместе с ним мог оказаться и секрет.
В Composer 2.11 это исправили. В выпуск также вошли исправления выхода за пределы каталога vendor при установке пакетов и обработки аргументов скриптов.
Обновите Composer…
💡 Symfony сможет строить JSON Schema из PHP-классов
Типы свойств, значения по умолчанию и ограничения валидации уже описывают структуру данных. Компонент JsonSchema использует их для генерации схемы.
$generator = SchemaGenerator::create();
$schema = $generator->generate(
Type::object(Book::class)
);
В руководстве по компоненту разобраны схемы для классов, OpenAPI и параметров методов. Последний вариант пригоди…
💡 Symfony 8.2 позволит задать ответ при неудачной проверке атрибута контроллера
Атрибут контроллера проверяет условие перед выполнением действия. Если проверка завершается неудачно, приложению может понадобиться понятное сообщение или другой сценарий обработки запроса.
В разборе новой возможности показано, как контроллер сможет обработать такой исход.
Полезно для действий, где пользователь должен понять причину от…
💡 Symfony 8.2 упрощает обмен сообщениями между приложениями
Один сервис принимает заказ, другой отправляет письмо, третий обновляет данные. Чтобы они понимали друг друга, нужно согласовать формат сообщений и способ их передачи.
В разборе межсервисного обмена показаны новые возможности Messenger для взаимодействия отдельных приложений.
Материал пригодится при разделении системы на сервисы. Начните с одного сообщени…
💡 Symfony 8.2 позволит проверить выражения до запуска приложения
Ошибка в выражении для доступа или валидации может обнаружиться только при выполнении нужного запроса. Новая lint-команда поможет находить такие ошибки заранее.
В разборе ExpressionLanguage показаны проверка выражений, их компиляция в PHP и ограничение констант, к которым они обращаются.
При подготовке к Symfony 8.2 добавьте проверку выражений в CI. …
👀 Symfony позволит учитывать права пользователя прямо при валидации
Редактору можно писать описание любой длины, остальным пользователям — до 280 символов. Такое правило удобно держать рядом с проверяемым полем.
В Symfony 8.2 функции проверки прав станут доступны в выражениях валидации. Например:
#[Assert\When(
expression: 'not is_granted("ROLE_EDITOR")',
constraints: [new Assert\Length(max: 280)],
)]
publi…
👀 HttpClient сможет читать итоговый статус gRPC из HTTP trailers
Сервер может передать часть заголовков после тела ответа. Например, gRPC отправляет туда результат вызова — grpc-status и grpc-message. Эти поля называются HTTP trailers.
В Symfony 8.2 HttpClient сохранит такие поля в информации об ответе. Прочитать их можно после завершения загрузки:
$body = $response->getContent();
$trailers = $response->getInfo('tr…
👀 Messenger Inbox поможет избежать повторной обработки сообщения
Воркер записал заказ в базу и завершился до подтверждения сообщения. Брокер доставляет его снова, а обработчик повторяет уже выполненную работу.
В Symfony 8.2 появится Messenger Inbox. Он сохраняет идентификатор сообщения вместе с изменениями обработчика в одной транзакции. При повторной доставке Messenger находит запись и пропускает уже завершённую о…
💡 Symfony 8.2 позволит вставлять ссылки в переводы с экранированием параметров
В переводе нужна ссылка внутри предложения. Частое решение — записать HTML прямо в строку и вывести её через trans|raw. Вместе с разметкой такой подход пропускает в результат и неэкранированные параметры сообщения.
В готовящемся Symfony 8.2 появится фильтр trans_html. В переводе остаются именованные псевдотеги:
auth_prompt: 'Чтобы продо…
👍4❤1
Showing the 12 most recent of 73 posts we hold for @phpproglib. 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.
Posts recorded as deleted after publishing
We recorded 1 post on @phpproglib as deleted — posts this register held that were missing from the channel’s public page on two separate reads, taken from different network addresses at least an hour apart.
A deletion is not wrongdoing. This register can see that a post it held is no longer on the channel’s public page, and when — not why. Expired ad placements, reposts, rotating links and corrections all look the same. This is a count of recorded detections, not an exact total: it misses deletions we could not see, because only a post we held and later re-read inside the page can be seen to go, and it may include a small number of wrong records. How this is measured.
First seen missing
10 November 2026
Most recent seen missing
10 November 2026
Median time before seen missing
5 days
Seen missing in the last 30 days
1
Polls
The poll we hold for this entry, as Telegram rendered it when we read the post. A poll’s figures keep moving after that, so each one is dated.
Приходится ли вам копипастить данные и какие именно, когда переходите из одной нейросети в другую?
Код17%
Описание задачи28%
Документацию14%
Результаты работы17%
Настройки и контекст: историю чатов, промпты, скиллы20%
Ничего, использую один инструмент50%
The shares total 146%, above 100: this poll accepts more than one answer per voter. No per-option vote count is published, so the number of voters who chose each option is not derivable and is not shown.
Percentages only — there are no per-option vote counts here, because Telegram publishes none. The public post preview gives each option’s share and a single voter total, and nothing else. Multiplying one by the other would produce a per-option tally that looks measured and is not: the shares are rounded to whole numbers before we ever see them. We print what was published and leave the column that does not exist empty.
The shares need not add up to 100. Rounding alone puts many polls at 99 or 101. A poll that allows more than one answer per voter runs well past 100 by design, and several here do. The bars are drawn against a fixed 100% track at each option’s own percentage rather than normalised to the total, so a poll that exceeds it shows that it does instead of being quietly rescaled.
Read from the 73 most recent posts we hold, published 22 July 2026 to 11 November 2026. Telegram labels each poll by kind — an anonymous poll, a quiz, a closed set of final results — and that label is reproduced rather than paraphrased.
Forward network
Republished by
Channels on the register that have forwarded this channel's posts into their own feed.
Built only from forwarded posts we have actually read, on both sides. Coverage is early and deliberately incomplete: a missing link means we have not read the post that would prove it, never that the relationship does not exist. Counts are distinct forwarded posts observed, so they only ever go up as we read more.
Mentions
Named by 10 registered channels — every channel on the register whose own posts have named this one, by its current username or any other username it currently holds, merged from two separately captured readings of the same fact so a namer caught by only one of them is not missed and a namer both caught is not counted twice. A username this channel has since dropped is not matched — that handle may belong to someone else now, and crediting today’s namer to yesterday’s owner would misattribute it.
Named by
Channels on the register whose posts name this channel's handle.
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.
Handles this channel named that no longer answer
Dead references
1
handles named in this channel’s posts, vacant today
Evidenced gone
0
we ourselves saw one of these resolve, at some point
Never seen alive
1
vacant every time we have ever looked
@phpproglib named 1 handle that resolve to nothing today. That is a fact about the reference, not necessarily a fact about the handle’s history — see the two groups below.
Most of these may never have existed as a live channel at all. A handle a channel names can be a typo, an aspirational name nobody registered, or a channel that was already gone before this one ever mentioned it. Unless a row below is marked evidenced, all we know is that it references a handle that is not a live channel today — not that anything “died”. How this is measured.
Never seen alive
References a handle that is not a live channel — we have no record it ever was one.
@env_required named in 10 posts, 10 August 2026 – 27 August 2026
Appears in Telegram’s recommendations for other channels
The reverse of the list above, and a different kind of signal. This does not require this channel to have ever been asked about directly — each row below is a channel we DID ask Telegram about, whose Telegram-generated list happened to include this one. A channel can appear here with an empty list above it, because being named by someone else’s query is independent of having been queried itself.
Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js @frontendproglib · 20,611 Telegram ranks this channel #18 of 93 here — alongside 92 others — read 25 September 2026
Библиотека программиста @proglibrary · 77,612 Telegram ranks this channel #18 of 82 here — alongside 81 others — read 19 August 2026
Библиотека Go-разработчика | Golang @goproglib · 23,894 Telegram ranks this channel #29 of 91 here — alongside 90 others — read 17 September 2026
Веб-страница @tproger_web · 22,155 Telegram ranks this channel #61 of 96 here — alongside 95 others — read 20 September 2026
Fullstack / Software Job Offers @runello_rus_webdevelopment · 24,176 Telegram ranks this channel #81 of 93 here — alongside 92 others — read 17 September 2026
This channel appears in 5 seed channels' Telegram-generated recommendation lists in total. Each is Telegram’s list for THAT channel, not this one — see how this is measured.
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 10 November 2026 — this
entry's latest reading, not the date you are reading this.
“Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter” (@phpproglib), 10,432 subscribers as measured 10 November 2026. Telegram Register, tgregister.com/channel/phpproglib.
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.