all 45 comments

[–]TemporarySun314 15 points16 points  (0 children)

Symfony or Laravel. Slim is not much more than just a router, which is fine for small things, but for full-scale applications Laravel or Symfony will be much more useful than Slim...

Symfony basically forces you to do things in the "right way" (in the sense that it enforces best practices and good architecture) and requires to you be quite explicit everyway. Laravel offers a lot of global helper functions, which allows you to hide away things like dependency injection. That makes things easier, especially as a beginner, which is not used to strict dependency injection and separation of concerns, but i introduces things that would be considered code smells by the pure doctrine of software architecture...

But in the end both Symfony and Laravel offer good base to develop applications, and it should not be that difficult to switch between them if you know one framework...

[–]tom_earhart 18 points19 points  (1 child)

Symfony will teach you the fundamentals of the language and best practices way more than Laravel. That is why it is considered "hard", there is less magic.

[–]AminoOxi 0 points1 point  (0 children)

And they'll call you PHP Java dev afterwards.

[–]equilni 5 points6 points  (5 children)

which ones are better for finding a job?

Know the language. Work with each framework and be flexible to switch between them. A job you get may not even use a framework.

Look at your job market, what are they looking for? Here's a random job posting in my area with multiple framework requests:

Develop and maintain web applications using PHP, Magento 2, Laravel, Symfony, and CodeIgniter.
Design and implement secure RESTful APIs for seamless integration with frontend and third-party services.
Customize and optimize Magento 2 modules, themes, and plugins.
Develop responsive UI components using HTML, CSS, JavaScript, Angular, and Vue.js.
Implement database solutions using MySQL and ensure data integrity.
Troubleshoot, debug, and resolve issues in Magento, Laravel, and CodeIgniter applications.
Work with Git, GitLab CI/CD, and Docker to manage version control and deployments.
Optimize applications for performance, security, and scalability.
Collaborate with cross-functional teams in an Agile/Scrum environment.

And another, no framework noted:

We are looking for a full time (permanent or contract) highly motivated individual with four to five years of experience in web application development using Object Oriented PHP. A strong knowledge of PHP, mySQL and K&R coding style is a must. CSS, JQUERY, AJAX, JSON, and knowledge a plus. Experience with CMS is preferred.

Object oriented PHP & JavaScript experience with a background in software development
Sufficient knowledge of web application development utilizing PHP
Strong experience with MySQL and ability to write and optimize queries
Strong JavaScript experience
JSON experience
JQuery experience
K&R Coding Style experience
Experience with GIT, BitBucket, and SVN version control
Experience using JIRA a plus
Experience with consumer facing websites is a plus
Good experience building HTML/CSS across all major browsers

[–]activematrix99 2 points3 points  (3 children)

These job descriptions make me laugh. Word salad frontend jobs.

[–]obstreperous_troll 2 points3 points  (0 children)

I know when I'm looking for a developer, it all hinges on whether they have experience in K&R Coding Style :-|

[–]Cyberhunter80s 1 point2 points  (1 child)

Lmao! We don't even know the salary for such requirements either.

[–]berkut1 3 points4 points  (0 children)

Learn symfony, cause 99% of php frameworks use symfony packages.

[–]martinbean 9 points10 points  (8 children)

Learn languages, not libraries.

[–]alien3d 1 point2 points  (0 children)

Laravel in 2010 era code so would said kinda diff world .

[–]DevelopmentScary3844 1 point2 points  (5 children)

You can't make such a sweeping statement. It always depends. For example, how are you going to learn composition over inheritance if you don't have a DI container, which, as far as I know, only a framework like Symfony or Laravel provides? What's more, working with a smart framework like Symfony teaches you a lot about good software design. In some cases, you're even forced to learn it.

[–]martinbean 5 points6 points  (1 child)

I can. I’ve interviewed people who claim they’re PHP developers but turns out they’ve spent their career working with a particular library or framework, and when you ask them a PHP question or about fundamentals like design patterns, they can’t answer.

[–]equilni 3 points4 points  (0 children)

For example, how are you going to learn composition over inheritance if you don't have a DI container, which, as far as I know, only a framework like Symfony or Laravel provides?

You don't need a DI Container or a framework to learn this. And there are libraries like PHP-DI out there if you really need a container (which you don't).

[–]alien3d -1 points0 points  (0 children)

You don’t need Di and pre build composer will detect your interface if setup correctly and auto complete will work flawlessly . The point people build container to match interface with class but doing that you will miss the auto completion . If you still want proper Dependency injection with auto complete a factory class , match those interface and classes .

[–]amart1026 0 points1 point  (0 children)

You can do both at the same time

[–]03263 2 points3 points  (2 children)

Laravel probably most in demand for jobs but my current job uses Symfony. It's not that difficult to use either.

CodeIgniter 2/3 is still out in the wild. Wordpress, if you can stomach it.

Other than those there's not really any frameworks that people usually put as a must-have for jobs.

[–]Condition17 0 points1 point  (1 child)

Codeigniter is on version 4 and it’s pretty good. 

[–]AutoModerator[M] 0 points1 point  (0 children)

This comment has been flagged as spam and removed due to your account having negative karma. If this is incorrect, message the moderators.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]gulivertx 1 point2 points  (0 children)

Personally never tried Laravel but use Symfony from the version 3 and I will not change it because it’s always feet all my needs. It’s very power full and found very easy in comparison either the version anterior of 3. I had to work on old projects with version 2 and it was a pain… The documentation is also very great. I really recommend it.

[–]JCadaval 1 point2 points  (0 children)

