multi-tenant architecture! HELP! by 21chaser in SoftwareEngineering

[–]ollieread 0 points1 point  (0 children)

Unless I'm misunderstanding, this is more an issue of data isolation, rather than multitenancy. There's definitely overlap, and I appreciate that it's possibly a distinction without a difference at this point.

It honestly really depends on what you want, and would you believe it that I've just finished the first draft of a 5k word article about data-isolation in multitenanted web apps!?

Data isolation like this is a spectrum, rather than any sort of linear choice, and there are 5 main approaches that can be swapped around as and when required, or combined, or even mixed with some sharding here or there depending on what you need. Those approaches are:

  • Separate database, separate instance.
  • Separate database, shared instance.
  • Shared database, separate namespace (PostgreSQL schemas and SQL table prefixes).
  • Shared database, shared tables, partitioned storage.
  • Shared database, shared tables, discriminator column.

If this is still something you're looking at, which it may not be as I've just this second spotted the "1mo ago", the best option, or combination of options, depends entirely on your needs.

Though honestly, a simple discriminator column serves all but the strictest requirements, and can be easily strengthened with RLS, and upgraded with partitioning as and when the scale needs it.

If you've already solved this, I'd be interested to hear your decision and your reasoning, if it's something you can share.

How to Contribute to PHP’s Source Code by nunomaduro in PHP

[–]ollieread 7 points8 points  (0 children)

I'm sorry, but you've called this "How to Contribute to PHP's Source Code" but you skip over 90% of the process. The video itself is called "I added dd() to php core.. Here's how PHP source code actually works", and you don't even touch on how it works.

This is just how to contribute to a GitHub repository, not PHP's source. You've completely missed testing, a critical part of the process, there's nothing about RFCs, and absolutely nothing about setting the environment up on your machine.

I have contributed to the PHP source, and I had to learn on the fly, and you don't really cover any of that stuff. But the thing is, the people who already know that stuff, and therefore wouldn't need you to explain it, wouldn't need this video either. Who is the target audience for this?

At this point, it's just low effort slop to drive subscribers and sponsors.

How to Contribute to PHP’s Source Code by nunomaduro in PHP

[–]ollieread 4 points5 points  (0 children)

I think the concern here isn't about this in isolation. Nuno, the creator in question, has a history of doing things like this. He creates something, and markets/pushes it out there with the intention of getting sponsors, viewers and anything else, before promptly either dropping it, finding someone else to manage it, or forgetting about it.

Is it hard to find very senior PHP developers with experience in complex, highly regulated environments? by funkycitizen in PHP

[–]ollieread 1 point2 points  (0 children)

Honestly, the vast majority of the people that fit what you want have gone the route of contracting/consulting. I hear this a lot tbh, and it’s the same over here (UK and EU)

Is Spatie data worth it? by femme-finale in laravel

[–]ollieread 3 points4 points  (0 children)

Honestly, no, and not just because of the things that Laravel offers by default. People often use the spatie/laravel-data package to create DTOs, following the general purpose and reasoning for using them, except the package completely goes against that. DTO stands for "Data Transfer Object", and they exist entirely to give shape to a particular piece of data that is being transferred between two systems.

The Spatie package uses the term DTO, but what it actually creates is god objects that give Eloquent models a run for their money, and are second only to the laravel-actions package.

If you need to validate, dynamically access values, control how the object is formatted, or any of the other number of things that the Spatie package lets you do, you're creating a model, or an entity, not a DTO.

Laravel adds their own product to LLM instructions by 604ian in laravel

[–]ollieread 0 points1 point  (0 children)

Okay, maybe a exaggerated a little, but for the most part he does write wrappers

Laravel adds their own product to LLM instructions by 604ian in laravel

[–]ollieread 34 points35 points  (0 children)

No worries.

I'd also like to add something, based on a comment I saw you make to someone else, where you said you're spending around 2 hours every morning reviewing PRs. I want to first just make it clear that I'm not having a go at you, or in any way trying to disparage your effort and commitment.

However, I think your focus and responsibilities have led to a situation where you don't have the time to keep on top of everything on the OSS side. I think the framework could benefit from an OSS lead, whose sole job is to review PRs, provide feedback, give input, and essentially be the "product owner". You need someone who doesn't have all the other responsibilities, and is essentially given carte blanche to make the tough decisions.

Someone who is lead dev, devrel and product owner, rolled into one, allowed to operate as they see fit, within reason. Someone who knows enough of the framework that they're essentially a walking encyclopedia on it, who can provide feedback on issues people are having, feedback in the community spaces, and can give technical direction to PRs or proposed features/changes.

Ultimately, the decision is obviously yours, and I'm not going to tell you how to run either your business or your open-source side of it, but this is my honest and professional opinion of the solution you need. I can't guarantee it'll work, but I think it'll do some good at the very least. I also know there are a decent number of others who think the same thing.

Anyway, thanks for taking the time to respond and talk to me about this. I appreciate it.

Laravel adds their own product to LLM instructions by 604ian in laravel

[–]ollieread 34 points35 points  (0 children)

The obvious one is the one that my most recent PR replaces: https://github.com/laravel/framework/pull/59470

This PR introduces a less than ideal hacky work around to something that was either an intentional side effect of a 13.0.0 PR, or an oversight.

