Skip to content

Latest commit

 

History

History
110 lines (69 loc) · 2.8 KB

readme.md

File metadata and controls

110 lines (69 loc) · 2.8 KB

He's watching you

Toby

HR software you love to hate

Architecture

Directory structure little differs from a standard Laravel tree. We decided to refactor main app directory to better suit our needs. All classes are grouped in four major categories:

  • app/Architecture for all framework-related stuff like service providers, exception handler and more;
  • app/Domain for all framework-agnostic services related to the business logic of the application;
  • app/Eloquent for all database/ORM-related classes like models, observers and scopes;
  • app/Infrastructure for entry points to the application: CLI, HTTP and async ones.

Local setup

  • run sh setup or:

dcr is an alias to docker-compose run --rm -u "$(id -u):$(id -g)"

  • clone the repository

  • initialize .env file and customize if needed

    cp .env.example .env
    
  • build containers

    docker-compose build --no-cache --pull
    
  • run containers

    docker-compose up -d
    
  • install composer packages

    dcr php composer install
    
  • generate app key

    dcr php php artisan key:generate
    
  • generate storage link

    dcr php php artisan storage:link
    
  • migrate and seed database

    dcr php php artisan migrate --seed
    
  • install npm packages

    dcr node npm install
    
  • build assets

    dcr node npm run dev
    
  • place google credentials here: /google-credentials.json (how to obtain the credentials)

Available containers (local)

  • web - nginx HTTP server
  • php - php and composer stuff
  • node - npm stuff
  • pgsql - database for local development
  • mailhog - for emails preview

Running tests

If xDebug is installed, set environment variable XDEBUG_MODE=off to improve performance

  dcr -e XDEBUG_MODE=off php php artisan test

Code style check

  dcr php composer cs
  dcr php composer csf
  dcr node npm run lint
  dcr node npm run lintf

xDebug

  • To use xDebug you need to set DOCKER_INSTALL_XDEBUG to true in .env file.
  • Then rebuild php container docker-compose up --build -d php.
  • You can also set up xDebug params (see docs https://xdebug.org/docs/all_settings) in docker/dev/php/php.ini file:

Default values for xDebug:

xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.log_level=0

Disable xDebug

CLI:

XDEBUG_MODE=off php artisan test

Docker container:

docker-compose run --rm -e XDEBUG_MODE=off php php artisan test