@oliver@phpc.social avatar

oliver

@oliver@phpc.social

Earning a living with #PHP since 2005. In love with modernizing legacy codebases, excited by mission critical features.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

bobmagicii, to random
@bobmagicii@phpc.social avatar

hey i got a table where the primary key iterated over 1mil. its been a while most our projects are tiny.

oliver,
@oliver@phpc.social avatar

@bobmagicii it's all good until you figure out that a rather important table has just run out of room for a PK that's signed int, which is also referenced from similar-sized tables via FKs 😶

ramsey, (edited ) to random
@ramsey@phpc.social avatar

I managed to avoid for 10 years, but it’s finally caught up to me, so I hope I’m a Kubernetes god after going through all this required (by job) Kubernetes training.

When do I start honking like a duck goose?

oliver,
@oliver@phpc.social avatar

A minute of silence for the fallen brother, please

itsjoshbruce, to php
@itsjoshbruce@phpc.social avatar

It’s been so long since I did anything with authenticated users, curious about “modern” patterns and standards.

Specifically, an authenticated user wants to do something. What patterns and standards are you using for permissions?

I’m seeing middleware mentions. But, curious what else is out there. Not looking for “use Framework X” and should be testable. Doesn’t need to be web-specific as I’m just looking for patterns and standards.



oliver,
@oliver@phpc.social avatar

@itsjoshbruce middleware user here, on the most recent project. I can't say I'm particularly proud of it, but it does the job so far

oliver,
@oliver@phpc.social avatar

@itsjoshbruce it's the request (route or route group middleware). Authenticated user is set early to the container and then various areas are protected based on the user's roles. Of course, there are more detailed checks later in the flow (e.g. parts of the interface are hidden or different depending on role/permissions). Middleware is stopping the unintended actions, like playing with URLs to access what's not supposed to be seen or actioned on.

oliver, to php
@oliver@phpc.social avatar

If you were about to start a medium-sized project, what would you choose as an , and why? It should be something stable and well maintained. If the business takes off, then there should be no need to replace that layer.

Caveat: imagine that Doctrine and Eloquent haven't been invented yet.

oliver,
@oliver@phpc.social avatar

@zimzat yeah, on the surface level things seem to be attractive, but as you go further and deeper, facepalms emerge. Some dbal & a custom data mapper will probably be the start.

I use Doctrine on my day-to-day work, and have used Eloquent before. Eloquent I liked up to some point, but can't say that for Doctrine. I wish I had more time to build something like Eloquent but with less magic and bloat (simple to use but not trying to do everything imaginable)

oliver,
@oliver@phpc.social avatar

@thgs it is a side project that will be maintained by me for the foreseeable future. It has some commercial potential I hope, but if it starts growing fruits then I will make sure to bring someone in who will have enough experience and no fear to dive in, regardless of the libraries used. The goal is to start minimal.

Looks like some dbal + data mapper is the way to go, the latter probably something custom.

sirber, to php
@sirber@fosstodon.org avatar

There's not enough money in the world you can give me to work on your custom framework.

oliver,
@oliver@phpc.social avatar

@sirber come on, there's a price for every kind of work 🙃

oliver,
@oliver@phpc.social avatar

@maxalmonte14 they either have no idea what they're doing, or have a very good idea*

  • by not using a framework I don't mean not using any components that may be a part of one. just not a full-blown "off the shelf" framework.
sinbad, to random
@sinbad@mastodon.gamedev.place avatar

F**ks sake they changed something pretty fundamental between UE 5.4 Preview and UE 5.4 Final - the ability to have multiple objects in an asset file, which SUDS relies on - the dialogue and string table are in the same asset; now the string table is gone.

I was worried they might do this because they started hiding them in 5.3 (not a problem) so I tested 5.4 Preview but everything was fine. Now it's completely broken in 5.4 Final, every single dialogue line is <MISSING STRING TABLE ENTRY> 😠

oliver,
@oliver@phpc.social avatar

@sinbad I have no idea what kind of stack is that, but the string appears to have a tag that is not properly closed. Could there be something discarding the whole string because of that?

packagist, to php
@packagist@phpc.social avatar

👋 We're hiring a Senior Software Engineer in Berlin or remote! 💻 Build high-quality supply chain tools for thousands of devs in the PHP ecosystem 🐘 with the makers of Composer.

We're a small experienced remote team, deeply caring about our customers and the quality of our product. 🧑‍🤝‍🧑 Help us maintain and improve key infrastructure for hundreds of businesses! 🎉

https://packagist.com/about/careers/senior-software-engineer-1

oliver,
@oliver@phpc.social avatar

@ramsey maybe? :)

Skoop, to random
@Skoop@phpc.social avatar

Ah, the good old "pubic function" typo hit me again.

It took me at least 30 seconds to figure out why the PHPStorm indenting was off

oliver,
@oliver@phpc.social avatar

@Skoop you're not utilizing live templates, e.g. the bulit-in "fnc[TAB]" to never again worry about pubic issues?

bertrand, to php
@bertrand@piaille.fr avatar

Hey Mastodon, what's a free hosting plan for a server-side Web app + DB you'd recommend? Should I pursue with good old and or is there something more modern? I have a small doodling idea for this three days week-end and maybe I should also learn a new language?

