VueJS - How good is the new starter kit?
I never used a component library to build a frontend in VueJS. My main to go CSS framework is Tailwind + Daisyui (or something related).
However, after seeing code and examples of the provided component library (I also like you actually publish them in your own src), I'm thinking of moving to the provided starter kit instead. It does save me a lot of component creating, and cva looks nice.
Could you tell me how your experience have been or if you did go for something else? I don't want to customize, but I also want something that is kinda useable for the upcoming 2 years.
https://redd.it/1j9ty0q
@r_php
I never used a component library to build a frontend in VueJS. My main to go CSS framework is Tailwind + Daisyui (or something related).
However, after seeing code and examples of the provided component library (I also like you actually publish them in your own src), I'm thinking of moving to the provided starter kit instead. It does save me a lot of component creating, and cva looks nice.
Could you tell me how your experience have been or if you did go for something else? I don't want to customize, but I also want something that is kinda useable for the upcoming 2 years.
https://redd.it/1j9ty0q
@r_php
Enum in php and database
Let say I have enum gender: male , female ,indeterminate and unknown.
In database(postgresql) i use smallint data type.
In symfony, to make coding easier i create enum class Gender as string so that when displaying, i can simply call Gender.male Gender.female etc.
Is there programming technique in symfony that I can use so that when entity is being committed to database, its gender enum can be converted into smallint enum and likewise when entity being read from database, smallint datatype enum being converted into string enum.
https://redd.it/1ja248w
@r_php
Let say I have enum gender: male , female ,indeterminate and unknown.
In database(postgresql) i use smallint data type.
In symfony, to make coding easier i create enum class Gender as string so that when displaying, i can simply call Gender.male Gender.female etc.
Is there programming technique in symfony that I can use so that when entity is being committed to database, its gender enum can be converted into smallint enum and likewise when entity being read from database, smallint datatype enum being converted into string enum.
https://redd.it/1ja248w
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
Brothers, I have made this new Portfolio Website for a freelance Penetration Tester, How is this?
https://aaryansaharan.me/
https://redd.it/1ja3bkt
@r_php
https://aaryansaharan.me/
https://redd.it/1ja3bkt
@r_php
GitHub - aldemeery/sieve: A simple, clean and elegant way to filter Eloquent models.
https://github.com/aldemeery/sieve
https://redd.it/1ja2ghq
@r_php
https://github.com/aldemeery/sieve
https://redd.it/1ja2ghq
@r_php
GitHub
GitHub - aldemeery/sieve: A simple, clean and elegant way to filter Eloquent models.
A simple, clean and elegant way to filter Eloquent models. - aldemeery/sieve
Socialite Plus – Laravel 12 Social Login for React & Vue (Google, Facebook, GitHub, LinkedIn)
Hey devs! 👋
I built Socialite Plus because I needed it. As a Laravel developer, I work with clients who almost always require social login for their projects. Setting it up over and over again was tedious, so I built this package to make it faster, easier, and more streamlined—and now I’m sharing it with the community!
It’s designed for Laravel 12 Starterkits (both Vue & React) and supports Google, Facebook, GitHub, and LinkedIn authentication out of the box.
🎥 Watch the Full Video Tutorial: https://www.youtube.com/watch?v=X96PTlPUlaQ
💻 GitHub: https://github.com/deemonic/socialiteplus
# 🔥 Why Use Socialite Plus?
✅ Pre-built login pages – No need to build them from scratch
✅ React & Vue support – Works with both Starterkits
✅ Easy OAuth setup – Just update
✅ Supports Google, Facebook, GitHub, LinkedIn
✅ Fully customizable buttons & styles
✅ Secure & scalable – Built with best practices
✅ Quick installation – Takes minutes, not hours!
Socialite Plus GitHub Provider Active
Socialite Plus All Providers Active
Socialite Plus Dark Mode Enabled
Non Branded Buttons Dark
Non Branded Buttons Light
Would love to hear your thoughts! If you try it out, let me know how it works for you. Open to feedback, feature requests, and contributions! 🚀🔥
👉 Are there any other social login providers you'd like to see added to the package? Let me know in the comments! Would love to expand support based on what the community needs.
https://redd.it/1ja964z
@r_php
Hey devs! 👋
I built Socialite Plus because I needed it. As a Laravel developer, I work with clients who almost always require social login for their projects. Setting it up over and over again was tedious, so I built this package to make it faster, easier, and more streamlined—and now I’m sharing it with the community!
It’s designed for Laravel 12 Starterkits (both Vue & React) and supports Google, Facebook, GitHub, and LinkedIn authentication out of the box.
🎥 Watch the Full Video Tutorial: https://www.youtube.com/watch?v=X96PTlPUlaQ
💻 GitHub: https://github.com/deemonic/socialiteplus
# 🔥 Why Use Socialite Plus?
✅ Pre-built login pages – No need to build them from scratch
✅ React & Vue support – Works with both Starterkits
✅ Easy OAuth setup – Just update
.env and you're good to go ✅ Supports Google, Facebook, GitHub, LinkedIn
✅ Fully customizable buttons & styles
✅ Secure & scalable – Built with best practices
✅ Quick installation – Takes minutes, not hours!
Socialite Plus GitHub Provider Active
Socialite Plus All Providers Active
Socialite Plus Dark Mode Enabled
Non Branded Buttons Dark
Non Branded Buttons Light
Would love to hear your thoughts! If you try it out, let me know how it works for you. Open to feedback, feature requests, and contributions! 🚀🔥
👉 Are there any other social login providers you'd like to see added to the package? Let me know in the comments! Would love to expand support based on what the community needs.
https://redd.it/1ja964z
@r_php
YouTube
🚀 Socialite Plus - Laravel 12 Social Login Made Easy! | Demo & Walkthrough
👋 Hey Devs!
In this video, I walk you through Socialite Plus, a Laravel 12 package that simplifies social authentication for Google, Facebook, GitHub, and LinkedIn. Whether you're using React or Vue, this package provides a seamless integration for OAuth…
In this video, I walk you through Socialite Plus, a Laravel 12 package that simplifies social authentication for Google, Facebook, GitHub, and LinkedIn. Whether you're using React or Vue, this package provides a seamless integration for OAuth…
Symfony vs Laravel - A humble request (Part 2)
https://clegginabox.co.uk/symfony-vs-laravel-a-humble-request-part-2/
https://redd.it/1jaaghi
@r_php
https://clegginabox.co.uk/symfony-vs-laravel-a-humble-request-part-2/
https://redd.it/1jaaghi
@r_php
Clegginabox
Symfony vs Laravel: A humble request (Part 2)
I had planned to talk about documentation and testing with this post but thanks to hindsight and the feedback from r/PHP (which I really appreciate 🙏) I'm going to take a slight detour.
In the previous post I talked about the Request part of the Request…
In the previous post I talked about the Request part of the Request…
In Paris or Berlin - Take the lightning talks challenge!
https://symfony.com/blog/in-paris-or-berlin-take-the-lightning-talks-challenge?utm_source=Symfony%20Blog%20Feed&utm_medium=feed
https://redd.it/1jabdq9
@r_php
https://symfony.com/blog/in-paris-or-berlin-take-the-lightning-talks-challenge?utm_source=Symfony%20Blog%20Feed&utm_medium=feed
https://redd.it/1jabdq9
@r_php
Symfony
In Paris or Berlin - Take the lightning talks challenge! (Symfony Blog)
SymfonyLive Paris & Berlin 2025: Lightning Talks! ⚡ 7 minutes to share your Symfony - PHP related topic! Submit your proposal via email or Slack!
Safari for web dev
Is anyone using Safari for web development with Symfony?
I love the whole browser except for the fact that Symfony error pages are not rendered in the network response tab of Safari like they are in Chrome, Arc etc.
Does anyone know a fix for this?
Thank you!
https://redd.it/1jab32r
@r_php
Is anyone using Safari for web development with Symfony?
I love the whole browser except for the fact that Symfony error pages are not rendered in the network response tab of Safari like they are in Chrome, Arc etc.
Does anyone know a fix for this?
Thank you!
https://redd.it/1jab32r
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
How are we all finding Laravel Cloud so far?
It has been a little while since Cloud's release, I've deployed a small application to it and so far it's worked absolutely fine, but admittedly it's not a complex project and just uses Blade.
For those that are using Cloud, and especially ones with complex apps, how are you fiinding it?
https://redd.it/1jab5wj
@r_php
It has been a little while since Cloud's release, I've deployed a small application to it and so far it's worked absolutely fine, but admittedly it's not a complex project and just uses Blade.
For those that are using Cloud, and especially ones with complex apps, how are you fiinding it?
https://redd.it/1jab5wj
@r_php
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
From Laravel to Symfony | Day 2
Continuing my series on learning Symfony to transition from Laravel, today I’m diving into Dependency Injection (DI), the service container, and want to talk the contrast between simple and complex solutions in both frameworks. If you missed the previous parts, you can find them here:
[From Laravel to Symfony | Day 0](https://www.reddit.com/r/symfony/comments/1ins69p/from_laravel_to_symfony_day_0/)
[From Laravel to Symfony | Day 1](https://www.reddit.com/r/symfony/comments/1izrt2g/from_laravel_to_symfony_day_1/)
# 1. Dependency Injection & the Service Container
I have to admit—Symfony’s DI is incredibly powerful. It offers a level of flexibility that I’m not sure I’ll ever fully utilize. However, it’s always better to have more capacity than to hit limitations down the road. One feature I particularly like is "tags", which allow you to “hook” into different parts of Symfony’s internals in a structured way. Laravel also has tags, but they serve a different purpose—mainly for grouping items together for later resolution from the Container.
While reading Symfony’s documentation on DI, I finally understood why Laravel’s **Service Providers** are named that way. The concept of “services” in Symfony aligns with `services.yaml`, where almost everything is defined as a service. However, in Laravel, Service Providers—despite their `register` and `boot` methods—seem to have evolved into a mechanism more focused on configuration and initialization rather than DI configuration itself.
That being said, Laravel does provide ways to handle flexible dependencies as well, just in a different way:
services:
ServiceA:
arguments:
$myVariable: 'value of the variable'
--- vs ---
$this->app
->when(ServiceA::class)
->needs('$myVariable')
->give("value of the variable");
Another interesting difference: Laravel’s container creates a new instance each time by default, unless explicitly registered as `singleton` or `instance`. Symfony, on the other hand, follows the singleton pattern by default, meaning it creates an instance once and reuses it.
Also, Laravel doesn’t rely on DI as heavily as Symfony does. Many dependencies (especially framework-level ones) are accessible via Facades. And just a quick note—Facades in Laravel are NOT some proprietary invention; they’re simply a design pattern that Laravel adopted as a way to access container-bound services. You’re not forced to use them—you can always rely on constructor injection if you prefer.
# 2. Simple vs. Complex Solutions
One key difference I’m noticing is the contrast between simplicity and flexibility (with complexity) when solving common problems in both frameworks. For example, this “Laravel code” (to get list of all the users): `User::all()` where, under the hood, many distinct things are happening:
* Connection Management
* Query Builder
* Data Mapping (Hydration)
* Data Value (attributes and “casting”)
* and, Pagination logic (if used as `User::pagiante()`).
From one side, it might not seem like the “right” approach (because it's not SOLID**!**), on the other side, do you need the flexibility (and complexity, or at least “extra code”) Symfony goes with just to get the list of users? Symfony, requires more setup—going through a repository, entity manager, and a custom pagination solution (or an extra package). So, the way I see it - Symfony enforces a structured, explicit approach, while Laravel prioritizes convenience (1 line vs many classes).
Another example would be Laravel Queue vs. Symfony Messenger. Laravel’s queue system is practically plug-and-play. Define a job, dispatch it, run a worker. Done. Of course, extra configuration is available. Symfony’s Messenger, on the other hand, is more low-level. It’s incredibly flexible—you can configure multiple buses, custom transports, envelopes, middleware, and stamps, etc.
>So, is it flexible and powerful enough? - Definitely.
>Do you need this flexibility (and complexity)? - It depends.
So far, I’m leaning
Continuing my series on learning Symfony to transition from Laravel, today I’m diving into Dependency Injection (DI), the service container, and want to talk the contrast between simple and complex solutions in both frameworks. If you missed the previous parts, you can find them here:
[From Laravel to Symfony | Day 0](https://www.reddit.com/r/symfony/comments/1ins69p/from_laravel_to_symfony_day_0/)
[From Laravel to Symfony | Day 1](https://www.reddit.com/r/symfony/comments/1izrt2g/from_laravel_to_symfony_day_1/)
# 1. Dependency Injection & the Service Container
I have to admit—Symfony’s DI is incredibly powerful. It offers a level of flexibility that I’m not sure I’ll ever fully utilize. However, it’s always better to have more capacity than to hit limitations down the road. One feature I particularly like is "tags", which allow you to “hook” into different parts of Symfony’s internals in a structured way. Laravel also has tags, but they serve a different purpose—mainly for grouping items together for later resolution from the Container.
While reading Symfony’s documentation on DI, I finally understood why Laravel’s **Service Providers** are named that way. The concept of “services” in Symfony aligns with `services.yaml`, where almost everything is defined as a service. However, in Laravel, Service Providers—despite their `register` and `boot` methods—seem to have evolved into a mechanism more focused on configuration and initialization rather than DI configuration itself.
That being said, Laravel does provide ways to handle flexible dependencies as well, just in a different way:
services:
ServiceA:
arguments:
$myVariable: 'value of the variable'
--- vs ---
$this->app
->when(ServiceA::class)
->needs('$myVariable')
->give("value of the variable");
Another interesting difference: Laravel’s container creates a new instance each time by default, unless explicitly registered as `singleton` or `instance`. Symfony, on the other hand, follows the singleton pattern by default, meaning it creates an instance once and reuses it.
Also, Laravel doesn’t rely on DI as heavily as Symfony does. Many dependencies (especially framework-level ones) are accessible via Facades. And just a quick note—Facades in Laravel are NOT some proprietary invention; they’re simply a design pattern that Laravel adopted as a way to access container-bound services. You’re not forced to use them—you can always rely on constructor injection if you prefer.
# 2. Simple vs. Complex Solutions
One key difference I’m noticing is the contrast between simplicity and flexibility (with complexity) when solving common problems in both frameworks. For example, this “Laravel code” (to get list of all the users): `User::all()` where, under the hood, many distinct things are happening:
* Connection Management
* Query Builder
* Data Mapping (Hydration)
* Data Value (attributes and “casting”)
* and, Pagination logic (if used as `User::pagiante()`).
From one side, it might not seem like the “right” approach (because it's not SOLID**!**), on the other side, do you need the flexibility (and complexity, or at least “extra code”) Symfony goes with just to get the list of users? Symfony, requires more setup—going through a repository, entity manager, and a custom pagination solution (or an extra package). So, the way I see it - Symfony enforces a structured, explicit approach, while Laravel prioritizes convenience (1 line vs many classes).
Another example would be Laravel Queue vs. Symfony Messenger. Laravel’s queue system is practically plug-and-play. Define a job, dispatch it, run a worker. Done. Of course, extra configuration is available. Symfony’s Messenger, on the other hand, is more low-level. It’s incredibly flexible—you can configure multiple buses, custom transports, envelopes, middleware, and stamps, etc.
>So, is it flexible and powerful enough? - Definitely.
>Do you need this flexibility (and complexity)? - It depends.
So far, I’m leaning
Reddit
From the symfony community on Reddit: From Laravel to Symfony | Day 0
Posted by Prestigious-Type-973 - 1 vote and 0 comments
toward this statement:
* Laravel is an excellent choice for small to medium projects that need quick setup, an MVP, or a PoC. It provides a strong out-of-the-box experience with sane defaults.
* Symfony is ideal for long-term projects where you can invest time (and budget?) upfront to fine-tune it to your needs.
\---
Also, I would like to ask the community (you) to define “magic” (referred as "Laravel magic"). What exactly do you put in this meaning and definition so that when I work with those frameworks, I could clearly distinguish and identify “magic moments”. Because, it feels like there are some things that I could call “magical” in Symfony too.
Thanks.
https://redd.it/1jaf2lt
@r_php
* Laravel is an excellent choice for small to medium projects that need quick setup, an MVP, or a PoC. It provides a strong out-of-the-box experience with sane defaults.
* Symfony is ideal for long-term projects where you can invest time (and budget?) upfront to fine-tune it to your needs.
\---
Also, I would like to ask the community (you) to define “magic” (referred as "Laravel magic"). What exactly do you put in this meaning and definition so that when I work with those frameworks, I could clearly distinguish and identify “magic moments”. Because, it feels like there are some things that I could call “magical” in Symfony too.
Thanks.
https://redd.it/1jaf2lt
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
🎬 Catch up on the Laravel Cloud AMA with Cloud team lead Joe Dixon (Summary)
https://youtu.be/d8zuM6jtqOs
https://redd.it/1jacxco
@r_php
https://youtu.be/d8zuM6jtqOs
https://redd.it/1jacxco
@r_php
YouTube
63 Laravel Cloud Questions with Joe Dixon (Summary)
Join Joe Dixon, Engineering Team Lead of Laravel Cloud, in an in-depth Q&A session covering 63 questions about Laravel Cloud. Joe dives into the development process, infrastructure decisions, and technical implementation details that power Laravel Cloud.…
I created an open-source app to browse laravel's new community starer kits!
Hello everyone! So I discovered a few hours ago that laravel now allows for custom community starterkits!
Thanks to the team for that btw! I am not sure if they are planning on making an app to browse these or not in the near future, so I figured, why not do it myself lol
You can find the link here:
Laravel Starterkits Gallery
(I will probably buy an actual domain if there is actually demand)
This is VERY early in development btw, there are a lot of features I want to add (again, if there is enough demand).
Roadmap
You can find the github link here: https://github.com/AndryTafa/laravel-community-starterkits
Disclaimer: This is very much into early development, so if there is any bugs, or maybe crashes, please bear with me lol
If you have any feedback, please feel free to DM me, and feel free to contribute! (However, I will firstly add a roadmap to the readme, so if you would like to contribute, you could have a look at the things I will want to work on)
I would appreciate a star :P
Any feedback is appreciated. thanks!
https://redd.it/1jaedi2
@r_php
Hello everyone! So I discovered a few hours ago that laravel now allows for custom community starterkits!
Thanks to the team for that btw! I am not sure if they are planning on making an app to browse these or not in the near future, so I figured, why not do it myself lol
You can find the link here:
Laravel Starterkits Gallery
(I will probably buy an actual domain if there is actually demand)
This is VERY early in development btw, there are a lot of features I want to add (again, if there is enough demand).
Roadmap
You can find the github link here: https://github.com/AndryTafa/laravel-community-starterkits
Disclaimer: This is very much into early development, so if there is any bugs, or maybe crashes, please bear with me lol
If you have any feedback, please feel free to DM me, and feel free to contribute! (However, I will firstly add a roadmap to the readme, so if you would like to contribute, you could have a look at the things I will want to work on)
I would appreciate a star :P
Any feedback is appreciated. thanks!
https://redd.it/1jaedi2
@r_php
Is there a tool for visualization?
Does anyone know if there's a website for visualization for PHP that shows the process what's happening when your run a block of code?
https://redd.it/1jaarqd
@r_php
Does anyone know if there's a website for visualization for PHP that shows the process what's happening when your run a block of code?
https://redd.it/1jaarqd
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Statamic CMS as rest-api endpoint for big data
Hi guys, I'd need to create a ecommerce rest-api and looking for a ready to use cms..
Anyone ever used statmic as a rest-api based cms? Any feedbacks?
I know there are some lacks of functionalities, like in-built auth or different collections for different tables, can it be a good idea as a rest-api (with around million records) ?
https://redd.it/1jaaf6h
@r_php
Hi guys, I'd need to create a ecommerce rest-api and looking for a ready to use cms..
Anyone ever used statmic as a rest-api based cms? Any feedbacks?
I know there are some lacks of functionalities, like in-built auth or different collections for different tables, can it be a good idea as a rest-api (with around million records) ?
https://redd.it/1jaaf6h
@r_php
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
NASAStan - a PHPStan extension for enforcing NASA's Power of Ten rules in PHP.
https://github.com/JoeyMckenzie/nasastan
https://redd.it/1jaljgo
@r_php
https://github.com/JoeyMckenzie/nasastan
https://redd.it/1jaljgo
@r_php
GitHub
GitHub - JoeyMckenzie/nasastan: PHPStan extension for enforcing NASA's Power of Ten in your PHP code.
PHPStan extension for enforcing NASA's Power of Ten in your PHP code. - JoeyMckenzie/nasastan
Symfony vs Laravel - A humble request (Part 3)
https://clegginabox.co.uk/symfony-vs-laravel-a-humble-request-part-3/
https://redd.it/1jamr4z
@r_php
https://clegginabox.co.uk/symfony-vs-laravel-a-humble-request-part-3/
https://redd.it/1jamr4z
@r_php
Clegginabox
Symfony vs Laravel - A humble request (Part 3)
In this post I'll actually make some progress towards persisting our humble request. Before that I'm going to talk about a snake, to be more precise - Python.
Very early in my career I was really fortunate to work alongside a really experienced and patient…
Very early in my career I was really fortunate to work alongside a really experienced and patient…
Ideal ai/symfony/ide setup for "old newbie"?
Hey guys I haven't done any web development for a long time but was a fairly decent self-taught web dev a few years ago.
I use claude a lot for my work and am wondering if I can use claude and microsoft code studio to help me build out some new symfony projects and maybe dust off and upgrade some old ones.
So my question is what utilities/tools do you use to connect claude (or the ai of your choice) to Symfony and your favorite code editor and also what is your ai of choice?
https://redd.it/1jaqaxh
@r_php
Hey guys I haven't done any web development for a long time but was a fairly decent self-taught web dev a few years ago.
I use claude a lot for my work and am wondering if I can use claude and microsoft code studio to help me build out some new symfony projects and maybe dust off and upgrade some old ones.
So my question is what utilities/tools do you use to connect claude (or the ai of your choice) to Symfony and your favorite code editor and also what is your ai of choice?
https://redd.it/1jaqaxh
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
I can now easily search all 420 GB of PHP source code in Packagist.org. What do you want to search for?
Limitations:
I can search by first letter of the vendor, the entire thing.
The cut-off date is the last time my Bettergist Collector did the full analysis of all reachable composer packages, which is done quarterly. Currently: 2024-12-31.
It's running on the dedicated server locally, and takes about 5 minutes per query.
The results will be dumped into a search log, such as this one: https://www.bettergist.dev/searches/povils.phpmnd-search.log
If you give me plaintext to exclude, I can do that, too. (in the above search, everything in a directory called `phpmnd` was excluded).
The max size of a search result is currently hard-coded to 5 MB.
Only file names will be shown if you want.
I got really really excited when I dev'd this today and I wanted to share with you. Search 420 GB of pure PHP code in less than 5 minutes. How cool is that?!
The tech does have the ability to do regex searches. You'd need to make sure it's compatible with grep on the CLI. Regex seems to take 30 minutes.
https://redd.it/1japt28
@r_php
Limitations:
I can search by first letter of the vendor, the entire thing.
The cut-off date is the last time my Bettergist Collector did the full analysis of all reachable composer packages, which is done quarterly. Currently: 2024-12-31.
It's running on the dedicated server locally, and takes about 5 minutes per query.
The results will be dumped into a search log, such as this one: https://www.bettergist.dev/searches/povils.phpmnd-search.log
If you give me plaintext to exclude, I can do that, too. (in the above search, everything in a directory called `phpmnd` was excluded).
The max size of a search result is currently hard-coded to 5 MB.
Only file names will be shown if you want.
I got really really excited when I dev'd this today and I wanted to share with you. Search 420 GB of pure PHP code in less than 5 minutes. How cool is that?!
The tech does have the ability to do regex searches. You'd need to make sure it's compatible with grep on the CLI. Regex seems to take 30 minutes.
https://redd.it/1japt28
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
PHPoker: The PHP Extension
Not trying to spam everyone! But...
There were a few (very valid) comments on my original PHPoker post(s) last week that discussed performance concerns.
PHP is not necessarily the most optimal choice when running a Monte Carlo simulation for millions of iterations. There are existing libraries for Rust/C++ which perform orders of magnitude better. What PHP does have, is the ability to integrate with C at a very low level - which led me to give this project a shot.
https://github.com/PHPoker/Extension
This is a PHP extension which implements the original implementation of Kevin "CactusKev" Suffecool's algorithm - as native PHP functions backed by C. It creates two new native PHP functions `poker_evaluate_hand()` and `poker_calculate_equity()`.
Being my first attempt at a PHP extension, I am sure there are a ton of things which can be done better. Ex. I am sure my equity calculation implementation is a little naive, and my C code probably looks amateurish.
With that being said, the performance improvements are already drastic! The standard PHP implementation was taking > 60s to run a few million simulations, this is already < 2s. I will do some proper benchmarking this weekend.
After the benchmarking, I want to improve the test suite, and do some exploration related to integrating the extension with the original library. Ex. have the PHPoker library use these native functions if available, and having the new native function use some of the enums/classes/types from the library, etc.
If you are a little adventurous and like poker, check out the ReadMe and run the build noscript. I would love any feedback, questions, comments, thanks for reading!
https://redd.it/1jawpjy
@r_php
Not trying to spam everyone! But...
There were a few (very valid) comments on my original PHPoker post(s) last week that discussed performance concerns.
PHP is not necessarily the most optimal choice when running a Monte Carlo simulation for millions of iterations. There are existing libraries for Rust/C++ which perform orders of magnitude better. What PHP does have, is the ability to integrate with C at a very low level - which led me to give this project a shot.
https://github.com/PHPoker/Extension
This is a PHP extension which implements the original implementation of Kevin "CactusKev" Suffecool's algorithm - as native PHP functions backed by C. It creates two new native PHP functions `poker_evaluate_hand()` and `poker_calculate_equity()`.
Being my first attempt at a PHP extension, I am sure there are a ton of things which can be done better. Ex. I am sure my equity calculation implementation is a little naive, and my C code probably looks amateurish.
With that being said, the performance improvements are already drastic! The standard PHP implementation was taking > 60s to run a few million simulations, this is already < 2s. I will do some proper benchmarking this weekend.
After the benchmarking, I want to improve the test suite, and do some exploration related to integrating the extension with the original library. Ex. have the PHPoker library use these native functions if available, and having the new native function use some of the enums/classes/types from the library, etc.
If you are a little adventurous and like poker, check out the ReadMe and run the build noscript. I would love any feedback, questions, comments, thanks for reading!
https://redd.it/1jawpjy
@r_php
GitHub
GitHub - PHPoker/Extension: A PHP extension for raw hand evaluation and equity calculation
A PHP extension for raw hand evaluation and equity calculation - GitHub - PHPoker/Extension: A PHP extension for raw hand evaluation and equity calculation