Transitioning from PHP to Django on the sly
summary
Migrates a large legacy PHP site to Django over three years by running PHP and Django in parallel and routing specific URLs in the front-end web server, both stacks sharing the same database. Converts view logic one-by-one — convert views one-by-one — keeping URLs and behavior identical and accepting no new features during conversion. Uses Django, Python, web-server routing and the DB; outcome is a mostly-Django codebase, far less code, easier debugging, and a live site throughout the migration.
AI-written summary · about
chapters (32)
- 0:00Transitioning from PHP to Django On the Sly
- 1:18You can make the switch to Django.
- 2:04Starting from scratch is a terrible idea.
- 3:50Keep PHP running and transition one step at a time.
- 4:52This talk is for me. (of 3 years ago)
- 9:18Win over your team, your boss and your client.
- 9:45Why Python?
- 11:25Why Django?
- 13:20Everyone wins!
- 14:22Sudden change hurts your client.
- 15:37Use behind the scenes magic.
- 18:25Convert view functionality exactly.
- 19:33Minimise time between working PHP and working Django.
- 21:42Neutralise the Rails fans in your team.
- 21:54Negotiate a maintenance budget with client.
- 22:20Start with a simple PHP script.
- 22:35Pony up.
- 23:23Delete some PHP :
- 23:37Rest and repeat.
- 24:41You win!
- 25:21Tip: Take authentication away from PHP a soon as possible.
- 25:42Tip: Phone ahead.
- 26:41Tip: Mix in new shiny things.
- 27:01Win: Small sprints feel good.
- 27:35It's life as usual for the client.
- 27:52Steady cashflow.
- 28:05Off-peak scheduling.
- 28:26Pain point: It's a marathon.
- 28:57Pain point: Conversion alone shows little visible progress.
- 29:34Pain point: Occasional dependency hell.
- 30:16Bad alternative: "Would you mind just adding..."
- 30:45How's that working out?
related talks
28mThe promised Django Land; the tale of one team’s epic journey...
36mA Python Takeover
47mPorting Django apps to Python 3
41mProduction Django: Building a Highly Scalable, Secure Django Site
27mHow We Migrated 3.8 Million Lines of Python 2 Without Interrupting Deve...
19mJourney into the Deep World of Web Development
36mA Python Takeover
26mPython 2 is dead! Drag your old code into the modern age