oliver,
@oliver@phpc.social avatar

@bertrand if the PHP is the thing you know the best, then get the latest stable version of it and start doing the work you want to do In case you do something that's outdated, it will let you know and you will learn something new. Rinse and repeat :)

ramsey, to php
@ramsey@phpc.social avatar

A friend was telling me about guidelines for developing and deploying new services in their company, and one of the guidelines is “new services must not use .”

I’m not making this up, and this isn’t hyperbole. They actually have this listed on their company documentation.

oliver,
@oliver@phpc.social avatar

@ramsey the beast repo has only recently got the 8.1 constraint. Something like 1.5M LoC (no vendor). The jump has been made from 7.2. It took almost a year to get there, along with ensuring that 40+ other internal packages are in line with it, and 60+ others, some of which had to be forked due to being abandoned years ago. The journey has been fun and exhausting :) I may write some kind of a tldr here or at my blog (which doesn't exist at all... yet).

oliver,
@oliver@phpc.social avatar

@ramsey well, that sucks. Good luck to them in their adventures.

On the other hand, in the (fairly big) company I work for, all of the new services are in PHP :) I guess we could do that in something else, too. But, PHP has been the backbone of the business for ~20 years, so why change it? It's not that it's flawless, being worshipped by management or something like that. It's a tool that delivers.

oliver,
@oliver@phpc.social avatar

@ramsey I don't think I can share a lot, depends on what you would like to know about. It's a fintech company, not a startup. There's tons of code that every experienced engineer would want to tear apart and rewrite, but we don't go there unless there's e.g. a major feature change, which we can then use as an excuse to do some maintenance along the way. The code makes money, so let it do that without shaking the boat too much.

oliver,
@oliver@phpc.social avatar

@ramsey Also, before someone asks "why only to 8.1" 😄 because stability and predictability. Some packages we use huge BC breaks in their 8.2+ versions. Or their dependencies got constraints clashing with constraints from other packages. Some did not support 8.2 at the time we were evaluating everything. And 8.3 was too far away anyway (the actual work started in April '22). The amount of work during the "discuss" stage was for the most part unpredictable, so we drew the line at 8.1

preinheimer, to hiring
@preinheimer@phpc.social avatar

Hey Folks, so we're still hiring over here at WonderProxy.

We're looking for someone with:

  • 5+ years of PHP experience
  • Some front end work (we use react)
  • Some experience working on servers. We use linux and self host.

We've got some more details here: https://jobs.ashbyhq.com/wonderproxy/b5135fd7-ae9c-4c7d-ba13-8f1e75aa6980

oliver,
@oliver@phpc.social avatar

@preinheimer now to just wait for some seismic event that would slowly move North America over the Atlantic closer to Europe. Kidding :) the time zone gap is too big for me personally, but otherwise very nice and clean job posting. I hope you'll find someone soon!

oliver,
@oliver@phpc.social avatar

@symfonystation I don't get it, are loops now evil? Why would one want to not use them? Stuffing arrays into collections in order to manipulate them "nicely" is not a crime, sure. I just have a problem understanding why the other way is presented as bad/no-no.

oliver, to Cats
@oliver@phpc.social avatar

That look 😄

oliver, (edited ) to random
@oliver@phpc.social avatar

Air is so bad tonight in Sarajevo, Bosnia and Herzegovina, that my phone warned me that its lens is dirty when I tried to snap a photo of it.

oliver, to php
@oliver@phpc.social avatar

One of the annoyances found in the codebase I'm currently busy with is finding many traits that are used in one single class. Those traits have literally zero other places they could be used at, so... why? Just because someone else did it, you don't have to the same thing. Also, don't do that if you think it just may be needed in the future. Do it only if that's really, really needed now.

oliver, to random
@oliver@phpc.social avatar

Let's see how many versions of I need to go back to, in order to up my containers under 5s again. This last upgrade to 4.25.2 is unbearable, it takes ~3 minutes for something that used to be a couple of seconds (no builds etc).

Wondering if that's something specific to my setup or the progressive degradation is noticeable for others as well?

oliver, to php
@oliver@phpc.social avatar

Week #6 of work on bringing a huge project (~1M LoC excluding /vendor) from PHP 7.2 to 8. Right now halfway through its composer dependencies.

Today I discovered something that really blew my mind - see the ticket that got spawned after the investigation.

How was your day? :-D

oliver, to php
@oliver@phpc.social avatar

A bit of a rant about some composer packages.

It's such a burden do deal with those that bump the PHP runtime requirement up to ^8.0, and also drop the one for 7.x in the same release, with no actual changes that would really make the package depend on 8+. Literally zero buffer for the transitional period which would allow projects to sit on 2 chairs a bit.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • rosin
  • thenastyranch
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • magazineikmin
  • InstantRegret
  • Youngstown
  • vwfavf
  • slotface
  • everett
  • osvaldo12
  • kavyap
  • anitta
  • khanakhh
  • tester
  • Durango
  • tacticalgear
  • GTA5RPClips
  • cisconetworking
  • ethstaker
  • cubers
  • normalnudes
  • modclub
  • provamag3
  • Leos
  • JUstTest
  • All magazines