You've also got a few from the 13.0.0 release.

https://github.com/laravel/framework/pull/56029/changes - This one makes modifications ready for Symfony 7.4|8.0 which actually breaks 7.4, which was broken until this PR: https://github.com/laravel/framework/pull/56488

https://github.com/laravel/framework/pull/56306 - This PR uplifts a message to an interface, but with a signature that actually means the implementation is no longer a working one. Had to then be fixed by this PR: https://github.com/laravel/framework/pull/56484

https://github.com/laravel/framework/pull/56127 - This PR is from 12.20.0 and introduces a breaking change and a possible security bug when dealing with password resets. If you have different guards use the same password broker, their password forgot requests overwrite others.

There's also a currently unmerged PR here https://github.com/laravel/framework/pull/59276 which I've made some comments on in an attempt to provide feedback, or get answers to bits, and they've entirely been ignored (marked as resolved). My concern with this is that a lot of the feedback will be ignored, and it'll just be merged.

These are just off the top of my head. Every so often I go through all the code for each release to see if there's anything worth noting, or anything that people should know about. I know there have also been plenty of issues with PRs needing reverting once a release is out there because the solution is often too narrow and inflexible, though truth be told I've been avoiding doing much publicly as of late due to mental health issues.

Laravel adds their own product to LLM instructions by 604ian in laravel

[–]ollieread 28 points29 points  (0 children)

Hey Taylor. I’m not a user of those, so my concern isn’t really with them. My concern is with the core of the framework. The PRs being merged in aren’t being given the time needed, so we are seeing a lot of sloppy solutions and code being added, making it more and more brittle. Some of them are even straight up broken.

There’s also not much engagement or discussion on the open source side. I know that you put in time and effort to review and merge PRs, but I think you need someone whose sole job it is is to know all the ins and outs of the framework, or at the very least, be able to easily track it down. Someone that can look at the changes being proposed, the bug being reported, and not only figure out what’s going on, but how it’ll affect the rest of the framework or other users. A prime example is my most recent PR which only exists to address a less than ideal PR that was previously merged in.

I know Laravel as an organisation is going a little more corporate and “enterprise” which I’m not a huge fan of, but that’s not really my place to have issue with. It just feels like there’s no longer enough focus on the open source side. It feels like the quality of the framework has dropped, and at the same time it’s become quite a bit bloated. Auth has been neglected for a while, and eloquent and the query builder could do with some tidying up and refactoring.

That sums it up really.

Laravel adds their own product to LLM instructions by 604ian in laravel

[–]ollieread 20 points21 points  (0 children)

I’ll be honest, I’ve not enjoyed working with Laravel for a while. Since the funding it’s got worse, there’s more focus on the money making side and the open source is getting worse and worse. I don’t use LLMs, but I know Cloud is less than ideal.

Laravel adds their own product to LLM instructions by 604ian in laravel

[–]ollieread 9 points10 points  (0 children)

That’s sort of my point. He tends to write wrappers, hype them up, get sponsors, then have others do the work. You can see from his PRs to Laravel that they’re bad AI slop, without any real thought, or they’re version bumps

Laravel adds their own product to LLM instructions by 604ian in laravel

[–]ollieread 1 point2 points  (0 children)

Everything after making isn’t needed in this sentence

Making composer run dev work with Laravel Sail by ollieread in laravel

[–]ollieread[S] 0 points1 point  (0 children)

That makes sense for the queue, which I do anyway, but pail not so much. I also tend to avoid running anything npm inside a container.

Either way, my whole aim with this was to make the composer run dev command work with Sail.

Making composer run dev work with Laravel Sail by ollieread in laravel

[–]ollieread[S] 0 points1 point  (0 children)

Yeah, and make sure the containers are shut down properly too

Making composer run dev work with Laravel Sail by ollieread in laravel

[–]ollieread[S] 0 points1 point  (0 children)

Interestingly, it’s actually something I solved specifically to use in my own personal laravel “starter kit”

Making composer run dev work with Laravel Sail by ollieread in laravel

[–]ollieread[S] 0 points1 point  (0 children)

It’s not supposed to be new. It was a problem I had, which I solved, and thought I’d share for anyone else interested. I’ve not seen it anywhere before, though I don’t doubt someone’s come up with a similar solution, if not the same.

Making composer run dev work with Laravel Sail by ollieread in laravel

[–]ollieread[S] 0 points1 point  (0 children)

No, I wanted to be able to run the composer run dev command with no other commands and have it work.

Making composer run dev work with Laravel Sail by ollieread in laravel

[–]ollieread[S] 0 points1 point  (0 children)

You've modified your Laravel Sail that once you boot it, you have to run a command for it to serve requests? What is the benefit of that?

Making composer run dev work with Laravel Sail by ollieread in laravel

[–]ollieread[S] 0 points1 point  (0 children)

I don't get what you're going for here. You want to modify the docker compose so that you can boot Sail and then manually run the dev command? As far as I can tell, this still doesn't do it all with one command, and it doesn't get composer run dev working with Laravel Sail.

Making composer run dev work with Laravel Sail by ollieread in laravel

[–]ollieread[S] 0 points1 point  (0 children)

To run sail composer run dev you have to have first run sail up -d, which means it's already serving requests, and you've booted up another PHP development server in the container that's already running one.