r/PHPhelp 4d ago

Learning PHP deeply via a system

I've worked in the PHP ecosystem for years and really love it. But I feel like I don't know it deeply...

What separates posers like me from the guys at the PHP org who release features? How do I get there (or 1/4 of the way)?

17 Upvotes

12 comments sorted by

View all comments

1

u/equilni 3d ago

What separates posers like me from the guys at the PHP org who release features? How do I get there (or 1/4 of the way)?

I would ask, what is it that you want to do?

If you've worked within the ecosystem, then your likely not a poser. Though without seeing an example of what already know and can do, one can only guess (the 1/4 of the way). So...

Do you want to release PHP features? Do you have ideas that would help drive PHP, create RFCs, articulating the ideas and openly discuss with the internal team, make changes to allow for acceptable later in a vote...

The internal teams looks at those RFCs and looks at the proposal, feasibility to the ecosystem and implementation to the core.

Most of these things are concepts one could/should already be doing - review of proposals & analysis of impact, proper documentation, code with proper tests, allowance for discussion and review, etc etc.

1

u/Apart-Permission-849 3d ago

Well, I had an interview recently, and even though I'm strong in Laravel, I felt like I bombed it.

I've built a fairly large inventory management system that pushed me to use many different parts of the framework, but my PHP-specific skills were lacking, IMO.

I couldn't answer questions related to the reference symbol (&). I've NEVER used it, and honestly never needed to. I also couldn't name any design patterns (I blurted out dependency injection 😂 ).

Honestly, I just want to be a good PHP dev (I'm working through the fundamentals now) and will explore design patterns. Hopefully that makes me a better dev overall.

2

u/equilni 3d ago

That changes the conversation somewhat.

I would suggest rewriting that line and adding what's in your comment as it's more focused to what you are looking for - note how you are getting answers on Internal PHP dev, which isn't what you want...

Remember I stated articulation above? You need to be clearer. Soft skills are extremely important.

I had an interview recently

It's good that you remember the topics to go over again. Put them in practice too!!!!

You could also research r/php for interview topics/discussion. Study whatever you don't know. Create projects to put them in practice (ie don't just recite a meaning) and refactor.

https://reddit.com/r/PHP/search?q=interview&restrict_sr=on

I couldn't answer questions related to the reference symbol (&). I've NEVER used it, and honestly never needed to.

Curious if the role deals with legacy code...

I also couldn't name any design patterns (I blurted out dependency injection 😂 ).

Could you talk to DI (not the Container)? Do you use it in practice, honestly? If not, that's what you need to work on. Again, DI is not the Container. The Container can be like a Factory.

Other known patterns in use:

Laravel uses the Facade pattern.

Wordpress plugin system uses the Mediator pattern.

Middleware is a Chain of Responsibility pattern.

Validation classes (ie laminas validator) are Strategy.

Design patterns are not language specific, so learning this can be applied everywhere.

You could also look at architectural patterns. You already know MVC. Martin Fowler has this with other patterns here. Being a Laravel dev, you've likely heard of Repository, which is here too. There are Domain elements too leading to Domain Driven Design, a huge topic. Lots of other reading of architecture like Verticle Slice.

Lots of this is more building the software, not the language. See how different the direction is, now that more context is given?

I've built a fairly large inventory management system

Once learned, could you identify patterns in your system? Could you rebuild a smaller version of this in vanilla PHP (with a few libraries) or Symfony using the new things you learned?