Skip to content

Commit

Permalink
Kick off
Browse files Browse the repository at this point in the history
  • Loading branch information
f3l1x committed Aug 3, 2023
1 parent 7125810 commit 095a655
Show file tree
Hide file tree
Showing 44 changed files with 7,763 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .build/phpstan-doctrine.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php declare(strict_types = 1);

require __DIR__ . '/../vendor/autoload.php';

return App\Bootstrap::boot()
->createContainer()
->getByType(Doctrine\ORM\Decorator\EntityManagerDecorator::class);
Binary file added .docs/assets/console.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .docs/assets/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# EditorConfig is awesome: http://EditorConfig.org

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = tab
indent_size = tab
tab_width = 4

[*.{json,yaml,yml,md}]
indent_style = space
indent_size = 2
10 changes: 10 additions & 0 deletions .github/.kodiak.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version = 1

[merge]
automerge_label = "automerge"
blacklist_title_regex = "^WIP.*"
blacklist_labels = ["WIP"]
method = "rebase"
delete_branch_on_merge = true
notify_on_conflict = true
optimistic_updates = false
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: composer
directory: "/"
schedule:
interval: daily
labels:
- "dependencies"
- "automerge"
17 changes: 17 additions & 0 deletions .github/workflows/codesniffer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: "Codesniffer"

on:
pull_request:

push:
branches: [ "*" ]

schedule:
- cron: "0 8 * * 1"

jobs:
codesniffer:
name: "Codesniffer"
uses: contributte/.github/.github/workflows/codesniffer.yml@v1
with:
php: "8.2"
18 changes: 18 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: "Coverage"

on:
pull_request:

push:
branches: [ "*" ]

schedule:
- cron: "0 8 * * 1"

jobs:
coverage:
name: "Nette Tester"
uses: contributte/.github/.github/workflows/nette-tester-coverage.yml@v1
with:
php: "8.2"
make: "init coverage"
18 changes: 18 additions & 0 deletions .github/workflows/phpstan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: "Phpstan"

on:
pull_request:

push:
branches: [ "*" ]

schedule:
- cron: "0 8 * * 1"

jobs:
phpstan:
name: "Phpstan"
uses: contributte/.github/.github/workflows/phpstan.yml@v1
with:
php: "8.2"
make: "init phpstan"
18 changes: 18 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: "Nette Tester"

on:
pull_request:

push:
branches: [ "*" ]

schedule:
- cron: "0 8 * * 1"

jobs:
test82:
name: "Nette Tester"
uses: contributte/.github/.github/workflows/nette-tester.yml@v1
with:
php: "8.2"
make: "init tests"
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# IDE
.idea

# Composer
/vendor

# Nette
/var
/config/local.neon

# Docker
/.data
7 changes: 7 additions & 0 deletions .phpstorm.meta.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php

namespace PHPSTORM_META {
override(\src\EntityManager::getRepository(0), map([
'\App\Domain\User\User' => App\Domain\User\UserRepository::class,
]));
}
87 changes: 87 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
############################################################
# PROJECT ##################################################
############################################################
.PHONY: project
project: install setup

.PHONY: init
init:
cp config/local.neon.example config/local.neon

.PHONY: install
install:
composer install

.PHONY: setup
setup:
mkdir -p var/tmp var/log
chmod 0777 var/tmp var/log

.PHONY: clean
clean:
find var/tmp -mindepth 1 ! -name '.gitignore' -type f,d -exec rm -rf {} +
find var/log -mindepth 1 ! -name '.gitignore' -type f,d -exec rm -rf {} +

############################################################
# DEVELOPMENT ##############################################
############################################################
.PHONY: qa
qa: cs phpstan

.PHONY: cs
cs:
vendor/bin/codesniffer app tests

.PHONY: csf
csf:
vendor/bin/codefixer app tests

.PHONY: phpstan
phpstan:
vendor/bin/phpstan analyse -c phpstan.neon --memory-limit=512M

.PHONY: tests
tests:
vendor/bin/tester -s -p php --colors 1 -C tests

.PHONY: coverage
coverage:
vendor/bin/tester -s -p phpdbg --colors 1 -C --coverage ./coverage.xml --coverage-src ./app tests

.PHONY: dev
dev:
NETTE_DEBUG=1 NETTE_ENV=dev php -S 0.0.0.0:8000 -t www

.PHONY: consume
consume:
XDEBUG_MODE=debug XDEBUG_SESSION=1 bin/console messenger:consume redis

.PHONY: build
build:
NETTE_DEBUG=1 bin/console orm:schema-tool:drop --force --full-database
NETTE_DEBUG=1 bin/console migrations:migrate --no-interaction

.PHONY: migrate
migrate:
NETTE_DEBUG=1 bin/console migrations:migrate --no-interaction

