I wrote a few web apps in PHP already that could be protected with basic authentication or $_SERVER['<variable>] like Shibboleth or Oauth (Keycloak).
For small environments .htpasswd and .htgroups file are good enough which I didn't handle so far. Now I wrote 2 php classes:
<https://www.axel-hahn.de/docs/php-htpasswd/>
You want to manage users and groups in the terminal? There is a cli tool on top of it as well <https://github.com/axelhahn/ht-manager/>. Check the releases page for a compiled binary.

#PHP Compile time generics: yay or nay?
https://thephp.foundation/blog/2025/08/05/compile-generics/
In January 2019 I did a talk at a local #PHP user group presenting the concept of a #RoleBasedAccessControl (#RBAC) system. During that talk I promised that I'd release a supporting library.
Well, lots of things got in the way, but I've finally done it. May I present to you…
Rick Role!
It's the Role Based Access Control library that's never gonna give you up, never gonna let you down, never run around and desert you!
https://github.com/managur/rick-role
🌘 編譯時泛型:贊成還是反對?
➤ 探索 PHP 泛型的可能性:以編譯時限制達成實用效益
✤ https://thephp.foundation/blog/2025/08/05/compile-generics/
PHP Foundation 團隊正在探索在 PHP 中實現編譯時泛型的可行性。透過僅在介面與抽象類別上引入泛型,並採用「手動多型化」的技術,預計能以較低的開發成本,實現大部分泛型的好處,大幅提升開發體驗與錯誤偵測效率,儘管這並非完整的運行時泛型。
+ 終於要引進泛型了!不過只有編譯時的話,跟現行版本差異會有多大?
+ 聽起來很有潛力,但 PHP 的動態特性會不會讓這類型的「編譯時」功能綁手綁腳?
#PHP #泛型 #編譯時 #類型系統
Generics in PHP: Hands-On with Compile-Time Generics. #PHP
https://doganoo.medium.com/generics-in-php-hands-on-with-compile-time-generics-6237c76d94d4
Generics in PHP: Hands-On with Compile-Time Generics. #PHP
Posted into SYMFONY FOR THE DEVIL @symfony-for-the-devil-mobileatom
Сбор и масштабирование метрик в PHP Symfony highload: 200k RPM, 50+ серверов и zero overhead с Telegraf UDP
«Redis умирает на 200k RPM, Prometheus не успевает скрейпить 50 серверов, а бизнес требует real-time дашборды. Знакомо?» Пятница, 18:00. Дашборд в Grafana показывает timeout'ы при сборе метрик. Redis, который хранит данные для prometheus_client_php, жрёт 8GB памяти и 100% CPU. Prometheus не успевает опросить все 50+ серверов за отведённые 15 секунд. А в понедельник запускается Black Friday... Эта статья — о том, как мы перешли с pull на push модель для мониторинга PHP-приложения в highload, почему выбрали UDP + Telegraf вместо классического подхода, и как теперь собираем метрики PHP с 50+ серверов без единого timeout'а.
https://habr.com/ru/articles/935808/
#метрики #php #symfony #metrics #telegraf #prometheus #grafana #monitoring
From the archive! PHP Custom Stream Wrappers
Part of the strength of PHP's stream wrappers is the ability to add our own stream wrappers to the list of available wrappers.
We can therefore natively open any type of resource just by registering a stream wrapper and then using the normal fopen() functions.
https://www.hashbangcode.com/article/php-custom-stream-wrappers
„Fixing “Allowed memory size exhausted” in Symfony: When Doctrine Metadata Crashes Your Serializer“
https://dogan-ucar.de/fixing-allowed-memory-size-exhausted-in-symfony-when-doctrine-metadata-crashes-your-serializer/ #php
„Starting Symfony messenger on-demand for infrequent use“
https://medium.com/@ehymel/starting-symfony-messenger-on-demand-for-infrequent-use-5bb38a9a534c #php
I’m very much a journeyman dev, though now that I have more time, I am taking more of an interest in how #php develops. In this video @brendt makes a good case for some sort of experimental features process. How that would work, is the question.
https://www.youtube.com/watch?v=hkuy11kLlmM
New blog post
https://www.tawandamunongo.dev/posts/2025/08/database-atomicity
#programming #php #database #softwaredevelopment #webdev #laravel