1d7b4da903cbf015c96f19220277b9d652286ae1
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/Architecturefor all framework-related stuff like service providers, exception handler and more;app/Domainfor all framework-agnostic services related to the business logic of the application;app/Eloquentfor all database/ORM-related classes like models, observers and scopes;app/Infrastructurefor entry points to the application: CLI, HTTP and async ones.
Local setup
- run
sh setupor:
dcris an alias todocker-compose run --rm -u "$(id -u):$(id -g)"
-
clone the repository
-
initialize
.envfile and customize if neededcp .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_XDEBUGtotruein.envfile. - 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.inifile:
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
- It is possible to disable the Xdebug completely by setting the option xdebug.mode to off, or by setting the environment variable XDEBUG_MODE=off.
- See docs: (https://xdebug.org/docs/all_settings#mode)
CLI:
XDEBUG_MODE=off php artisan test
Docker container:
docker-compose run --rm -e XDEBUG_MODE=off php php artisan test
Description
Languages
PHP
55.7%
Vue
41.4%
JavaScript
2%
Blade
0.4%
CSS
0.3%
