#!/bin/bash echo "*** Starting New Symfony Project ***" # check that $1 folder does not exit [ -d "$1" ] && echo "Folder $1 already exists" && exit 1 ################################################################################ # Check composer installed ################################################################################ composer -v > /dev/null 2>&1 COMPOSER=$? if [[ $COMPOSER -ne 0 ]]; then echo 'Composer is not installed' echo 'Checkout how to Install Composer here: https://www.nickyeoman.com/blog/php/install-composer-on-ubuntu/' echo 'Once installed, try running this script again' exit 1 else echo "Composer is installed and ready to go." fi ################################################################################ # Symfony bin installed ################################################################################ symfony help > /dev/null 2>&1 SYMFONY=$? if [[ $SYMFONY -ne 0 ]]; then echo 'Symfony is not installed' echo 'Do this: https://symfony.com/download' exit 1 else symfony new $1 cd $1 echo "New symfony project called $1 created." fi ################################################################################ # Create directories ################################################################################ echo "Creating directories: sass, scripts" mkdir -p sass scripts ################################################################################ # Twig ################################################################################ echo "Creating scaffolding Twig templates in views directory" composer require twig composer require nickyeoman/nytwig mv config/packages/twig.yaml config/packages/twig.yaml.bak wget https://git.gopo.li/nick/symfony/raw/branch/main/twig.yaml config/packages/twig.yaml echo "Your twig.yaml config file has been replaced, remove the bak if you are happy." ################################################################################ # SASS ################################################################################ echo "Creating SASS directory for css" composer require nickyeoman/nytwig touch sass/$1.sass echo '@import ../vendor/nickyeoman/sasslibrary/master.sass' > sass/$1.sass echo "SASS installed you still need to run sass sass/$1.sass public/css/main.css" ################################################################################ # Symfony components ################################################################################ composer require symfony/process composer require asset composer require annotations ################################################################################ # Docker ################################################################################ # You need the following variables in your env for docker-compose echo '' >> .env echo '# For Docker compose' >> .env echo 'DOCKERNAME=symfony' >> .env echo 'DOCKERIMAGE=YOUR_NAME/YOUR_IMAGE_NAME' >> .env echo 'DOCKERVER=latest' >> .env echo 'DOCKERNET=DOCKER_NETWORK_NAME_FOR_PROXY' >> .env echo 'DBHOST=mariadb' >> .env GEN=`echo $RANDOM | md5sum | head -c 12` echo "MYSQL_ROOT_PASSWORD=${GEN}" >> .env GEN=`echo $RANDOM | md5sum | head -c 12` echo "DBPASSWORD=${GEN}" >> .env echo 'MYSQL_DATABASE=theapp' >> .env GEN=`echo $RANDOM | md5sum | head -c 4` echo "MYSQL_DATABASE=theuser${GEN}" >> .env echo "Creating a docker-compose" wget https://raw.githubusercontent.com/nickyeoman/phpframework/main/docker/docker-compose.yml echo "Creating a Dockerfile" wget https://raw.githubusercontent.com/nickyeoman/phpframework/main/docker/Dockerfile ################################################################################ # Instructions ################################################################################ echo "Symfony Installed" echo "sudo docker-compose up -d" echo "For more, go to: https://www.nickyeoman.com"