PHP Reddit – Telegram
PHP Reddit
34 subscribers
289 photos
37 videos
24.8K links
Channel to sync with /r/PHP /r/Laravel /r/Symfony. Powered by awesome @r_channels and @reddit2telegram
Download Telegram
Generating documentation for a PHP library (API reference + articles)

I want to generate documentation for my library (which I've recently updated). Is there anything better than phpDocumentor for this? I haven't touched PHP in a decade, so I'm not up to date with the current tooling.

I want simple things:

Parsing PHP 7.0−8.4. Having documentation for all major versions of the library would be nice.
Switching between library versions. A dropdown or something.
Support for PHPStan syntax. This thing comes up first when googling for PHPDoc syntax, so I assume it's the standard now.
Extra non-API-reference articles next to API ref. Introductory articles, something beginner-friendly, which is too long for ReadMe.
Combining docs of multiple packages. If there're any addons to the main package, it'd be convenient to have everything in one place.
Pure static website with pure HTML. So that it can be put on GitHub Pages and be googlable and all.
Search would be nice. Without any backend, naturally.
Sensible syntax for templates and styles. If something needs adjusting, it shouldn't be too painful.
Links to sources of the library, links to official PHP documentation when built-in classes and functions are mentioned etc.
Bonus points for default templates looking nice, having dark theme, doing fast reloads with JS, all that fancy stuff.

Does a thing like this exist? What are the best options for generating documentation for PHP stuff in general? What are you using and why?

https://redd.it/1o9xbjp
@r_php
Modern non-blocking driver for Nats

NATS is a modern, distributed, and reliable messaging platform. It supports pub-sub with at-most-once delivery guarantees, request-reply messaging, as well as persistent streams and durable queues powered by JetStream with at-least-once guarantees.

Our non-blocking driver implements all major capabilities of the platform:

pub/sub
request/reply
jetstream
key-value store
object store

And also includes recent updates:

Atomic counters based on CRDTs
Batch publishing
Message scheduling

We are also working on support for NATS Micro: using NATS as a transport layer for communication between microservices.

For more features, refer to the library's documentation. Feedback is welcome.

https://github.com/thesis-php/nats

https://redd.it/1oa0n6v
@r_php
🏗️ Forerunner: Define LLM JSON Schemas Using Laravel's Migration Syntax

Hey r/laravel! I've been working with AI a lot over the past year, dipping in between various Laravel packages. One thing I was constantly using was structured outputs, and I never found a way I liked to write them.

Writing them in plain JSON is horrible IMO, and although there are some great packages that offer nice abstractions, I still didn't fully enjoy using them or like the syntax. I wanted to create something familiar and easy to implement, understand, and maintain.

I had some local classes I'd been copying and pasting into various projects and thought I'd package it up. Essentially, you define a structured output using a Laravel migration-style syntax. You can either use the facade or create a struct class.


What It Looks Like

Forerunner lets you define JSON schemas using familiar migration syntax:

https://preview.redd.it/0jw5ju4e1xvf1.png?width=3680&format=png&auto=webp&s=b6d72577a8d7c95ff17f0d715bd825d296f3a09a

https://preview.redd.it/7c5o4v4e1xvf1.png?width=3680&format=png&auto=webp&s=c439890ac16d0b35c91b37d48c8312bea93aab3f

https://preview.redd.it/4chuku4e1xvf1.png?width=3680&format=png&auto=webp&s=d69f87f0ec29de1d2881775495ee36fce80cebd6

# Key Features

Migration-like API: If you know Laravel migrations, you already know Forerunner
Helper methods: email(), url(), uuid(), datetime(), etc.
Artisan command: `php artisan make:struct UserProfile` generates structure classes
Nested objects & arrays: Define complex schemas with nested builders
Strict mode: One-liner for OpenAI's structured output requirements
Type-safe: Full IDE autocomplete support

# What's Next

The next feature I'm planning is validation - so you can validate an LLM response against an existing schema.


This is still in pre-release (0.x), so I don't expect it to be 100% perfect. If you're interested, give it a try!

GitHub: https://github.com/Blaspsoft/forerunner

Would love to hear your thoughts and feedback!

https://redd.it/1oa3rv4
@r_php
Industry: a package for integrating factories with AI for text generation
https://redd.it/1oaco3y
@r_php
Pitch Your Project 🐘

In this monthly thread you can share whatever code or projects you're working on, ask for reviews, get people's input and general thoughts, … anything goes as long as it's PHP related.

Let's make this a place where people are encouraged to share their work, and where we can learn from each other 😁

Link to the previous edition: /u/brendt_gd should provide a link

https://redd.it/1oajz8b
@r_php
Symfony UI Framwork for Javanoscript noob?

I have some intermediate know how with PHP and Synfony. I have no javanoscript experience. Handling the Symfony stuff (Controllers, Config, Docker, API Plattform, Doctrine ORM etc.) i get the hang of. But once Javanoscript is involved, it get's confusing. :-) I support in a project that uses VUE, and every time i know i have to touch or debug this, it's not my thing.

I am starting now with a small business app that needs a UI. Nothing fancy, only 5 guys from the customer itself use it, so it doesn't need to win a design award.

What would you recommand to learn in this case? VUE? UX Turbo? Something else? Do i have to bite the bullet and dive into javanoscript, or is there something else i should look at? It must not be reactive, it must not be super performance. I just need some UI elements which must work, but design and performance ist not an issue.

Any ideas?

https://redd.it/1oashhy
@r_php
Weekly /r/Laravel Help Thread

Ask your Laravel help questions here. To improve your chances of getting an answer from the community, here are some tips:

What steps have you taken so far?
What have you tried from the documentation?
Did you provide any error messages you are getting?
Are you able to provide instructions to replicate the issue?
Did you provide a code example?
Please don't post a screenshot of your code. Use the code block in the Reddit text editor and ensure it's formatted correctly.

For more immediate support, you can ask in the official Laravel Discord.

Thanks and welcome to the r/Laravel community!

https://redd.it/1oauufu
@r_php
Ephemeral User Package

Of course while working on something else, I got sidetracked with a "why doesn't this exist already?" moment. Bottom line, I find myself sometimes reaching for a `new User()` to pass around a model without needing to persist it right away (or ever!). This felt a little more like the Laravel way of doing things, and was a relatively small lift considering.

https://github.com/kylearch/ephemeral-users

https://redd.it/1ob9nk8
@r_php
Why is using DTOs such a pain?

I’ve been trying to add proper DTOs into a Laravel project, but it feels unnecessarily complicated. Looked at Spatie’s Data package, great idea, but way too heavy for simple use cases. Lots of boilerplate and magic that I don’t really need.

There's nested DTOs, some libraries handle
validation, and its like they try to do more stuff than necessary. Associative arrays seem like I'm gonna break something at some point.

Anyone here using a lightweight approach for DTOs in Laravel? Do you just roll your own PHP classes, use value objects, or rely on something simpler than Spatie’s package?

https://redd.it/1oe6gda
@r_php
My production architecture for Laravel build with Docker compose, Traefik and FrankenPhp

Hi, everyone, for my little product, coz.jp I completed an architecture that I'm proud of. Using the tech mentioned in the noscript I managed to prepare a stable, fast and easy to maintain infrastructure.
Here the full article with the files templates too. if you have any questions or more importantly suggesitons feel free to ask me here or on the linked article: https://coz.jp/TGzzQa

https://redd.it/1oe2q1b
@r_php
What is the difference between a bus and a transport

In my project I have these settings:

framework:
messenger:
transports:
async: '%env(MESSENGER_TRANSPORT_DSN)%'
failed: 'doctrine://default?table_name=failed_messages'
sql_channel_manager_dlq:
dsn: '%env(SQS_CHANNEL_MANAGER_TRANSPORT_DLQ_DSN)%'
options:
access_key: '%env(AWS_ACCESS_KEY_ID)%'
secret_key: '%env(AWS_SECRET_ACCESS_KEY)%'
region: '%env(AWS_REGION)%'
queue_name: '%env(CHANNEL_MANAGER_QUEUE_NAME_DLQ)%'
sqs_channel_manager:
failure_transport: sql_channel_manager_dlq
dsn: '%env(SQS_CHANNEL_MANAGER_TRANSPORT_DSN)%'
serializer: App\Infrastructure\Messenger\ChannelManagerSerializer
options:
access_key: '%env(AWS_ACCESS_KEY_ID)%'
secret_key: '%env(AWS_SECRET_ACCESS_KEY)%'
region: '%env(AWS_REGION)%'
queue_name: '%env(CHANNEL_MANAGER_QUEUE_NAME)%'
failure_transport: failed
default_bus: command.bus
buses:
event.bus: ~
command.bus:
middleware:
- 'App\Infrastructure\Middleware\RequestIdMiddleware'
routing:
App\Message\TestQueue: async
App\Domain\Event\ChannelManager\ChannelManagerEventHasReceived: sqs_channel_manager


As you can see I have the follwoing transports:

async
failed
sql_channel_manager_dlq
sqschannelmanager

And the following buses:

event.bus
command.bus

But I have trouble inderstanding the difference between buses and transports.

My google-fu leads me only to generic info regarding on how to setup the queue listener: https://symfony.com/doc/current/messenger.html

But I fail to comperhend the difference between bus and transport. What is the difference between these 2?

So far I understood that a bus is some sort of road that transport uses it to handle a message, if it is true in my example how I can define that all messages passed through sqs_channel_manager would be handled upon event.bus?

https://redd.it/1oe3ocx
@r_php
Introducing Nimbus: An integrated, in-browser API client for Laravel with a touch of magic
https://redd.it/1odpprx
@r_php
NativePHP Mobile: What's your dev workflow? Do you rebuild every time?

I'm working with NativePHP for mobile and I'm struggling to figure out an efficient development workflow.

I did my first build and deployed it to my phone, but rebuilding the entire app every time I want to see changes is painfully slow. I've searched online but couldn't find any documentation or discussions about mobile development workflows with NativePHP.

Do you rebuild the full app for every change, or is there a way to get live/hot reload working?

https://redd.it/1oejwmv
@r_php