############################################################
# DOCKER ###################################################
############################################################
.PHONY: docker-up
docker-up:
docker compose up

.PHONY: docker-in
docker-in:
docker compose exec app bash

############################################################
# DEPLOYMENT ###############################################
############################################################
.PHONY: deploy
deploy:
$(MAKE) clean
$(MAKE) project
$(MAKE) build
$(MAKE) clean
87 changes: 87 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
![](https://heatbadger.now.sh/github/readme/contributte/ddd-skeleton/)

<p align=center>
<a href="https://github.com/contributte/ddd-skeleton/actions"><img src="https://badgen.net/github/checks/contributte/ddd-skeleton/master"></a>
<a href="https://coveralls.io/r/contributte/ddd-skeleton"><img src="https://badgen.net/coveralls/c/github/contributte/ddd-skeleton"></a>
<a href="https://packagist.org/packages/contributte/ddd-skeleton"><img src="https://badgen.net/packagist/dm/contributte/ddd-skeleton"></a>
<a href="https://packagist.org/packages/contributte/ddd-skeleton"><img src="https://badgen.net/packagist/v/contributte/ddd-skeleton"></a>
</p>
<p align=center>
<a href="https://packagist.org/packages/contributte/ddd-skeleton"><img src="https://badgen.net/packagist/php/contributte/ddd-skeleton"></a>
<a href="https://github.com/contributte/ddd-skeleton"><img src="https://badgen.net/github/license/contributte/ddd-skeleton"></a>
<a href="https://bit.ly/ctteg"><img src="https://badgen.net/badge/support/gitter/cyan"></a>
<a href="https://bit.ly/cttfo"><img src="https://badgen.net/badge/support/forum/yellow"></a>
<a href="https://contributte.org/partners.html"><img src="https://badgen.net/badge/sponsor/donations/F96854"></a>
</p>

<p align=center>
Website 🚀 <a href="https://contributte.org">contributte.org</a> | Contact 👨🏻‍💻 <a href="https://f3l1x.io">f3l1x.io</a> | Twitter 🐦 <a href="https://twitter.com/contributte">@contributte</a>
</p>

<p align=center>
<img src="https://github.com/contributte/ddd-skeleton/blob/master/.docs/assets/screenshot.png?raw=true">
<img src="https://github.com/contributte/ddd-skeleton/blob/master/.docs/assets/console.png?raw=true">
</p>

-----

## Goal

Main goal is to try DDD with [Nette](https://nette.org).

## Installation

You will need `PHP 8.2+` and [Composer](https://getcomposer.org/).

Create project using composer.

```bash
composer create-project -s dev contributte/ddd-skeleton acme
```

Now you have application installed. It's time to run it.

## Startup

### HTTP

You need to spin webserver to display your application.

```bash
make dev
# php -S 0.0.0.0:8000 -t www
```

Then visit [http://localhost:8000](http://localhost:8000) in your browser.

### Database

You need to execute migrations.

```bash
make migrate
# NETTE_DEBUG=1 bin/console migrations:migrate --no-interaction
```

### Docker

You need to spin docker containers with redis and postgres to store & read messages according to your transports.

```bash
make docker-up
# docker compose up
```

## Development

See [how to contribute](https://contributte.org/contributing.html) to this package.

This package is currently maintaining by these authors.

<a href="https://github.com/f3l1x">
<img width="80" height="80" src="https://avatars2.githubusercontent.com/u/538058?v=3&s=80">
</a>

-----

Consider to [support](https://contributte.org/partners.html) **contributte** development team. Also thank you for using this project.
37 changes: 37 additions & 0 deletions app/Bootstrap.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php declare(strict_types = 1);

namespace App;

use Contributte\Bootstrap\ExtraConfigurator;
use Contributte\Nella\Boot\Bootloader;
use Contributte\Nella\Boot\Preset\NellaPreset;
use Nette\Application\Application as WebApplication;
use Symfony\Component\Console\Application as ConsoleApplication;

final class Bootstrap
{

public static function boot(): ExtraConfigurator
{
return Bootloader::create()
->use(NellaPreset::create(__DIR__))
->boot();
}

public static function runWeb(): void
{
self::boot()
->createContainer()
->getByType(WebApplication::class)
->run();
}

public static function runCli(): void
{
self::boot()
->createContainer()
->getByType(ConsoleApplication::class)
->run();
}

}
16 changes: 16 additions & 0 deletions app/Domain/User/CreateUserCommand.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php declare(strict_types = 1);

namespace App\Domain\User;

class CreateUserCommand
{

public function __construct(
public string $username,
public string $password,
public int $role,
)
{
}

}
Loading

0 comments on commit 095a655

Please sign in to comment.