/sulu-workshop

Symfony Live Berlin 2019 Workshop

Primary LanguagePHP

Symfony Live Berlin 2019 Workshop

This repository contains the project template, assignments and example solution code for the Sulu workshop at the Symfony Live Berlin 2019. The workshop consists of 12 assignments that guide you through creating a small website that integrates two simple custom entities using the Sulu content management system. The project builds upon the official sulu/skeleton template and adds some project specific libraries such as Bootstrap or Symfony Encore.

The assignments of the workshop are located in the assignments folder of the repository. Additionally, this repository includes an open pull request that contains the example solution code for each assignment on this repository. Feel free to use the comment feature on these pull requests for asking questions or providing additional context about the solution code.

Requirements

  • PHP 7.2 or higher
  • Relational Database like MySQL, MariaDB or PostgreSQL

Optional requirements

Getting started

Setting up your database

If you choose to run your services with docker you can startup your database by executing the following command:

docker-compose up

If you prefer to use your local database you can configure your credentials in a .env.local file in the root directory of the project:

DATABASE_URL=mysql://DB_USER:DB_PASSWORD@127.0.0.1:3306/DB_NAME

Installing the dependencies

Use composer to install the dependencies of the project:

composer install --optimize-autoloader

Initialize the Sulu Database

Run the following command to initialize the database that will be used by Sulu:

bin/console sulu:build dev --destroy

Run Webserver

You can startup the built-in PHP web-server with:

php -S localhost:8009 -t public config/router.php

If you have the SYMFONY CLI Tools installed and want to increase your performace you can also use the following command to startup the SYMFONY webserver:

symfony server:start

Development

The project setup in the repository includes several development tools that help you to improve the quality of your code

PHPUnit

The project already contains some unit tests and functional tests. They can be executed with the following commands:

# create and update test database
composer bootstrap-test-environment

# execute all test cases
composer test

You can can pass additional phpunit arguments by appending -- <arguments> to the composer test command.

composer test -- --stop-on-fail

PHP-CS-Fixer

To keep your code consistent you can automatically reformat your code with the following command:

composer php-cs-fix

PHPStan

PHPStan helps you to catch bugs before they actually occur by statically analyzing your code. Use following command to run it:

composer phpstan