-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Short guide explaining how to migrate from Silex to Symfony 4+ Flex #8678
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
|
|
I should be migrating a project pretty soon. Not that these are particularly hard to migrate in my case, but my main concerns are:
|
My First Upgrade from Silex 2 to Symfony 4 / FlexThis is just a few notes on the way I approached my first cut-over of a project from Silex to Symfony 4 & Flex. The most important thing I think I would point out for those of us very used to Silex is:
Stuff might feel "different" or "unnatural" at first, but you quickly adapt and grow attached to the change. Before you go too far, give this a good read: … don't try to "get" everything now, but having some of it in your mental view will help a lot of this "click" pretty quickly. Next thing I found valuable was to Then I did a bunch of
A huge wall you can hit at this point is copying these over, pressing F5 in your browser and watching everything crash. 😄 What I chose to do at this point was to edit my App\:
resource: '../src/*'
exclude: '../src/{Entity,Migrations,Repository,Tests}'
App\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments'] That stopped the DI compiler from scanning every class in HUGE NOTE: This approach circumvents a lot of what makes autowiring awesome, you wouldn't normally do this on a new project, but it also allows you to slowly progress though your migration without too much pain. Important tip, you two best friends at this point in time:
😉 Next, I went through each of my own project's service providers and added the services one by one (as needed) to For example, a Twig extension's runtime class: App\Twig\Extension\MyRuntime:
autowire: true
tags:
- { name: twig.runtime } Once you have your base serviced looking like they're wired up, move onto your controllers. I enabled them in my App\Controller\MyFirstController:
tags: ['controller.service_arguments'] The allowed me to step through each one, get it loading and move on. Depending on dependencies you might have to jump through a few iterations of this process. Depending on the size and complexity of your project, this should get a lot of them close to cut-over. My first one was less than two hours to migrate. |
We have an enterprise-level silex app and looked a way to convert only the framework layer about 2 weeks ago.
|
Middlewares are just event listeners under the hood. You should be able to convert all of your middlewares to event subscribers before migrating to Symfony. Examples: |
I have prepared a small script to export routes from a Silex application. Maybe this is helpful for someone here: https://gist.github.com/derrabus/4d7b7b3a6ffc0c1ccc1037ce2a66b13c |
Learned today about SILEX dead sentece. If you don't like Synfony 4 I think SLIM is a great alternative very similar to Silex. Is micro, is based on Pimple, it's PSR7, has middleware support, have a great community. I think would very easy to migrate from silex to slim, maybe easier than to Symfony 4. |
@FbN not sure about that "easier to SLIM than Symfony 4/Flex":
There are probably a lot more points i'm not even aware of, yet. EDIT: I'm not really awake, yet, so i forgot to think about how these "difficult" migration steps actually compare to what one has to do to migrate to Symfony 4/FLEX. |
Please don't turn this thread into a framework battle. |
I was thinking I would migrate to Symfony 4, but it so much complex just a few routes and I have to add in yml, services, console, do not need it at all, it is already overloaded by using twig anyway, I will keep Silex, it is complete as it is. |
Shall we close here? As time passes, this is less and less needed. |
I agree. Let's close this as "won't fix". Thanks! |
Uh oh!
There was an error while loading. Please reload this page.
Silex ends as a project in June 2018. Lots of people still using it. Even if Sf4 + Flex ideas are pretty similar to Silex, it takes some time to learn the new concepts and philosophy.
Could we prepare a short upgrading guide for Silex users? It wouldn't be a comprehensive and ultra detailed guide, just a quick overview of the main changes: where to put the app config, how to define services, controllers + routes with annotations, etc.
If you are a Silex developer, please add a comment here telling us what would be the most important things to explain. Thanks!
The text was updated successfully, but these errors were encountered: