make
cli commandThe User Service is designed to manage user accounts and authentication within the VilnaCRM ecosystem. It provides essential functionalities such as user registration and authentication, implemented with OAuth Server, REST API, and GraphQL, ensuring seamless integration with other components of the CRM system.
This software is distributed under the Creative Commons Zero v1.0 Universal license. Please read LICENSE for information on the software availability and distribution.
You can clone this repository locally or use Github functionality "Use this template"
Install the latest docker and docker compose
Use make
command to set up project
make start
Use make
command to automatically install all needed dependencies
make install
Use make
command to run migrations
make doctrine-migrations-migrate
Go to browser and open the link below to access REST API docs
And using the link below you can access the GraphQL documentation
Also, you can see architecture diagram using link below
That's it. You should now be ready to use user service!
You can use make
command to easily control and work with project locally.
Execute make
or make help
to see the full list of project commands.
The list of the make
possibilities:
all-tests Run unit, integration, and e2e tests
average-load-tests Run load tests with average load
bats Bats is a TAP-compliant testing framework for Bash
behat A php framework for autotesting business expectations
build Builds the images (PHP, caddy)
cache-clear Clears and warms up the application cache for a given environment and debug mode
cache-warmup Warmup the Symfony cache
changelog-generate Generate changelog from a project's commit messages
check-requirements Checks requirements for running Symfony and gives useful recommendations to optimize PHP for Symfony.
check-security Checks security issues in project dependencies. Without arguments, it looks for a "composer.lock" file in the current directory. Pass it explicitly to check a specific "composer.lock" file.
commands List all Symfony commands
composer-validate The validate command validates a given composer.json and composer.lock
coverage Create the code coverage report with PHPUnit
create-oauth-client Run mutation testing
doctrine-migrations-generate Generates a blank migration class
doctrine-migrations-migrate Executes a migration to a specified version or the latest available version
e2e-tests Run end-to-end tests
down Stop the docker hub
infection Run mutation testing
install Install vendors according to the current composer.lock file
update update vendors according to the current composer.json file
load-fixtures Build the DB, control the schema validity, load fixtures and check the migration status
logs Show all logs
new-logs Show live logs
phpcsfixer A tool to automatically fix PHP Coding Standards issues
phpinsights Instant PHP quality checks and static analysis tool
phpunit The PHP unit testing framework
psalm A static analysis tool for finding errors in PHP applications
psalm-security Psalm security analysis
purge Purge cache and logs
sh Log to the docker container
start Start docker
stop Stop docker and the Symfony binary server
smoke-load-tests Run load tests with minimal load
spike-load-tests Run load tests with a spike of extreme load
up Start the docker hub (PHP, caddy)
Start reading at the GitHub wiki. If you're having trouble, head for the troubleshooting guide as it's frequently updated.
You can generate complete API-level documentation by running phpdoc
in the top-level folder, and documentation will appear in the docs
folder, though you'll need to have PHPDocumentor installed.
If the documentation doesn't cover what you need, search the many questions on Stack Overflow, and before you ask a question, read the troubleshooting guide.
Tests use PHPUnit 9 and Behat.
If this isn't passing, is there something you can do to help?
We have integrated an automated repository synchronization feature using the actions-template-sync GitHub Action. This allows the repository to stay in sync with a designated template repository.
This workflow automatically creates a pull request in this repository whenever changes are detected in the template repository, ensuring that the latest updates from the template are applied.
By default, the workflow runs every Monday at 9:00 AM UTC. You can also manually trigger it from the GitHub Actions tab.
source_repo_path
must point to the repository you want to sync from (e.g., VilnaCRM-Org/php-service-template
).You can see a sample configuration for the synchronization workflow, stored in .github/workflows/template-sync.yml.
Automated synchronization ensures that projects relying on this template always benefit from the latest features, improvements, and bug fixes without the need for manual intervention. This helps maintain consistency across multiple projects, reduces the likelihood of outdated code, and simplifies maintenance by automating the propagation of changes from the template. In turn, it saves time and reduces the effort required to keep dependent projects aligned with best practices and new developments.
Please disclose any vulnerabilities found responsibly – report security issues to the maintainers privately.
See SECURITY and Security advisories on GitHub.
Please submit bug reports, suggestions, and pull requests to the GitHub issue tracker.
We're particularly interested in fixing edge cases, expanding test coverage, and updating translations.
If you found a mistake in the docs, or want to add something, go ahead and amend the wiki – anyone can edit it.
Development time and resources for this repository are provided by VilnaCRM, the free and opensource CRM system.
Donations are very welcome, whether in beer 🍺, T-shirts 👕, or cold, hard cash 💰. Sponsorship through GitHub is a simple and convenient way to say "thank you" to maintainers and contributors – just click the "Sponsor" button on the project page.
See changelog.