How to effectively block bots?
Good morning,
How to block the 200 accounts that automatically register on your site?
https://redd.it/1jgd7qa
@r_php
Good morning,
How to block the 200 accounts that automatically register on your site?
https://redd.it/1jgd7qa
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
new uptime monitor application written with laravel!
Hello to all,
I am working on an uptime monitoring and incident management application. written in php 8 (with laravel framework). Fully dockerized, easy installation.
https://apphealer.io
https://github.com/AppHealer
https://facebook.com/AppHealer
https://linkedin.com/company/AppHealer/
Please be kind and give me some support (sharing, followers on linkedin/facebook, github stars etc) or any kind of opinions / feature requests / pull requests. :)
have a nice day! :-)
https://redd.it/1jgeai7
@r_php
Hello to all,
I am working on an uptime monitoring and incident management application. written in php 8 (with laravel framework). Fully dockerized, easy installation.
https://apphealer.io
https://github.com/AppHealer
https://facebook.com/AppHealer
https://linkedin.com/company/AppHealer/
Please be kind and give me some support (sharing, followers on linkedin/facebook, github stars etc) or any kind of opinions / feature requests / pull requests. :)
have a nice day! :-)
https://redd.it/1jgeai7
@r_php
apphealer.io
AppHealer | open source uptime & availability monitoring application
Monitor availability and uptime of your websites and web applications
Doxswap Feedback 💬 What formats do you most often convert Markdown to and from?
I'm working on the v1 release of Doxswap — a Laravel package for document conversion. The pre-release got a great response. You can take a look at the current v1 progress ere https://github.com/Blaspsoft/doxswap/tree/doxswap-v1.0.0
Right now I’m focusing on adding Markdown conversions, and I’d love to understand how people actually use it in the wild:
What formats do you most often convert Markdown into or from?
e.g.
markdown --> html
html -> markdown
markdown -> pdf
markdown -> epub
Drop your thoughts below — I'm aiming to make Doxswap flexible, but I want to prioritize the real-world cases that matter most to devs.
Thanks in advance for your input!
https://redd.it/1jgf9ur
@r_php
I'm working on the v1 release of Doxswap — a Laravel package for document conversion. The pre-release got a great response. You can take a look at the current v1 progress ere https://github.com/Blaspsoft/doxswap/tree/doxswap-v1.0.0
Right now I’m focusing on adding Markdown conversions, and I’d love to understand how people actually use it in the wild:
What formats do you most often convert Markdown into or from?
e.g.
markdown --> html
html -> markdown
markdown -> pdf
markdown -> epub
Drop your thoughts below — I'm aiming to make Doxswap flexible, but I want to prioritize the real-world cases that matter most to devs.
Thanks in advance for your input!
https://redd.it/1jgf9ur
@r_php
GitHub
GitHub - Blaspsoft/doxswap at doxswap-v1.0.0
📄 🔄 Doxswap is a Laravel package for seamless document conversion using LibreOffice. Effortlessly convert DOCX, PDF, ODT, and more with a simple, elegant API. Supports Laravel storage, configurable...
Starter kit - unnecessary work being done in boiler plate.
In the the HandleInertiaRequests middleware, the boiler always finds a quote, and shares it with the page. Seems like unnecessary work being done on every page request to me :-/ Why not strip it out?
/
Define the props that are shared by default.
@see https://inertiajs.com/shared-data
@return array<string, mixed>
/
public function share(Request $request): array
{
$message, $author = str(Inspiring::quotes()->random())->explode('-');
return
...parent::share($request),
'name' => config('app.name'),
'quote' => ['message' => trim($message), 'author' => trim($author),
'auth' =>
'user' => $request->user(),
,
'ziggy' =>
...(new Ziggy)->toArray(),
'location' => $request->url(),
,
];
}
https://redd.it/1jgdqwu
@r_php
In the the HandleInertiaRequests middleware, the boiler always finds a quote, and shares it with the page. Seems like unnecessary work being done on every page request to me :-/ Why not strip it out?
/
Define the props that are shared by default.
@see https://inertiajs.com/shared-data
@return array<string, mixed>
/
public function share(Request $request): array
{
$message, $author = str(Inspiring::quotes()->random())->explode('-');
return
...parent::share($request),
'name' => config('app.name'),
'quote' => ['message' => trim($message), 'author' => trim($author),
'auth' =>
'user' => $request->user(),
,
'ziggy' =>
...(new Ziggy)->toArray(),
'location' => $request->url(),
,
];
}
https://redd.it/1jgdqwu
@r_php
Inertia.js Documentation
Shared Data - Inertia.js Documentation
Scramble 0.12.14 – Laravel API documentation generator update: enum cases documentation, support for array request bodies, improved type inference for classes properties, and `only` and `except` Laravel Data support.
https://scramble.dedoc.co/blog/scrambledrop-scramble-01214
https://redd.it/1jghqfg
@r_php
https://scramble.dedoc.co/blog/scrambledrop-scramble-01214
https://redd.it/1jghqfg
@r_php
scramble.dedoc.co
#scrambledrop: Scramble 0.12.14 - Scramble
OpenAPI (Swagger) documentation generator for Laravel. Without manual PHPDoc annotations.
IDE helper for PHPStan extension development
PHPStan is distributed via PHAR file, rather than pure PHP files. While this is perfectly adequate for *using* PHPStan, but it makes a pain to write its extension. Most IDEs and autocompletion tools cannot reference the code inside PHAR packages.
So I made it 😋
How to use?
composer require --dev headercat/phpstan-extension-ide-helper
How it works?
The steps below are automatically executed by GitHub Actions. It's not something you need to do.
1. Clone
2. Scan all PHP files from
3. Add
4. Write them to a new directory
5. Find composer dependencies that starts with
6. Add them to
7. Done!
GitHub repository:
https://github.com/headercat/phpstan-extension-ide-helper
https://redd.it/1jgjqlo
@r_php
PHPStan is distributed via PHAR file, rather than pure PHP files. While this is perfectly adequate for *using* PHPStan, but it makes a pain to write its extension. Most IDEs and autocompletion tools cannot reference the code inside PHAR packages.
So I made it 😋
How to use?
composer require --dev headercat/phpstan-extension-ide-helper
How it works?
The steps below are automatically executed by GitHub Actions. It's not something you need to do.
1. Clone
phpstan/phpstan-src repository to /phpstan.2. Scan all PHP files from
/phpstan.3. Add
return; after namespace declaration to all scanned files from step 2.4. Write them to a new directory
/main.5. Find composer dependencies that starts with
phpstan/ from /phpstan/composer.json.6. Add them to
/main/composer.json.7. Done!
GitHub repository:
https://github.com/headercat/phpstan-extension-ide-helper
https://redd.it/1jgjqlo
@r_php
GitHub
GitHub - headercat/phpstan-extension-ide-helper: PHPStan extension IDE helper, provides dummy PHPStan namespace classes and functions.
PHPStan extension IDE helper, provides dummy PHPStan namespace classes and functions. - headercat/phpstan-extension-ide-helper
Have you ever started an existing laravel / blade project and then decided to bring in breeze features afterward?
Looking at breeze with it's built in 2fa and auth systems with email password change built in- If you wanted to adopt those features, would the wisest path be to create a fresh breeze project and then manually bring in my other projects controllers / db structure / blades, env variables, etc? Or is it possible to bring breeze right into an existing project?
https://redd.it/1jglzp3
@r_php
Looking at breeze with it's built in 2fa and auth systems with email password change built in- If you wanted to adopt those features, would the wisest path be to create a fresh breeze project and then manually bring in my other projects controllers / db structure / blades, env variables, etc? Or is it possible to bring breeze right into an existing project?
https://redd.it/1jglzp3
@r_php
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
GitHub - soloterm/screen: A terminal emulator written in pure PHP.
https://github.com/soloterm/screen
https://redd.it/1jgmrip
@r_php
https://github.com/soloterm/screen
https://redd.it/1jgmrip
@r_php
GitHub
GitHub - soloterm/screen: A terminal renderer written in pure PHP.
A terminal renderer written in pure PHP. Contribute to soloterm/screen development by creating an account on GitHub.
HostPapa Scam Exposed: Lies, Downtime, Hidden Fees, and Endless Upselling – Don’t Get Trapped Like I Did
Hey Reddit,
I want to warn you about something that almost cost me big: HostPapa. Like many people, I was drawn in by their “affordable” pricing and promising features, but what followed was a frustrating cycle of downtime, upselling, and endless support issues. After dealing with it firsthand and doing a lot of digging, I realized I’m not alone – thousands of other users, reviews, and even employees have spoken up about how HostPapa operates.
If you're considering HostPapa or want to know what’s really going on behind the marketing hype, here are some major red flags you should be aware of:
---
### 1. Bait-and-Switch Pricing & Hidden Fees
- Low Initial Cost, Skyrocketing Renewals: Like many low-cost hosts, HostPapa lures you in with cheap introductory offers. However, their renewal prices can triple after the first year. Many customers have felt blindsided by sudden price hikes (source, source).
- Surprise Upsells: Customers report being aggressively upsold for “necessary add-ons” that should be included in any decent hosting plan. Jason Teale’s review details how he was pressured to pay more just to maintain decent uptime (source).
---
### 2. Poor Uptime and Server Performance
- Frequent Downtime: Despite promises of 99.9% uptime, HostPapa has been criticized for frequent server crashes and long downtimes. Reviews on sites like ProductReview and WebsitePlanet frequently mention websites going offline for hours or even days without explanation (source, source).
- Slow Website Speed: Many users have reported painfully slow load times, which is bad news if you’re running a business or care about SEO.
---
### 3. Lackluster Customer Support
- Long Wait Times and Unresolved Issues: While HostPapa boasts 24/7 support, numerous customers on BBB, Sitejabber, and other platforms have shared stories of long hold times, unhelpful responses, and unresolved issues (source, source).
---
### 4. Aggressive Sales Tactics and Upselling
- Support That Prioritizes Upselling Over Solutions: Instead of helping you fix issues, HostPapa support often tries to upsell you on more expensive plans, features, and services (source).
---
### 5. A Troubling Reputation – Even Among Employees
- Glassdoor Employee Reviews: It’s not just customers who are unhappy – even former employees have called out HostPapa for their aggressive sales focus and lack of care for customer satisfaction (source).
---
### 6. A Pattern of Complaints and Warnings
- Better Business Bureau (BBB) Complaints: HostPapa has over 140 complaints on the BBB website, many of which echo the same themes: poor customer service, surprise charges, and unresolved downtime (source).
- Scamalytics Flag: HostPapa’s IP range has even been flagged on Scamalytics for high-risk activity, which isn’t exactly reassuring (source).
---
### Conclusion: Is HostPapa a Scam?
Whether or not you’d call HostPapa a scam is up to you, but based on the overwhelming pattern of negative reviews, hidden fees, poor service, and constant
Hey Reddit,
I want to warn you about something that almost cost me big: HostPapa. Like many people, I was drawn in by their “affordable” pricing and promising features, but what followed was a frustrating cycle of downtime, upselling, and endless support issues. After dealing with it firsthand and doing a lot of digging, I realized I’m not alone – thousands of other users, reviews, and even employees have spoken up about how HostPapa operates.
If you're considering HostPapa or want to know what’s really going on behind the marketing hype, here are some major red flags you should be aware of:
---
### 1. Bait-and-Switch Pricing & Hidden Fees
- Low Initial Cost, Skyrocketing Renewals: Like many low-cost hosts, HostPapa lures you in with cheap introductory offers. However, their renewal prices can triple after the first year. Many customers have felt blindsided by sudden price hikes (source, source).
- Surprise Upsells: Customers report being aggressively upsold for “necessary add-ons” that should be included in any decent hosting plan. Jason Teale’s review details how he was pressured to pay more just to maintain decent uptime (source).
---
### 2. Poor Uptime and Server Performance
- Frequent Downtime: Despite promises of 99.9% uptime, HostPapa has been criticized for frequent server crashes and long downtimes. Reviews on sites like ProductReview and WebsitePlanet frequently mention websites going offline for hours or even days without explanation (source, source).
- Slow Website Speed: Many users have reported painfully slow load times, which is bad news if you’re running a business or care about SEO.
---
### 3. Lackluster Customer Support
- Long Wait Times and Unresolved Issues: While HostPapa boasts 24/7 support, numerous customers on BBB, Sitejabber, and other platforms have shared stories of long hold times, unhelpful responses, and unresolved issues (source, source).
---
### 4. Aggressive Sales Tactics and Upselling
- Support That Prioritizes Upselling Over Solutions: Instead of helping you fix issues, HostPapa support often tries to upsell you on more expensive plans, features, and services (source).
---
### 5. A Troubling Reputation – Even Among Employees
- Glassdoor Employee Reviews: It’s not just customers who are unhappy – even former employees have called out HostPapa for their aggressive sales focus and lack of care for customer satisfaction (source).
---
### 6. A Pattern of Complaints and Warnings
- Better Business Bureau (BBB) Complaints: HostPapa has over 140 complaints on the BBB website, many of which echo the same themes: poor customer service, surprise charges, and unresolved downtime (source).
- Scamalytics Flag: HostPapa’s IP range has even been flagged on Scamalytics for high-risk activity, which isn’t exactly reassuring (source).
---
### Conclusion: Is HostPapa a Scam?
Whether or not you’d call HostPapa a scam is up to you, but based on the overwhelming pattern of negative reviews, hidden fees, poor service, and constant
Rob Wipond
Hostpapa Review (or Hostpapa’s Scam, and what you should know about all “low-cost” web hosting providers) - Rob Wipond
Many providers of "low-cost" shared web hosting like Hostpapa advertise "unlimited bandwidth" -- but it's a scam, and you could end up with your website shut down and back-up functions blocked unless you pay higher fees. Don't get burned. Learn from…
upselling, it’s clear that something isn’t right. They might work fine if you’re a casual user with a small website and no big expectations – but if you’re serious about your online presence, I’d recommend looking elsewhere.
If you’ve had experiences (good or bad) with HostPapa, feel free to share them below. Let’s get the word out so others don’t fall into the same trap!
https://redd.it/1jh3dm3
@r_php
If you’ve had experiences (good or bad) with HostPapa, feel free to share them below. Let’s get the word out so others don’t fall into the same trap!
https://redd.it/1jh3dm3
@r_php
Reddit
From the PHP community on Reddit: HostPapa Scam Exposed: Lies, Downtime, Hidden Fees, and Endless Upselling – Don’t Get Trapped…
Explore this post and more from the PHP community
Building a CRM with Backpack for Laravel – The Fun & Easy Way
https://backpackforlaravel.com/articles/recommendations/building-a-crm-with-backpack-for-laravel-the-fun-easy-way
https://redd.it/1jhaxd2
@r_php
https://backpackforlaravel.com/articles/recommendations/building-a-crm-with-backpack-for-laravel-the-fun-easy-way
https://redd.it/1jhaxd2
@r_php
Backpack for Laravel
Building a CRM with Backpack for Laravel – The Fun & Easy Way
So, you want to build a CRM (Customer Relationship Management) system? But the idea of manually setting up CRUDs, operations, and all...
Question about Request Response (MVC)
Im attempting to build my own MVC framework, a very lightweight attempt at replicating some core features of Laravel.
Ive set my controllers up to use Request, Response and also return a Response object.
First and foremost, is this correct understanding that all controllers should return a response?
In my Router it instantiates the controller like:
$router->get('/', 'HomeController@index');, I am however having some issues with the controller not properly returning a response back to the controller. If I for example do:
HomeController.php:
index(Request, Response): Response
$request->json(); it works and returns the response back to the Router.
But if I call
index(Request, Response): Response
$this->render('home'); even though it does return a Response its a "new" response made by the DI Container on creation of the Controller.
Could I solve this by doing something like this:
Router.php:
dispatch()
// . . .
$response = Class->method(Request, Response).
$response->send();
I asked ChatGPT and it argued that not all controllers will return a response.
So perhaps a resource where I can read more about Request Response would be nice too.
Its mostly seems to work if my DI Container uses the Request and Response as singletons but I dont like having a singleton principle for those objekts, although the Router is singleton.
https://redd.it/1jhb3j0
@r_php
Im attempting to build my own MVC framework, a very lightweight attempt at replicating some core features of Laravel.
Ive set my controllers up to use Request, Response and also return a Response object.
First and foremost, is this correct understanding that all controllers should return a response?
In my Router it instantiates the controller like:
$router->get('/', 'HomeController@index');, I am however having some issues with the controller not properly returning a response back to the controller. If I for example do:
HomeController.php:
index(Request, Response): Response
$request->json(); it works and returns the response back to the Router.
But if I call
index(Request, Response): Response
$this->render('home'); even though it does return a Response its a "new" response made by the DI Container on creation of the Controller.
Could I solve this by doing something like this:
Router.php:
dispatch()
// . . .
$response = Class->method(Request, Response).
$response->send();
I asked ChatGPT and it argued that not all controllers will return a response.
So perhaps a resource where I can read more about Request Response would be nice too.
Its mostly seems to work if my DI Container uses the Request and Response as singletons but I dont like having a singleton principle for those objekts, although the Router is singleton.
https://redd.it/1jhb3j0
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
PHP & Symfony MMO - new item equipping feature
After a week of thinking, about the relationship between item and instance, I am ready to announce that the ability to equip items that implement the ItemEquipmentInstanceInterface is available.
In this case, the Wooden Sword, will confer +5 to physical attack while equipped, making you stronger against all mobs, including the latest implemented: Sbinsol.
Sbinsol is a water lizard, wanted and implemented by my younger brother, who got curious about the video game and wanted to develop it.In Symfony MMO creating a new mob is very easy, almost like writing a denoscriptive text. Maybe I can make a video where I illustrate it. We'll see...
Read more on my Patreon post: https://www.patreon.com/posts/124934660?utmcampaign=postsharecreator&utmcontent=androidshare
https://redd.it/1jhhnbr
@r_php
After a week of thinking, about the relationship between item and instance, I am ready to announce that the ability to equip items that implement the ItemEquipmentInstanceInterface is available.
In this case, the Wooden Sword, will confer +5 to physical attack while equipped, making you stronger against all mobs, including the latest implemented: Sbinsol.
Sbinsol is a water lizard, wanted and implemented by my younger brother, who got curious about the video game and wanted to develop it.In Symfony MMO creating a new mob is very easy, almost like writing a denoscriptive text. Maybe I can make a video where I illustrate it. We'll see...
Read more on my Patreon post: https://www.patreon.com/posts/124934660?utmcampaign=postsharecreator&utmcontent=androidshare
https://redd.it/1jhhnbr
@r_php
Patreon
PHP Symfony MMO - New equipping feature | Gabs496
Get more from Gabs496 on Patreon
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