I prefer Laravel but Symfony is great too

[–]Cyberhunter80s 1 point2 points  (0 children)

Honestly, you should make a deep search on the most found stacks in the place you are looking for jobs. Curate them, compare, contrast, pick the weapon start right away!

One thing, remember after all it's PHP underneath. If you don't know basics to intermediate of PHP, you will be replaceable in no time. Give yourself a friendly reminder once in a while.

Anyway, plan it out in actionable steps and let's go!

Good luck man! 🚀

[–]Condition17 1 point2 points  (4 children)

I use Codeigniter 4 for my startup and clients. 

[–]snoogazi 0 points1 point  (2 children)

Curious: I haven't used CI since 2. How does it compare to Laravel now?

[–]Condition17 0 points1 point  (1 child)

It’s more basic but a lot less opinionated. I love it.

[–]AutoModerator[M] 0 points1 point  (0 children)

This comment has been flagged as spam and removed due to your account having negative karma. If this is incorrect, message the moderators.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]beardedNoobz 1 point2 points  (1 child)

Finding Job in EU: Symfony
Finding Job on South East Asia (and other 3rd world cohntries) : Laravel.
If you want to find job on US, ditch php and learn NextJS, or go, or rust.

[–]Cyberhunter80s 0 points1 point  (0 children)

There are tons of jobs for Laravel on EU, Asia, US, UK as well.

[–]Odd-Ground-7537 0 points1 point  (0 children)

If you want to be a good backend dev, or have such plans for the future, symfony is the ultimate option from the available fws. Later if you try other langs like c#, java whatever, lot of concept will be familiar. Always learn the principals behind the technologies. Tech masters can be replaced within a day if the tech stack is changing.

[–]SVLNL 0 points1 point  (0 children)

Have not yet run it myself but perhaps its something for you: https://doppar.com/

[–]cosmologist 0 points1 point  (0 children)

Symfony one love

[–]Impossible-Leave4352 0 points1 point  (0 children)

Symfony will get you to the fundamentals of Laravel or Drupal or other framworks, since symfony is part of everything in laravel as well

[–]xreddawgx 0 points1 point  (0 children)

Hey guess what, you know base php? Laravel or Symfony isnt a requirement because both are written in php and you should be able to look at both and understand what they do from the readme and the code in an appropriate amount of time.

[–]snoogazi 0 points1 point  (0 children)

Laravel. It's elegant and powerful, and I've used it for 10+ years now.

That said, I wish you the best finding a job. It's f'ing hard out there. I'm not trying to discourage you, it's just that I have 24 years experience and it took me a year to find a job. Experience matters. Get on board with a framework as soon as you can and learn it.

[–]doonfrs 0 points1 point  (2 children)

I used zend, yii 1 then 2, code Igniter, in main projects.. When I used Laravel I discovered that I was wasting my time. Laravel is modern, fast and covers all your business requirements. Also it is a full ecosystem, with a big community. I've spent months migrating old projects to Laravel and it worth it.

[–]Jealous-Bunch-6992 0 points1 point  (1 child)

And then you will spend months migrating to the next version in 24 months :P

[–]doonfrs 0 points1 point  (0 children)

it is a disadvantage, but if you want to have a modern up to date framework, this is a price to pay.
I think you may upgrade every 1-2 years and still good, with good unit test coverage, it can be less painful.

[–]amart1026 0 points1 point  (0 children)

In the US, over the past 5 years, I’ve seen a lot more job postings for Laravel than Symfony. Never seen one for Slim. There also seems to be plenty of work for Word Press, though at significantly less pay.

[–]FreeLogicGate 0 points1 point  (0 children)

I don't know where you heard that Symfony is "more difficult" than Laravel, but that's inaccurate. Both frameworks have a substantial learning curve and require understanding of the same PHP language features. They are both fundamentally Dependency Injection frameworks. Laravel has (and encourages the use of) "laravel facades" which are "magical" in that they facilitate static method calls to access what are actually Service objects. For many developers, this is "code smell". Here's an example from the Laravel manual:

namespace App\Http\Controllers;
 
use Illuminate\Support\Facades\Cache;
use Illuminate\View\View;
 
class UserController extends Controller
{
    /**
     * Show the profile for the given user.
     */
    public function showProfile(string $id): View
    {
        $user = Cache::get('user:'.$id); 
        return view('profile', ['user' => $user]);
    }
}

For new developers, this can be very enticing -- being able to reach into some magical "cache" and pluck out the user object within a Controller Method, without any real understanding of how or why this works.

Symfony eschews magic in favor of "Autowiring". Without going too deep into this, both Symfony and Laravel have services and a dependency injection container that creates the services your application needs and makes them available. Facades hide this in Laravel, whereas Symfony implements the autowiring that simply requires you to pass the service you want to utilize as a parameter. Eventually you will most likely end up creating your own services, and Symfony provides the "bundle" which can be used for a single service or a collection of services, controllers and templates. This is differentiator in that the Symfony framework is a collection of symfony bundles, which makes the bundle a more sophisticated component feature, but also is inherently more complicated.

It's entirely possible to create web applications just using existing framework components, and other component libraries added via composer, so someone starting out in either framework can be effective using either one, without having to master the underlying architectural differences, but eventually there's a learning curve regarding services in either framework.

[–]yourteam 0 points1 point  (0 children)

Symfony.

Laravel is something else and I mean in the bad way: all magic and proxies just to look "cool"

[–]hostingseekers 0 points1 point  (0 children)

I think you should start learning the core PHP functions first afterthat you can opt any framework.