Tag: Magento

  • Using ddev for local PHP development

    For me, one of the discoveries of 2024, has been ddev, a tool to manage PHP (and other) environments, based on Docker images.

    ddev logo
    Docker-based PHP development environments.

    In the last months I have been very happy using this project. It allows me to work locally on my source files and assets while at the same time have a specific environment with the exact server configuration that I need.

    Let me sum up some cases where it really came in a handy:

    • I ran into ddev for the first time when trying out a sample project for craft cms. The instructions to get the project up and running were surprisingly concise:
    git clone https://github.com/craftcms/europa-museum.git
    cd europa-museum
    ddev start
    ddev craft db/restore seed.sql
    • Converting an existing WordPress setup? Just run ddev config and ddev start.
    • Pull in a database dump from production? Configure a provider (ok that’s a little bit more work if you’re not on one of the predefined hosting providers)
    • want to add an extra container, say ElasticSearch? no problem.
    • Want to inspect the database? I run ddev sequelace and I’m in the database, editing the data.
    • run ddev mailpit and see the mails that have been sent out, in a Gmail like UI, or download them as a PNG screenshot
    • Boot that old Magento shop? Set the right PHP version, composer version, mysql version, run some terminal commands with ddev ssh and we’re up and running.
    • importing a database throws an error Unknown collation utf8mb4_0900_ai_ci? just switch from mariadb to mysql, run ddev restart and import again.
    • Want to run PHP with Xdebug? just drop an xdebug.ini in the correct config directory
    • I’m working on a Django setup, with extra startup scripts, an MQTT client and a Nuxt/Vue frontend and I hope to find the time to configure that for ddev as well. That would mean that starting ddev starts the full stack, all on the right ports and the paths mapped correctly

    I guess it’s clear that I’m excited about this addition to my toolchain.

    I’ve always been running Apache, MySQL, mkcert, MailHog through homebrew. And while that served my needs, I had to reconfigure quite a lot every time I ran brew upgrade.


    PS: last week I sent a toot at @atpfm suggesting ddev as a solution for Marco’s work on Overcast. I was happy to hear Casey read/butcher my name on the podcast 😄.