Coder Social home page Coder Social logo

lando-symfony's Introduction

Lando environment builder

This composer package allows you to easily configure a Lando development environment for Symfony projects.

Instead of having to copy .lando.yml for every project, you can start with a clean lando.yml file with only a few required settings. Using the builder you can then generate the full .lando.yml file which will actually be used to spin up your development environment.

Development environment info

Included services

  1. Nginx webserver
  2. PHP 7.1 (Xdebug ready)
  3. MySQL database
  4. Node.js container
  5. Blackfire profiler
  6. phpMyAdmin
  7. ELK stack
  8. Mailhog
  9. Memcached
  10. Headless chrome
  11. Unoconv
  12. PDFtk

Included Lando tooling

  • sf: Run Symfony console commands
    • target: PHP
    • alias for: $ php bin/console
    • example: $ lando sf about
  • diff: Generate a database migration by comparing your current database to your mapping information
    • target: PHP
    • alias for: $ php bin/console doctrine:migrations:diff
    • example: $ lando diff
  • migrate: Execute a database migration to a specified version or the latest available version
    • target: PHP
    • alias for: $ php bin/console doctrine:migrations:migrate
    • example: $ lando migrate prev
  • cache: Clears the Symfony cache
    • target: PHP
    • alias for: $ php bin/console cache:clear
    • example: $ lando cache
  • warmup: Warms up an empty cache
    • target: PHP
    • alias for: $ php bin/console cache:warmup
    • example: $ lando warmup
  • blackfire: Profile a Symfony console command using blackfire
    • target: PHP
    • alias for: $ blackfire run php bin/console
    • example: $ lando blackfire about
  • yarn: Run the Yarn package manager
    • target: Node.js
    • alias for: $ yarn
    • example: $ lando yarn add bootstrap
  • encore: Runs Webpack Encore
    • target: Node.js
    • alias for: $ node_modules/.bin/encore
    • example: $ lando encore dev --watch

Usage

Installing

Install the package with composer, and make sure to have a .env file in your project root containing all variables defined in .env.dist.

$ composer require --dev torfs-ict/lando-symfony

Setting up

A sample lando.yml file can be found in lando.yml.dist. If this file doesn't exist, you can have the builder create one for you.

name: my-project

proxy:
  nginx:
    - "my-project.dev.local.torfs.org"
  mailhog:
    - "my-project.mhg.local.torfs.org"
  phpmyadmin:
    - "my-project.pma.local.torfs.org"
  elk:
    - 'my-project.elk.local.torfs.org:5601'

tooling:
  worker:
    service: appserver
    description: Runs the background worker broker
    cmd: php bin/console app:worker --no-debug -vvv

Required settings

The only mandatory settings are the project name and proxy domains. Should your project have removed a pre-defined service, you should omit this from the proxy configuration as well.

Customizing the environment

When building the environment, your lando.yml file will be merged with the default configuration file, so you can customize as you see fit.

Removing services

Should you want to remove a service, you can simple set it to null in your lando.yml file. The example below illustrates how to remove the elk service.

Do note that if you remove a service which requires a proxy domain, you need to remote the service from the proxy settings as well.

name: my-project

proxy:
  nginx:
    - "my-project.dev.local.torfs.org"
  mailhog:
    - "my-project.mhg.local.torfs.org"
  phpmyadmin:
    - "my-project.pma.local.torfs.org"

services:
  elk: ~

Building the environment

Once your lando.yml and .env files are in place (or at least the .env file) you can generate the actual .lando.yml file by running the build script.

$ vendor/bin/lando

lando-symfony's People

Contributors

kristoftorfs avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

lando-symfony's Issues

Planned features

  • docker-compose.yaml
  • Rename .lando.yml.dist to .lando.yml.tpl
  • Add sample lando.yml.dist to repository
  • Force proxy URLs to be set in the user file
  • Add tooling for common Symfony commands

Include PDFtk service

Add to lando.yml.tpl:

services:
  pdftk:
    type: compose
    services:
      image: torfsict/docker-pdftk-webservice
      command: php /app/bin/console server:run 0.0.0.0:80

Add to .env.dist:

DATA_PDFTK_HOST=pdftk

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.