PHP Reddit – Telegram
PHP Reddit
34 subscribers
291 photos
37 videos
24.9K links
Channel to sync with /r/PHP /r/Laravel /r/Symfony. Powered by awesome @r_channels and @reddit2telegram
Download Telegram
First release of the Searchcraft API PHP client is now available

# Greetings developers!

We are excited to announce the first release of our PHP API client!


If you are unfamiliar with Searchcraft we have been building our core API since 2021 but we just went into beta back in February of 2025. We are working on building a information discovery platform that is easier for devs to use than what is currently out there with faster performance. Our focus is on enabling developers to integrate search quickly and easily into their apps without having to be experts in the search niche.

Integrating Searchcraft endpoints into your PHP application has just gotten a whole lot easier. To install it, just use Composer.

composer require searchcraft/searchcraft-php

You will also need to install a PSR-18 compatible HTTP client, we recommend Guzzle if you don't already have one in mind

composer require guzzlehttp/guzzle http-interop/http-factory-guzzle:^1.0

This brings the full breath of the Searchcraft API directly into your application without need to manually construct your REST calls and worry about duplication of request configuration. Why build your own API wrapper when you can ship faster with our dedicated client?

The client is fully PSR standards compliant with type-safe operations over the API endpoints. There is rock-solid exception handling and you are not having to write a bunch of cURL boilerplate.

The package is Apache 2 licensed and the source is available at https://github.com/searchcraft-inc/searchcraft-client-php

If you have q's I'm happy to answer them here or in our community Discord.

https://redd.it/1l2wutx
@r_php
Ad-hoc queries in DQL (doctrine query language)

I use DQL in code, but I noticed that for anything slightly complex, e.g. with joins I'm much more familiar with SQL than I am with DQL. Sometimes I have to run the function to convert the DQL to SQL and dump to check the query generated is what I want.

I realised one reason I'm more familiar with SQL is that I'm doing ad-hoc queries all the time to look at data in our staging and production database using SQL. So I thought it might be very handy to have a way to do those ad-hoc queries with DQL instead.

Does anyone know if there's a tool that supports ad-hoc querying with DQL? Or if it might make sense to add support to that as a feature in phpMyAdmin or anything similar. Maybe also in PHPStorm but that seems a lot harder since it isn't written in PHP.

https://redd.it/1l33llw
@r_php
PatchPub - Patch any PHP Composer dependency anyway you need

I've build a composer-patches alternative, with with I can change any file in any dependency used by Composer, and manage patches for multiple projects, all in one place.

