Lychee 7 is released! FrankenPHP, Webshop & background processing
https://lycheeorg.dev/2025-12-31-version-7/
https://redd.it/1q1281q
@r_php
https://lycheeorg.dev/2025-12-31-version-7/
https://redd.it/1q1281q
@r_php
Lychee
Version 7 released!
Another year, another major release for Lychee! Version 7 is here with exciting new features and improvements.
Detecting unauthorized tampering or modifications in Symfony.
Happy New Year!
Starting the first day of the year by shipping a new feature Verify Audit Log Integrity Ensure the integrity of your audit logs by detecting any unauthorized tampering or modifications. This command validates cryptographic hashes to identify compromised records and ensure trustworthiness of audit data.
https://preview.redd.it/0gn2z5inqrag1.png?width=794&format=png&auto=webp&s=92ed22bd55115c61ce92d7184952a4772c510ecd
You can find the code here: AuditTrailBundle
https://redd.it/1q18yoq
@r_php
Happy New Year!
Starting the first day of the year by shipping a new feature Verify Audit Log Integrity Ensure the integrity of your audit logs by detecting any unauthorized tampering or modifications. This command validates cryptographic hashes to identify compromised records and ensure trustworthiness of audit data.
https://preview.redd.it/0gn2z5inqrag1.png?width=794&format=png&auto=webp&s=92ed22bd55115c61ce92d7184952a4772c510ecd
You can find the code here: AuditTrailBundle
https://redd.it/1q18yoq
@r_php
Musings and realizations from 2025 as a Laravel developer
https://cosmastech.com/2026/01/01/musings.html
https://redd.it/1q17w2j
@r_php
https://cosmastech.com/2026/01/01/musings.html
https://redd.it/1q17w2j
@r_php
cosmastech
Musings on 2025
As 2025 wraps up, I wanted to touch on some broader topics that I thought deeply about this year.
Open Source NovaRadio CMS – A modern, all-in-one management system for internet radio (AzuraCast integrated)
Hi everyone! 👋
I’ve just released the first version (v0.1.0) of NovaRadio CMS – a professional Content Management System designed specifically for internet radio stations.
I’m a radio enthusiast and developer, and I noticed there was a gap for a modern, PHP 8.4-based CMS that plays nicely with AzuraCast.
# 🚀 Key Features in the First Version:
Full AzuraCast Integration: Manage stations, API keys, and streams directly.
DJ & Admin Panels: Separate dashboards for DJs to manage their shows without needing full AzuraCast access.
Real-Time Interaction: AJAX-powered live chat, song requests, and dedications.
Content Suite: Manage shows, schedules, podcasts, blog posts, events, and even a simple merch shop.
Listener Engagement: Polls, contests, music charts, and song history.
Branding & Customization: Light/Dark mode, custom widgets, and full SEO control.
# 🛠 Tech Stack:
PHP 8.4+ (utilizing modern features)
MariaDB / MySQL
Vanilla JS & CSS3 (keeping it lightweight)
Docker-friendly
# 🔗 Links:
GitHub Repository: [https://github.com/novik133/NovaRadio](https://github.com/novik133/NovaRadio)
Live Demo: https://novikradio.com
Note: This is the very first version (v0.1.0). It’s functional and feature-rich, but I’m actively looking for feedback, bug reports, and suggestions for future updates.
Feel free to check it out, star the repo if you like it, and let me know what you think!
https://redd.it/1q1qrwu
@r_php
Hi everyone! 👋
I’ve just released the first version (v0.1.0) of NovaRadio CMS – a professional Content Management System designed specifically for internet radio stations.
I’m a radio enthusiast and developer, and I noticed there was a gap for a modern, PHP 8.4-based CMS that plays nicely with AzuraCast.
# 🚀 Key Features in the First Version:
Full AzuraCast Integration: Manage stations, API keys, and streams directly.
DJ & Admin Panels: Separate dashboards for DJs to manage their shows without needing full AzuraCast access.
Real-Time Interaction: AJAX-powered live chat, song requests, and dedications.
Content Suite: Manage shows, schedules, podcasts, blog posts, events, and even a simple merch shop.
Listener Engagement: Polls, contests, music charts, and song history.
Branding & Customization: Light/Dark mode, custom widgets, and full SEO control.
# 🛠 Tech Stack:
PHP 8.4+ (utilizing modern features)
MariaDB / MySQL
Vanilla JS & CSS3 (keeping it lightweight)
Docker-friendly
# 🔗 Links:
GitHub Repository: [https://github.com/novik133/NovaRadio](https://github.com/novik133/NovaRadio)
Live Demo: https://novikradio.com
Note: This is the very first version (v0.1.0). It’s functional and feature-rich, but I’m actively looking for feedback, bug reports, and suggestions for future updates.
Feel free to check it out, star the repo if you like it, and let me know what you think!
https://redd.it/1q1qrwu
@r_php
GitHub
GitHub - novik133/NovaRadio: Modern Radio Management System featuring: Multi-station AzuraCast support 📻, Real-time Chat 💬, Advanced…
Modern Radio Management System featuring: Multi-station AzuraCast support 📻, Real-time Chat 💬, Advanced Scheduling 📅, Podcasts & Blog 🎙️, Song Requests/Dedications 🎶, and a full Admin/DJ Da...
Sunsetting Enlightn
2 months ago, u/ShadowSpade wondered what happened to Enlightn, this week I received this email:
>Sunsetting Enlightn
>After much thought and consideration, we are sunsetting Enlightn. It will be shutting down starting Jan 2026. With rapid advances in AI powered code assistants, it has become clear that they now cover most of the use cases Enlightn was built for.
>Recently purchased licenses have been fully refunded. Feel free to email us at sales at laravel-enlightn dot com for any questions or refund requests if we missed on refunding your recently purchased license. The open source package on Github will stay available for anyone who finds it useful. Thank you for the support and for trusting Enlightn to help improve your apps over the years!
https://redd.it/1q1tal9
@r_php
2 months ago, u/ShadowSpade wondered what happened to Enlightn, this week I received this email:
>Sunsetting Enlightn
>After much thought and consideration, we are sunsetting Enlightn. It will be shutting down starting Jan 2026. With rapid advances in AI powered code assistants, it has become clear that they now cover most of the use cases Enlightn was built for.
>Recently purchased licenses have been fully refunded. Feel free to email us at sales at laravel-enlightn dot com for any questions or refund requests if we missed on refunding your recently purchased license. The open source package on Github will stay available for anyone who finds it useful. Thank you for the support and for trusting Enlightn to help improve your apps over the years!
https://redd.it/1q1tal9
@r_php
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
I'm a little confused with MVC(Need good resources)
I am just biggner in oop PHP, and after some projects I decided to learn MVC but after a long time I didn't really get what MVC is and how I can work with itI need help with good resources with MVC
#
https://redd.it/1q09x1v
@r_php
I am just biggner in oop PHP, and after some projects I decided to learn MVC but after a long time I didn't really get what MVC is and how I can work with itI need help with good resources with MVC
#
https://redd.it/1q09x1v
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
PHP Array Shapes - potential RFC, looking for feedback
I used AI to draft an implementation of PHP array shapes. I used Claude to implement the idea in PHP's C source - I want to get it out there, full transparency.
Reason I'm posting here: I'd like to see if this is something people would even want in PHP or not. These are extension to PHP's type system enabling devs to use native PHP to relay what's inside an array.
Repository goes into details, so I'll just post the repo here: https://github.com/signalforger/php-array-shapes
There's a patch that enables compiling PHP with the support for array shapes for return types and function parameter types, for version 8.5.1
Looking for honest feedback, does this potential feature appear useful or not? I know this community doesn't pull any punches, let me know what you think :)
https://redd.it/1q1x840
@r_php
I used AI to draft an implementation of PHP array shapes. I used Claude to implement the idea in PHP's C source - I want to get it out there, full transparency.
Reason I'm posting here: I'd like to see if this is something people would even want in PHP or not. These are extension to PHP's type system enabling devs to use native PHP to relay what's inside an array.
Repository goes into details, so I'll just post the repo here: https://github.com/signalforger/php-array-shapes
There's a patch that enables compiling PHP with the support for array shapes for return types and function parameter types, for version 8.5.1
Looking for honest feedback, does this potential feature appear useful or not? I know this community doesn't pull any punches, let me know what you think :)
https://redd.it/1q1x840
@r_php
GitHub
GitHub - signalforger/php-array-shapes: PHP RFC: Array Shape Return Types (draft + implementation)
PHP RFC: Array Shape Return Types (draft + implementation) - signalforger/php-array-shapes
Conditional Audit Logging
Created a Symfony AuditTrailBundle that supports declarative audit conditions. Use expressions like
https://preview.redd.it/f6wuj10ycyag1.png?width=871&format=png&auto=webp&s=af315f2d5dee8ffc15f55eb78f05945438c1d645
https://redd.it/1q215l5
@r_php
Created a Symfony AuditTrailBundle that supports declarative audit conditions. Use expressions like
#[AuditCondition("action == 'update' and object.getPrice() > 100")] to control exactly when entities are audited. No more logging everything and filtering later.https://preview.redd.it/f6wuj10ycyag1.png?width=871&format=png&auto=webp&s=af315f2d5dee8ffc15f55eb78f05945438c1d645
https://redd.it/1q215l5
@r_php
GitHub
GitHub - rcsofttech85/AuditTrailBundle: A lightweight, high-performance Symfony bundle that automatically tracks and stores Doctrine…
A lightweight, high-performance Symfony bundle that automatically tracks and stores Doctrine ORM entity changes for audit logging and compliance. - rcsofttech85/AuditTrailBundle
Tiny PHP pretty-printer that formats arrays like PyTorch tensors
I’ve released a small helper for anyone working with PHP + data-heavy code (ML experiments, debugging, logs, educational projects, etc.).
PrettyPrint is a zero-dependency callable pretty-printer for PHP arrays with clean, Python-style formatting. It supports aligned 2D tables, PyTorch-like tensor views, summarization (head/tail rows & columns), and works both in CLI and web contexts.
Install:
composer require apphp/pretty-print
Examples:
Aligned 2D table:
pprint(1, 23, 456, 12, 3, 45);
// [ 1, 23, 456,
// 12, 3, 45]
PyTorch-style 2D output:
pprint($matrix);
// tensor(
// [ 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10,
// 11, 12, 13, 14, 15
// ])
Summaries for big matrices:
pprint($m, headRows: 2, tailRows: 1, headCols: 2, tailCols: 2);
3D tensors with ellipsis:
pprint($tensor3d, headB: 1, tailB: 1);
// tensor(
// [ 1, 2, ..., 4, 5,
// 6, 7, ..., 9, 10,
// ...,
// 21, 22, ..., 24, 25
// ])
Also supports labels, precision, start/end strings, and even acts as a callable object:
$pp = new PrettyPrint();
$pp('Hello', 42);
// Hello 42
You may find much more information in repo: *https://github.com/apphp/pretty-print*
If you often stare at messy
https://redd.it/1q2cu1w
@r_php
I’ve released a small helper for anyone working with PHP + data-heavy code (ML experiments, debugging, logs, educational projects, etc.).
PrettyPrint is a zero-dependency callable pretty-printer for PHP arrays with clean, Python-style formatting. It supports aligned 2D tables, PyTorch-like tensor views, summarization (head/tail rows & columns), and works both in CLI and web contexts.
Install:
composer require apphp/pretty-print
Examples:
Aligned 2D table:
pprint(1, 23, 456, 12, 3, 45);
// [ 1, 23, 456,
// 12, 3, 45]
PyTorch-style 2D output:
pprint($matrix);
// tensor(
// [ 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10,
// 11, 12, 13, 14, 15
// ])
Summaries for big matrices:
pprint($m, headRows: 2, tailRows: 1, headCols: 2, tailCols: 2);
3D tensors with ellipsis:
pprint($tensor3d, headB: 1, tailB: 1);
// tensor(
// [ 1, 2, ..., 4, 5,
// 6, 7, ..., 9, 10,
// ...,
// 21, 22, ..., 24, 25
// ])
Also supports labels, precision, start/end strings, and even acts as a callable object:
$pp = new PrettyPrint();
$pp('Hello', 42);
// Hello 42
You may find much more information in repo: *https://github.com/apphp/pretty-print*
If you often stare at messy
print_r() dumps to print arrays, this might make your day slightly better 😄https://redd.it/1q2cu1w
@r_php
GitHub
GitHub - apphp/pretty-print: PrettyPrint is a small, zero-dependency PHP utility that formats arrays in a clean, readable, PyTorch…
PrettyPrint is a small, zero-dependency PHP utility that formats arrays in a clean, readable, PyTorch-inspired style. It supports aligned 2D tables, 3D tensors, summarized tensor views, and flexibl...
Kreuzberg.dev now has PHP bindings (open-source document processing engine)
Hi all,
We’ve added PHP bindings for Kreuzberg.dev, an open-source document processing engine with a fast Rust core.
That means Kreuzberg now supports most major backend languages:Rust, Python, Ruby, Go, PHP, Elixir, and TypeScript/Node.js
Kreuzberg is an MIT-licensed framework for extracting and structuring data from 50+ documents formats (PDFs, Office, images, emails, etc.). Repo: https://github.com/kreuzberg-dev/kreuzberg
Your feedback, thoughts, and contributions are very welcome. Have a great start to 2026!
https://redd.it/1q2ojco
@r_php
Hi all,
We’ve added PHP bindings for Kreuzberg.dev, an open-source document processing engine with a fast Rust core.
That means Kreuzberg now supports most major backend languages:Rust, Python, Ruby, Go, PHP, Elixir, and TypeScript/Node.js
Kreuzberg is an MIT-licensed framework for extracting and structuring data from 50+ documents formats (PDFs, Office, images, emails, etc.). Repo: https://github.com/kreuzberg-dev/kreuzberg
Your feedback, thoughts, and contributions are very welcome. Have a great start to 2026!
https://redd.it/1q2ojco
@r_php
GitHub
GitHub - kreuzberg-dev/kreuzberg: A polyglot document intelligence framework with a Rust core. Extract text, metadata, and structured…
A polyglot document intelligence framework with a Rust core. Extract text, metadata, and structured information from PDFs, Office documents, images, and 50+ formats. Available for Rust, Python, Rub...
Kreuzberg.dev now has PHP bindings (open-source document processing engine)
Hi all,
We’ve added PHP bindings for Kreuzberg.dev, an open-source document processing engine with a fast Rust core.
That means Kreuzberg now supports most major backend languages: Rust, Python, Ruby, Go, Java, C#, PHP, Elixir, and TypeScript/Node.js
Kreuzberg is an MIT-licensed framework for extracting and structuring data from 50+ documents formats (PDFs, Office, images, emails, etc.).
Repo: https://github.com/kreuzberg-dev/kreuzberg
Your feedback, thoughts, and contributions are very welcome. Have a great start to 2026!
https://redd.it/1q2ojco
@r_php
Hi all,
We’ve added PHP bindings for Kreuzberg.dev, an open-source document processing engine with a fast Rust core.
That means Kreuzberg now supports most major backend languages: Rust, Python, Ruby, Go, Java, C#, PHP, Elixir, and TypeScript/Node.js
Kreuzberg is an MIT-licensed framework for extracting and structuring data from 50+ documents formats (PDFs, Office, images, emails, etc.).
Repo: https://github.com/kreuzberg-dev/kreuzberg
Your feedback, thoughts, and contributions are very welcome. Have a great start to 2026!
https://redd.it/1q2ojco
@r_php
GitHub
GitHub - kreuzberg-dev/kreuzberg: A polyglot document intelligence framework with a Rust core. Extract text, metadata, and structured…
A polyglot document intelligence framework with a Rust core. Extract text, metadata, and structured information from PDFs, Office documents, images, and 50+ formats. Available for Rust, Python, Rub...
Capture Impersonated User Details and Add Custom Context - AuditTrailBundle
Enhances audit logging by capturing impersonated user information and attaching additional custom context to each log entry. This ensures better traceability, clearer accountability, and improved debugging for actions performed under user impersonation.
https://preview.redd.it/t3nyypd8n5bg1.png?width=881&format=png&auto=webp&s=42bafa8adeb0fc3dd920a94142cb2f007bfd448c
https://redd.it/1q2xstk
@r_php
Enhances audit logging by capturing impersonated user information and attaching additional custom context to each log entry. This ensures better traceability, clearer accountability, and improved debugging for actions performed under user impersonation.
https://preview.redd.it/t3nyypd8n5bg1.png?width=881&format=png&auto=webp&s=42bafa8adeb0fc3dd920a94142cb2f007bfd448c
https://redd.it/1q2xstk
@r_php
GitHub
GitHub - rcsofttech85/AuditTrailBundle: A lightweight, high-performance Symfony bundle that automatically tracks and stores Doctrine…
A lightweight, high-performance Symfony bundle that automatically tracks and stores Doctrine ORM entity changes for audit logging and compliance. - rcsofttech85/AuditTrailBundle
Sunsetting Enlightn
2 months ago, u/ShadowSpade wondered what happened to Enlightn, this week I received this email:
>Sunsetting Enlightn
>After much thought and consideration, we are sunsetting Enlightn. It will be shutting down starting Jan 2026. With rapid advances in AI powered code assistants, it has become clear that they now cover most of the use cases Enlightn was built for.
>Recently purchased licenses have been fully refunded. Feel free to email us at sales at laravel-enlightn dot com for any questions or refund requests if we missed on refunding your recently purchased license. The open source package on Github will stay available for anyone who finds it useful. Thank you for the support and for trusting Enlightn to help improve your apps over the years!
https://redd.it/1q1tal9
@r_php
2 months ago, u/ShadowSpade wondered what happened to Enlightn, this week I received this email:
>Sunsetting Enlightn
>After much thought and consideration, we are sunsetting Enlightn. It will be shutting down starting Jan 2026. With rapid advances in AI powered code assistants, it has become clear that they now cover most of the use cases Enlightn was built for.
>Recently purchased licenses have been fully refunded. Feel free to email us at sales at laravel-enlightn dot com for any questions or refund requests if we missed on refunding your recently purchased license. The open source package on Github will stay available for anyone who finds it useful. Thank you for the support and for trusting Enlightn to help improve your apps over the years!
https://redd.it/1q1tal9
@r_php
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
Env-Interop Now Open For Public Review
https://pmjones.io/post/2026/01/03/env-interop-now-open-for-public-review/
https://redd.it/1q2zmk1
@r_php
https://pmjones.io/post/2026/01/03/env-interop-now-open-for-public-review/
https://redd.it/1q2zmk1
@r_php
Conditional Audit Logging
Created a Symfony AuditTrailBundle that supports declarative audit conditions. Use expressions like
https://preview.redd.it/f6wuj10ycyag1.png?width=871&format=png&auto=webp&s=af315f2d5dee8ffc15f55eb78f05945438c1d645
https://redd.it/1q215l5
@r_php
Created a Symfony AuditTrailBundle that supports declarative audit conditions. Use expressions like
#[AuditCondition("action == 'update' and object.getPrice() > 100")] to control exactly when entities are audited. No more logging everything and filtering later.https://preview.redd.it/f6wuj10ycyag1.png?width=871&format=png&auto=webp&s=af315f2d5dee8ffc15f55eb78f05945438c1d645
https://redd.it/1q215l5
@r_php
GitHub
GitHub - rcsofttech85/AuditTrailBundle: A lightweight, high-performance Symfony bundle that automatically tracks and stores Doctrine…
A lightweight, high-performance Symfony bundle that automatically tracks and stores Doctrine ORM entity changes for audit logging and compliance. - rcsofttech85/AuditTrailBundle
Musings and realizations from 2025 as a Laravel developer
https://cosmastech.com/2026/01/01/musings.html
https://redd.it/1q17w2j
@r_php
https://cosmastech.com/2026/01/01/musings.html
https://redd.it/1q17w2j
@r_php
cosmastech
Musings on 2025
As 2025 wraps up, I wanted to touch on some broader topics that I thought deeply about this year.
Laravel Gems: Advanced Patterns & Architecture Beyond Controllers
I’ve been building Laravel applications for 10+ years and still genuinely love the framework, its documentation, and the community.
I’d like to start a thread compiling “gems” — talks, videos, or resources that highlight useful patterns, architectural ideas, and techniques that go beyond the usual controller / model / service approach.
Here are some of my favourite videos to kick things off. I’d love to see what resources have influenced the way you structure Laravel apps 👇
Manager pattern: [https://www.youtube.com/watch?v=jCJ\_dxAlHdo&list=PLSfH3ojgWsQopTurfF8lKNAgwtb1XzSMg&index=11](https://www.youtube.com/watch?v=jCJ_dxAlHdo&list=PLSfH3ojgWsQopTurfF8lKNAgwtb1XzSMg&index=11)
Pipeline pattern: https://www.youtube.com/watch?v=2REc-Wlvl9M
State machines: [https://www.youtube.com/watch?v=1A1xFtlDyzU&t](https://www.youtube.com/watch?v=1A1xFtlDyzU&t)
Value objects: https://www.youtube.com/watch?v=0jRTq0Hy\_50
Macros: [https://www.youtube.com/watch?v=G78sN4\_KEdU](https://www.youtube.com/watch?v=G78sN4_KEdU)
Service container + DI: https://www.youtube.com/watch?v=y7EbrV4ChJs
https://redd.it/1q35mne
@r_php
I’ve been building Laravel applications for 10+ years and still genuinely love the framework, its documentation, and the community.
I’d like to start a thread compiling “gems” — talks, videos, or resources that highlight useful patterns, architectural ideas, and techniques that go beyond the usual controller / model / service approach.
Here are some of my favourite videos to kick things off. I’d love to see what resources have influenced the way you structure Laravel apps 👇
Manager pattern: [https://www.youtube.com/watch?v=jCJ\_dxAlHdo&list=PLSfH3ojgWsQopTurfF8lKNAgwtb1XzSMg&index=11](https://www.youtube.com/watch?v=jCJ_dxAlHdo&list=PLSfH3ojgWsQopTurfF8lKNAgwtb1XzSMg&index=11)
Pipeline pattern: https://www.youtube.com/watch?v=2REc-Wlvl9M
State machines: [https://www.youtube.com/watch?v=1A1xFtlDyzU&t](https://www.youtube.com/watch?v=1A1xFtlDyzU&t)
Value objects: https://www.youtube.com/watch?v=0jRTq0Hy\_50
Macros: [https://www.youtube.com/watch?v=G78sN4\_KEdU](https://www.youtube.com/watch?v=G78sN4_KEdU)
Service container + DI: https://www.youtube.com/watch?v=y7EbrV4ChJs
https://redd.it/1q35mne
@r_php
Tiny PHP pretty-printer that formats arrays like PyTorch tensors
I’ve released a small helper for anyone working with PHP + data-heavy code (ML experiments, debugging, logs, educational projects, etc.).
PrettyPrint is a zero-dependency callable pretty-printer for PHP arrays with clean, Python-style formatting. It supports aligned 2D tables, PyTorch-like tensor views, summarization (head/tail rows & columns), and works both in CLI and web contexts.
Install:
composer require apphp/pretty-print
Examples:
Aligned 2D table:
pprint(1, 23, 456, 12, 3, 45);
// [ 1, 23, 456,
// 12, 3, 45]
PyTorch-style 2D output:
pprint($matrix);
// tensor(
// [ 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10,
// 11, 12, 13, 14, 15
// ])
Summaries for big matrices:
pprint($m, headRows: 2, tailRows: 1, headCols: 2, tailCols: 2);
3D tensors with ellipsis:
pprint($tensor3d, headB: 1, tailB: 1);
// tensor(
// [ 1, 2, ..., 4, 5,
// 6, 7, ..., 9, 10,
// ...,
// 21, 22, ..., 24, 25
// ])
Also supports labels, precision, start/end strings, and even acts as a callable object:
$pp = new PrettyPrint();
$pp('Hello', 42);
// Hello 42
You may find much more information in repo: *https://github.com/apphp/pretty-print*
If you often stare at messy
https://redd.it/1q2cu1w
@r_php
I’ve released a small helper for anyone working with PHP + data-heavy code (ML experiments, debugging, logs, educational projects, etc.).
PrettyPrint is a zero-dependency callable pretty-printer for PHP arrays with clean, Python-style formatting. It supports aligned 2D tables, PyTorch-like tensor views, summarization (head/tail rows & columns), and works both in CLI and web contexts.
Install:
composer require apphp/pretty-print
Examples:
Aligned 2D table:
pprint(1, 23, 456, 12, 3, 45);
// [ 1, 23, 456,
// 12, 3, 45]
PyTorch-style 2D output:
pprint($matrix);
// tensor(
// [ 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10,
// 11, 12, 13, 14, 15
// ])
Summaries for big matrices:
pprint($m, headRows: 2, tailRows: 1, headCols: 2, tailCols: 2);
3D tensors with ellipsis:
pprint($tensor3d, headB: 1, tailB: 1);
// tensor(
// [ 1, 2, ..., 4, 5,
// 6, 7, ..., 9, 10,
// ...,
// 21, 22, ..., 24, 25
// ])
Also supports labels, precision, start/end strings, and even acts as a callable object:
$pp = new PrettyPrint();
$pp('Hello', 42);
// Hello 42
You may find much more information in repo: *https://github.com/apphp/pretty-print*
If you often stare at messy
print_r() dumps to print arrays, this might make your day slightly better 😄https://redd.it/1q2cu1w
@r_php
GitHub
GitHub - apphp/pretty-print: PrettyPrint is a small, zero-dependency PHP utility that formats arrays in a clean, readable, PyTorch…
PrettyPrint is a small, zero-dependency PHP utility that formats arrays in a clean, readable, PyTorch-inspired style. It supports aligned 2D tables, 3D tensors, summarized tensor views, and flexibl...
PHP Array Shapes - potential RFC, looking for feedback
I used AI to draft an implementation of PHP array shapes. I used Claude to implement the idea in PHP's C source - I want to get it out there, full transparency.
Reason I'm posting here: I'd like to see if this is something people would even want in PHP or not. These are extension to PHP's type system enabling devs to use native PHP to relay what's inside an array.
Repository goes into details, so I'll just post the repo here: https://github.com/signalforger/php-array-shapes
There's a patch that enables compiling PHP with the support for array shapes for return types and function parameter types, for version 8.5.1
Looking for honest feedback, does this potential feature appear useful or not? I know this community doesn't pull any punches, let me know what you think :)
https://redd.it/1q1x840
@r_php
I used AI to draft an implementation of PHP array shapes. I used Claude to implement the idea in PHP's C source - I want to get it out there, full transparency.
Reason I'm posting here: I'd like to see if this is something people would even want in PHP or not. These are extension to PHP's type system enabling devs to use native PHP to relay what's inside an array.
Repository goes into details, so I'll just post the repo here: https://github.com/signalforger/php-array-shapes
There's a patch that enables compiling PHP with the support for array shapes for return types and function parameter types, for version 8.5.1
Looking for honest feedback, does this potential feature appear useful or not? I know this community doesn't pull any punches, let me know what you think :)
https://redd.it/1q1x840
@r_php
GitHub
GitHub - signalforger/php-array-shapes: PHP RFC: Array Shape Return Types (draft + implementation)
PHP RFC: Array Shape Return Types (draft + implementation) - signalforger/php-array-shapes