How to fix "undefined index" globally in PHP8.x?
Hello,
I have to migrate some websites that were created under PHP 5.x to PHP 8.x
Most of the time, the frontend works right away or only needs minor changes.
The administration is driving me nuts though.
First off, it was custom made 10+ years ago and not the very elegant of code to begin with. But it works fine up to PHP 7.x
With PHP8 I get tons of "undefined index" errors. This happens, because of checking variables that do not exist (are not set) yet. It never was a problem before, but PHP8 is very strict about it.
For instance:
immediately throws an error if neither Session nor Get are set.
Please don't get mad about this very code, I know it's not good, it's just to demonstrate.
The problem is, that there are a lot of variables that CAN be set but don't have to be, depending on the actual area.
It is not feasible to start by setting each and every variable at the top, there are way to many and some of them are dynamically set too.
It is also not feasible to insert if isset() into every statement.
Sure, I can supress errors, but I'd rather fix this for good.
Is there a way to tell PHP8 to assume those variables are set but empty until I actually give them a value?
https://redd.it/1jhtm98
@r_php
Hello,
I have to migrate some websites that were created under PHP 5.x to PHP 8.x
Most of the time, the frontend works right away or only needs minor changes.
The administration is driving me nuts though.
First off, it was custom made 10+ years ago and not the very elegant of code to begin with. But it works fine up to PHP 7.x
With PHP8 I get tons of "undefined index" errors. This happens, because of checking variables that do not exist (are not set) yet. It never was a problem before, but PHP8 is very strict about it.
For instance:
if($_SESSION['order'] == "" AND $_GET['order'] == "") { $_SESSION['order'] = $default_order; }immediately throws an error if neither Session nor Get are set.
Please don't get mad about this very code, I know it's not good, it's just to demonstrate.
The problem is, that there are a lot of variables that CAN be set but don't have to be, depending on the actual area.
It is not feasible to start by setting each and every variable at the top, there are way to many and some of them are dynamically set too.
It is also not feasible to insert if isset() into every statement.
Sure, I can supress errors, but I'd rather fix this for good.
Is there a way to tell PHP8 to assume those variables are set but empty until I actually give them a value?
https://redd.it/1jhtm98
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
A Week of Symfony #951 (March 17–23, 2025)
https://symfony.com/blog/a-week-of-symfony-951-march-17-23-2025?utm_source=Symfony%20Blog%20Feed&utm_medium=feed
https://redd.it/1jhvvwi
@r_php
https://symfony.com/blog/a-week-of-symfony-951-march-17-23-2025?utm_source=Symfony%20Blog%20Feed&utm_medium=feed
https://redd.it/1jhvvwi
@r_php
Symfony
A Week of Symfony #951 (March 17–23, 2025) (Symfony Blog)
This week, the upcoming Symfony 7.3 version updated its default configuration to exclude container extensions, entities and messenger messages when registering services, and made some changes related …
Issue 55 of "A Day With Laravel" : SVG and security, Eloquent Filter, What's new in Laravel 12.2, Laravel's New JobQueueing Event and Package Laravel Feature Flag are discussed
https://preview.redd.it/4q5caexiofqe1.jpg?width=1280&format=pjpg&auto=webp&s=a244f680c461261ca7e5652685e07b271aadc372
Hello Laravel friends 👋
Today in "**A Day With Laravel**", I present the following topics :
* Security Tip: Excluding SVGs from Image Validation! *by Stephen Rees-Carter*
* Eloquent Filter package *by Mehdi Fathi*
* What's new in Laravel 12.2 *by Christoph Rumpel*
* Enhance Your Queue System with Laravel's New JobQueueing Event *by Harris Raftopoulos*
* Package Laravel Feature Flag *by Peter Fox*
I really hope this free content brings value to you.
Let me know in comment what do you think about it.
[https://go.itanea.fr/adwl55](https://go.itanea.fr/adwl55)
See you on the next issue.
https://redd.it/1jhys0i
@r_php
https://preview.redd.it/4q5caexiofqe1.jpg?width=1280&format=pjpg&auto=webp&s=a244f680c461261ca7e5652685e07b271aadc372
Hello Laravel friends 👋
Today in "**A Day With Laravel**", I present the following topics :
* Security Tip: Excluding SVGs from Image Validation! *by Stephen Rees-Carter*
* Eloquent Filter package *by Mehdi Fathi*
* What's new in Laravel 12.2 *by Christoph Rumpel*
* Enhance Your Queue System with Laravel's New JobQueueing Event *by Harris Raftopoulos*
* Package Laravel Feature Flag *by Peter Fox*
I really hope this free content brings value to you.
Let me know in comment what do you think about it.
[https://go.itanea.fr/adwl55](https://go.itanea.fr/adwl55)
See you on the next issue.
https://redd.it/1jhys0i
@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/1ji3xy4
@r_php
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/1ji3xy4
@r_php
Laravel
Installation - Laravel 12.x - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.
pdf-to-zpl: A library that encodes PDFs and Images into a printable format (image manipulation with PHP)
This may seem like a niche issue but anyone that has worked will Zebra printers will have come across it. Even if you've never ran into this issue, check out the code so you can see how to work with images and PDFs using GD and Imagick. Any suggestions / improvements are welcome!
https://github.com/benfaerber/pdf-to-zpl
Here's how the algorithm works:
1. Loads the PDF and render each page as image using Imagick
2. Scale the image to match the DPI and aspect ratio of the label
3. Convert each page into a grayscaled bitmap
4. Run line encode the bitmap and marshall it into a ZPL binary representation
#
https://redd.it/1jidac0
@r_php
This may seem like a niche issue but anyone that has worked will Zebra printers will have come across it. Even if you've never ran into this issue, check out the code so you can see how to work with images and PDFs using GD and Imagick. Any suggestions / improvements are welcome!
https://github.com/benfaerber/pdf-to-zpl
Here's how the algorithm works:
1. Loads the PDF and render each page as image using Imagick
2. Scale the image to match the DPI and aspect ratio of the label
3. Convert each page into a grayscaled bitmap
4. Run line encode the bitmap and marshall it into a ZPL binary representation
#
https://redd.it/1jidac0
@r_php
GitHub
GitHub - benfaerber/pdf-to-zpl: Convert PDF files and images into ZPL for Zebra Label Generation with PHP
Convert PDF files and images into ZPL for Zebra Label Generation with PHP - benfaerber/pdf-to-zpl
Symfony vs Laravel: Contributions to the PHP Ecosystem (Visualized with Neo4j)
https://redd.it/1jied2m
@r_php
https://redd.it/1jied2m
@r_php
Using PHP as a (Terrible) Video Player
https://phpmemo.com/using-php-as-a-terrible-video-player.html
https://redd.it/1jilrcb
@r_php
https://phpmemo.com/using-php-as-a-terrible-video-player.html
https://redd.it/1jilrcb
@r_php
PHPMemo
Using PHP as a (Terrible) Video Player
While browsing a forum, I noticed an ASCII art image, which made me wonder how such images are created. It turns out that the process…
A non empty secret is required- easyadmin+symfony7.2
Hi,
I was trying my project on separate machine and this error came out. It doesnt happen in other machine.
What can go wrong?
Best regards,
https://redd.it/1jimcdz
@r_php
Hi,
I was trying my project on separate machine and this error came out. It doesnt happen in other machine.
What can go wrong?
Best regards,
https://redd.it/1jimcdz
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
Laravel 12 Multi Language Website with Starter Kit
https://youtu.be/l5cVfwcoEEM?si=USxUQkZh4fd-9rP2
https://redd.it/1jip31g
@r_php
https://youtu.be/l5cVfwcoEEM?si=USxUQkZh4fd-9rP2
https://redd.it/1jip31g
@r_php
YouTube
Laravel 12 Multi Language Website with Starter Kit
In this video, I will show you how to create dynamic multi-language website using laravel localization.
#laravel #laravel12 #language #multi #itsolutionstuff
#laravel #laravel12 #language #multi #itsolutionstuff
Weekly Ask Anything Thread
Feel free to ask any questions you think may not warrant a post. Asking for help here is also fine.
https://redd.it/1jihf4b
@r_php
Feel free to ask any questions you think may not warrant a post. Asking for help here is also fine.
https://redd.it/1jihf4b
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
Ecotone Framework - New website and Enterprise version
Hey,
Some of you may already know me, I am author of Ecotone Framework and I am posting PHP related articles about Message-Driven Systems, DDD and Architecture in general.
And today I would like to share two big changes to Ecotone Framework, that I've been working on for over year.
I know that due to volume of features, Ecotone's documentation may require time to fully go over different functionalities and reasoning behind them.
And of course not everyone have time to do so, or simply one could feel that all the tools Ecotone provides he already use therefore there is no point in testing it out.
Therefore to make it clear what Ecotone is about, what it provides, without requiring bigger time investment, Ecotone comes now with new website at: https://ecotone.tech
The aim of new website is to provide as much as possible details to get general feeling, without the need to install or run the framework itself.
New website provides denoscription of features, detailed code examples, and steps on how to get started.
I hope this will be helpful in giving more details on Ecotone in quick and easy way, and will help to make the decision whatever it can help your project.
The other big thing which Ecotone brings to the table, is Enterprise version.
Ecotone Enterprise includes more custom advanced features, additional integrations, and ability to optimizatize the system usage.
The aim of Enterprise is to get more support for Ecotone, in order to build even more tooling around it.
To get more details about some of the core Enterprise features, you take a look on today's article: https://blog.ecotone.tech/ecotone-enterprise-kafka-distributed-bus-dynamic-channels-and-more-2
thank you,
cheers :)
https://redd.it/1jikore
@r_php
Hey,
Some of you may already know me, I am author of Ecotone Framework and I am posting PHP related articles about Message-Driven Systems, DDD and Architecture in general.
And today I would like to share two big changes to Ecotone Framework, that I've been working on for over year.
I know that due to volume of features, Ecotone's documentation may require time to fully go over different functionalities and reasoning behind them.
And of course not everyone have time to do so, or simply one could feel that all the tools Ecotone provides he already use therefore there is no point in testing it out.
Therefore to make it clear what Ecotone is about, what it provides, without requiring bigger time investment, Ecotone comes now with new website at: https://ecotone.tech
The aim of new website is to provide as much as possible details to get general feeling, without the need to install or run the framework itself.
New website provides denoscription of features, detailed code examples, and steps on how to get started.
I hope this will be helpful in giving more details on Ecotone in quick and easy way, and will help to make the decision whatever it can help your project.
The other big thing which Ecotone brings to the table, is Enterprise version.
Ecotone Enterprise includes more custom advanced features, additional integrations, and ability to optimizatize the system usage.
The aim of Enterprise is to get more support for Ecotone, in order to build even more tooling around it.
To get more details about some of the core Enterprise features, you take a look on today's article: https://blog.ecotone.tech/ecotone-enterprise-kafka-distributed-bus-dynamic-channels-and-more-2
thank you,
cheers :)
https://redd.it/1jikore
@r_php
Ecotone Framework - Resilient and scalable PHP Systems
Ecotone Enterprise: Kafka, Distributed Bus, Dynamic Channels and more…
Ecotone provides now Enterprise set of features to enhance PHP applications with Kafka, Cross-Service communication, and Dynamic Channels.
Filament Json Column - Releasing v1.6.1
Hey everyone!
If you've used FilamentPHP, you might have heard about Filament Json Column, as the plugin is now getting closer to a 100K downloads.
I've made a new release, with a whole rewritten code base for better maintainability (Ok, it's not that big but still). I've added the following features:
Validation: If the JSON is invalid, the user can't switch tabs or submit. An error message is displayed on submission. Error message can be customized and supports \`\_\_()\`
Editor mode customization (code, text, tree, etc...)
Please see the updated docs on the link above. Planning to add an Infolist component, and some Alpine automated testing. If you have suggestions, or want to contribute, please don't hesitate to send me a message here or a pull request on GitHub.
Have a great day!
https://redd.it/1jistnh
@r_php
Hey everyone!
If you've used FilamentPHP, you might have heard about Filament Json Column, as the plugin is now getting closer to a 100K downloads.
I've made a new release, with a whole rewritten code base for better maintainability (Ok, it's not that big but still). I've added the following features:
Validation: If the JSON is invalid, the user can't switch tabs or submit. An error message is displayed on submission. Error message can be customized and supports \`\_\_()\`
Editor mode customization (code, text, tree, etc...)
Please see the updated docs on the link above. Planning to add an Infolist component, and some Alpine automated testing. If you have suggestions, or want to contribute, please don't hesitate to send me a message here or a pull request on GitHub.
Have a great day!
https://redd.it/1jistnh
@r_php
GitHub
valentin-morice - Overview
valentin-morice has 3 repositories available. Follow their code on GitHub.
Is it possible to embed a CRUD within another CRUD using EasyAdmin?
I am working on a Symfony 7 project that uses EasyAdmin 4 for the back-office. I have a Formation entity that can have multiple Prices.
In the creation and editing views of Formation, I would like to add a "Prices" tab containing an index and a CRUD EasyAdmin to manage (create and modify) the prices associated with the formation. How can I achieve this?
I have looked for tutorials but haven't found anything similar. I also tried to figure it out on my own, but it didn't lead to any conclusive results.
here is an example of what i'm trying to do
https://redd.it/1jiszoz
@r_php
I am working on a Symfony 7 project that uses EasyAdmin 4 for the back-office. I have a Formation entity that can have multiple Prices.
In the creation and editing views of Formation, I would like to add a "Prices" tab containing an index and a CRUD EasyAdmin to manage (create and modify) the prices associated with the formation. How can I achieve this?
I have looked for tutorials but haven't found anything similar. I also tried to figure it out on my own, but it didn't lead to any conclusive results.
here is an example of what i'm trying to do
https://redd.it/1jiszoz
@r_php
New Core Team Member, Symfony CLI
https://symfony.com/blog/new-core-team-member-symfony-cli?utm_source=Symfony%20Blog%20Feed&utm_medium=feed
https://redd.it/1jiu5vn
@r_php
https://symfony.com/blog/new-core-team-member-symfony-cli?utm_source=Symfony%20Blog%20Feed&utm_medium=feed
https://redd.it/1jiu5vn
@r_php
Symfony
New Core Team Member, Symfony CLI (Symfony Blog)
Tugdual Saunier joins the Symfony core team thanks to his great work on Symfony CLI.
is there in-memory search engine for PHP?
Does php have an in-memory search library?
like https://duckdb.org? or lucene?
I'm aware of elasticsearch and solr and redis search, but was hoping for something simpler.
https://redd.it/1jitw6s
@r_php
Does php have an in-memory search library?
like https://duckdb.org? or lucene?
I'm aware of elasticsearch and solr and redis search, but was hoping for something simpler.
https://redd.it/1jitw6s
@r_php
DuckDB
An in-process SQL OLAP database management system
DuckDB is an in-process SQL OLAP database management system. Simple, feature-rich, fast & open source.
Contract Testing on Examples
https://sarvendev.com/posts/contract-testing-on-examples/
https://redd.it/1jizail
@r_php
https://sarvendev.com/posts/contract-testing-on-examples/
https://redd.it/1jizail
@r_php
Kamil Ruczyński
Contract Testing on Examples
Many companies use a microservices architecture. It has many advantages, but it also has some disadvantages. One of them is that the whole system becomes more complex, and end-to-end (E2E) testing may not be a scalable approach. In the case of a few services…
Develop Faster With FrankenPHP (SymfonyLive talk)
https://dunglas.dev/2025/03/develop-faster-with-frankenphp/
https://redd.it/1jly3nb
@r_php
https://dunglas.dev/2025/03/develop-faster-with-frankenphp/
https://redd.it/1jly3nb
@r_php
Kévin Dunglas - Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, FrankenPHP, Mercure.rocks, Vulcain.rocks and of some Symfony components.
Develop Faster With FrankenPHP - Kévin Dunglas
One of Symfony's strengths is its caching mechanism (the files stored in "var/cache"), which enables framework components such as the dependency injection container and the router, as well as numerous bundles, to be ultra-fast in production. However, during…
5 Tips to Save Money on Laravel Cloud
https://www.youtube.com/watch?v=jM7VZRXgYXE
https://redd.it/1jm027q
@r_php
https://www.youtube.com/watch?v=jM7VZRXgYXE
https://redd.it/1jm027q
@r_php
YouTube
5 Tips to Save Money on Laravel Cloud
Let's dive into effective strategies to reduce your costs on Laravel Cloud
00:00 Intro
00:43 Pricing Docs
02:19 Tip 1: Hibernation
04:04 Tip 2: Avoid Overprovisioning
07:35 Tip 3: Databases
09:52 Tip 4: Shared Resources
12:22 Tip 5: Cache
15:36 See ya
00:00 Intro
00:43 Pricing Docs
02:19 Tip 1: Hibernation
04:04 Tip 2: Avoid Overprovisioning
07:35 Tip 3: Databases
09:52 Tip 4: Shared Resources
12:22 Tip 5: Cache
15:36 See ya
Symfony API docs
I've noticed that there is an API documentation for laravel https://api.laravel.com/docs/12.x/index.html
does symfony have the same documentation? it seems really helpful.
https://redd.it/1jlq9pl
@r_php
I've noticed that there is an API documentation for laravel https://api.laravel.com/docs/12.x/index.html
does symfony have the same documentation? it seems really helpful.
https://redd.it/1jlq9pl
@r_php
Good exception patterns to follow?
I recently saw that a colleague had defined a method in his new exception class called asHttpResponse() that sends back an instance of Psr\\Http\\Message\\ResponseInterface.
That got me thinking: Are there other patterns related to exceptions that are simple, easy to follow and helpful? I know woefully little about this topic.
Full disclosure: If I really like what you have to say, I'm likely to steal it for a lightning talk :-)
https://redd.it/1jlpdtu
@r_php
I recently saw that a colleague had defined a method in his new exception class called asHttpResponse() that sends back an instance of Psr\\Http\\Message\\ResponseInterface.
That got me thinking: Are there other patterns related to exceptions that are simple, easy to follow and helpful? I know woefully little about this topic.
Full disclosure: If I really like what you have to say, I'm likely to steal it for a lightning talk :-)
https://redd.it/1jlpdtu
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community