URL: [https://patchpub.com](https://patchpub.com)

**My biggest pain points** with the existing composer-patches packages are:

* They work only after a dependency is downloaded/extracted. So no way to change composer.json, for example to adapt the supported PHP version, or another package version, because it's fixed.
* They only support diff patches. I have to update patches anytime the diff doesn't work anymore. Sometimes I just need a simple search&replace, or replace a whole file.
* Sometimes a patch error gets lost in the whole stream of composer messages, when running "composer update". So I don't realize until later that a patch didn't apply.
* Managing same/similar patches across multiple projects and php versions and package versions is a big pain...
* I don't like to fork GitHub Repositories and patch there, and wait until the package core maintainer finally merges my PR (or not), and maintain my fork the whole time (or longer).

So I build my own solution, PatchPub, and already integrated it in production projects.



**With PatchPub you can:**

* Patch any file, anyway to you want (search&replace of strings, or using regex; replace file content; apply patch, import GitHub Pull Request)
* Manage patches and projects all in one place, which is really helpful with many projects.
* Get error notifications if a patch cannot be applied anymore, right after a new version of a package is released.
* Many more...



**Feedback welcome on:**

* Are there other game changer features you need to switch from other composer-patches plugins?
* Would you test or use PatchPub at all?

Thx in advance for any feedback... Please visit [patchpub.com](https://patchpub.com) and give it a try.

https://redd.it/1l33bn1
@r_php
How we built a clean and versatile badge notification system in Sharp
https://redd.it/1l35uyc
@r_php
should i focus procedural php or continue learning until i finishes all the oop concepts?

I've been learning php through to programming with gio, i am on the namespace section and i am kinda struggling to understand the concept, but i do manage to understand it using copilot to explain the code functionality. i ask in discord about nullsafe in oop and someone said that i should directly build in order to learn and not to watch tutorials because you are not learning base on what he says. oop is large, should i focus learning all the concepts and follow what gio is coding in the video or should i abandon the tutorial and start building after learning the basics of php? right now, i still don't know about sql and building simple login website using php but i have sufficient knowledge about html and css. i am kinda lost. any advice is appreciated, thank you.

https://redd.it/1l3asc5
@r_php
I just finished migrating VitoDeploy to Ineriajs 🥹
https://redd.it/1l3f87r
@r_php
How do I choose between Livewire and Vue.js for my project? Your criteria and feedback

Hi everyone,

I am currently working on a project for an application that is intended to serve the customers of a in the context of requests for financing for the customer of a bank, and I hesitate between two technologies for the front-end part: fr in the cad Livewire and Vue.js. I'm trying to better understand which criteria I should take into account when making my choice.

To give you some context:

My project needs to handle real-time interactions, integrate with Laravel.

I'm used to Laravel and Livewire.

The technical constraints are limited hosting, no complex APIs, etc...

My main question: what criteria or aspects should I consider when choosing between Livewire and Vue.js in this case? For example, ease of learning, performance, scalability, integration with Laravel, or something else? If you've used either technology, I'd love to hear your feedback!

Thanks in advance for your advice!

https://redd.it/1l3h9ag
@r_php
Recommendations for Backend Hosting

I'm needing to provision a single mysql db, and to host some php code that will handle api calls from my front end - the API accepting 10-50 lines of text on an api transaction. Possibly 25 users simultaneously at any one time, but that may be a hopeful number even.

Between Railway and Linode (now called Akamai ), what might be the best option.
\- Looking for economy. The $5/mo plan on Railway, or the $12 plan on linode is what I'm looking at.
\- But, was wondering if anyone with experience in either hoster - if you found your useage all of a sudden is pushing the limits of the plan you choose, which hoster of the two makes it easy to just boost up to the next plan without having to re-deploy if that's possible.

Note: I was considering Linode because I heard they have built in protection against DDOS'ing, and have heard stories about big unexpected bills you can get.

https://redd.it/1l4hu0c
@r_php
Symfony Messenger in Node.js? Yes, it's possible!

The Symfony Messenger component is a powerful tool for building message-driven architectures, enabling seamless communication between services and transport layers. If you're a full-stack developer or work across multiple stacks, you might appreciate having similar patterns available in other ecosystems.

I wanted to share a library for NestJS that follows a similar philosophy to Symfony Messenger — and even draws inspiration from systems like NServiceBus in the .NET world. It brings structured, maintainable messaging to the Node.js ecosystem using decorators, handlers, middleware, and transport abstraction.

NPM package: https://www.npmjs.com/package/@nestjstools/messaging
Example repo: https://github.com/nestjstools/messaging-rabbitmq-example

If you're working in a polyglot setup or just curious about messaging in Node.js, give it a try and let me know what you think!

https://redd.it/1l4ufbe
@r_php
An easier way to document your Laravel endpoints using Swagger

Hi everyone!
Today I want to share a library I’ve been working on that makes documenting your Laravel API endpoints much easier.

During your E2E tests, this library captures the requests made to your endpoints and automatically generates the corresponding Swagger (OpenAPI) documentation.

For example, if you have a test like this:
function test_shouldCreateUser() {
$this
->perryHttp()
->withHeaders(['api_key' => 'some_api_key'])
->withBody([
'name' => 'John Doe',
'age' => 25,
'email' => 'john@doe.com',
'password' => 'password',
])
->post('/user')
->assertJson(['success' => true])
->assertStatus(Response::HTTP_CREATED);
}

The library will capture the request, response, headers, and other relevant details, then generate a Swagger-compatible YAML file documenting the endpoint automatically.

The generated file can be used with Swagger UI, Redoc, Postman, or any tool that supports OpenAPI specs.

## How to install

Install it via Composer:
composer require n4m-ward/laravel-perry


Then run the library using:
./vendor/bin/perry


You can check out the full documentation and source code on GitHub:
https://github.com/n4m-ward/perry

https://redd.it/1l5079q
@r_php
how to disable flush in test

Hi,

is it possible to disable flush only for the tests? so i can use the fixtures i have loaded and i can use zenstruck factory function to make a new entity, but when i test a post it persists the entity but just does not save it to the DB?

thank!

i use symfony 7.2 (doctrine and postgress)

and api platform 4.1

and phpunit for the tests

https://redd.it/1l53a4t
@r_php
Policy Attributes

Policies are a slightly obscure but critical part of Laravel security. They're the best solution to the common route-model-binding vulnerability where an attacker can just hit /post/123 even through they are only the author of /post/456. We've been working quietly on a proof concept to make CRUD resource controllers "locked by default" and to allow more explicating Model to Policy mapping using php attributes. https://github.com/icehouse-ventures/laravel-policy-attributes Taylor just merged a new Model-Policy mapping attribute called UsePolicy so it seemed a good time to get some feedback on upgrading the Controller side of things. Any feedback?

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