237 lines
8.7 KiB
Markdown
237 lines
8.7 KiB
Markdown

|
|
|
|
<p align=center>
|
|
<a href="https://github.com/contributte/webapp-skeleton/actions"><img src="https://badgen.net/github/checks/contributte/webapp-skeleton/master"></a>
|
|
<a href="https://coveralls.io/r/contributte/webapp-skeleton"><img src="https://badgen.net/coveralls/c/github/contributte/webapp-skeleton"></a>
|
|
<a href="https://packagist.org/packages/contributte/webapp-skeleton"><img src="https://badgen.net/packagist/dm/contributte/webapp-skeleton"></a>
|
|
<a href="https://packagist.org/packages/contributte/webapp-skeleton"><img src="https://badgen.net/packagist/v/contributte/webapp-skeleton"></a>
|
|
</p>
|
|
<p align=center>
|
|
<a href="https://packagist.org/packages/contributte/webapp-skeleton"><img src="https://badgen.net/packagist/php/contributte/webapp-skeleton"></a>
|
|
<a href="https://github.com/contributte/webapp-skeleton"><img src="https://badgen.net/github/license/contributte/webapp-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://api.microlink.io?url=https%3A%2F%2Fexamples.contributte.org%2Fwebapp-skeleton%2F&overlay.browser=light&screenshot=true&meta=false&embed=screenshot.url"></img>
|
|
</p>
|
|
|
|
-----
|
|
|
|
## Goal
|
|
|
|
Main goal is to provide best prepared starter-kit project for Nette developers.
|
|
|
|
Focused on:
|
|
|
|
- latest PHP 8.0
|
|
- `nette/*` packages
|
|
- Doctrine ORM via `nettrine/*`
|
|
- Symfony components via `contributte/*`
|
|
- codestyle checking via **CodeSniffer** and `ninjify/*`
|
|
- static analysing via **phpstan**
|
|
- unit / integration tests via **Nette Tester** and `ninjify/*`
|
|
|
|
## Demo
|
|
|
|
https://examples.contributte.org/webapp-skeleton/
|
|
|
|
## Installation
|
|
|
|
To install latest version of `contributte/webapp-skeleton` use [Composer](https://getcomposer.com).
|
|
|
|
```
|
|
composer create-project -s dev contributte/webapp-skeleton acme
|
|
```
|
|
|
|
### Install using [docker](https://github.com/docker/docker/)
|
|
|
|
1) At first, use composer to install this project.
|
|
|
|
```
|
|
composer create-project -s dev contributte/webapp-skeleton
|
|
```
|
|
|
|
2) After that, you have to setup Postgres >= 10 database. You can start it manually or use docker image `dockette/postgres:12`.
|
|
|
|
```
|
|
docker run -it -p 5432:5432 -e POSTGRES_PASSWORD=webapp -e POSTGRES_USER=webapp dockette/postgres:12
|
|
```
|
|
|
|
Or use make task, `make docker-postgres`.
|
|
|
|
3) Custom configuration file is located at `config/local.neon`. Edit it if you want.
|
|
|
|
Default configuration should look like:
|
|
|
|
```neon
|
|
# Host Config
|
|
parameters:
|
|
# Database
|
|
database:
|
|
host: localhost
|
|
dbname: webapp
|
|
user: webapp
|
|
password: webapp
|
|
```
|
|
|
|
4) Ok database is now running and application is configured to connect to it. Let's create initial data.
|
|
|
|
Run `NETTE_DEBUG=1 bin/console migrations:migrate` to create tables. Run `NETTE_DEBUG=1 bin/console doctrine:fixtures:load --append` to create first user(s).
|
|
|
|
Or via task `make build`.
|
|
|
|
5) Start your devstack or use PHP local development server.
|
|
|
|
You can start PHP server by running `php -S localhost:8000 -t www` or use prepared make task `make dev`.
|
|
|
|
6) Open http://localhost and enjoy!
|
|
|
|
Take a look at:
|
|
- http://localhost:8000.
|
|
- http://localhost:8000/admin (admin@admin.cz / admin)
|
|
|
|
### Install using [docker-compose](https://https://github.com/docker/compose/)
|
|
|
|
1) At first, use composer to install this project.
|
|
|
|
```
|
|
composer create-project -s dev contributte/webapp-project
|
|
```
|
|
|
|
2) Modify `config/local.neon` and set host to `database`
|
|
|
|
Default configuration should look like this:
|
|
|
|
```neon
|
|
# Host Config
|
|
parameters:
|
|
# Database
|
|
database:
|
|
host: database
|
|
dbname: webapp
|
|
user: webapp
|
|
password: webapp
|
|
```
|
|
|
|
3) Run `docker-compose up`
|
|
|
|
4) Open http://localhost and enjoy!
|
|
|
|
Take a look at:
|
|
- http://localhost.
|
|
- http://localhost/admin (admin@admin.cz / admin)
|
|
|
|
## Features
|
|
|
|
Here is a list of all features you can find in this project.
|
|
|
|
- PHP 8.0+
|
|
- :package: Packages
|
|
- Nette 3+
|
|
- Contributte
|
|
- Nettrine
|
|
- :deciduous_tree: Structure
|
|
- `app`
|
|
- `config` - configuration files
|
|
- `env` - prod/dev/test environments
|
|
- `app` - application configs
|
|
- `ext` - extensions configs
|
|
- `local.neon` - local runtime config
|
|
- `local.neon.dist` - template for local config
|
|
- `domain` - business logic and domain specific classes
|
|
- `model` - application backbone
|
|
- `modules` - Front/Admin module, presenters and components
|
|
- `resources` - static content for mails and others
|
|
- `ui` - UI components and base classes
|
|
- `bootstrap.php` - Nette entrypoint
|
|
- `bin` - console entrypoint (`bin/console`)
|
|
- `db` - database files
|
|
- `fixtures` - PHP fixtures
|
|
- `migrations` - migrations files
|
|
- `docs` - documentation
|
|
- `var`
|
|
- `log` - runtime and error logs
|
|
- `tmp` - tmp files and cache
|
|
- `tests` - test engine and unit/integration tests
|
|
- `vendor` - composer's folder
|
|
- `www` - public content
|
|
- :exclamation: Tracy
|
|
- Cool error 500 page
|
|
|
|
### Notable changes
|
|
|
|
- `$user` variable in templates [is renamed](https://github.com/contributte/webapp-skeleton/blob/master/app/model/Latte/TemplateFactory.php) to `$_user`
|
|
|
|
### Composer packages
|
|
|
|
Take a detailed look :eyes: at each single package.
|
|
|
|
- [contributte/bootstrap](https://contributte.org/packages/contributte/bootstrap.html)
|
|
- [contributte/application](https://contributte.org/packages/contributte/application.html)
|
|
- [contributte/di](https://contributte.org/packages/contributte/di.html)
|
|
- [contributte/cache](https://contributte.org/packages/contributte/cache.html)
|
|
- [contributte/http](https://contributte.org/packages/contributte/http.html)
|
|
- [contributte/forms](https://contributte.org/packages/contributte/forms.html)
|
|
- [contributte/latte](https://contributte.org/packages/contributte/latte.html)
|
|
- [contributte/mail](https://contributte.org/packages/contributte/mail.html)
|
|
- [contributte/security](https://contributte.org/packages/contributte/security.html)
|
|
- [contributte/utils](https://contributte.org/packages/contributte/utils.html)
|
|
- [contributte/tracy](https://contributte.org/packages/contributte/tracy.html)
|
|
- [contributte/console](https://contributte.org/packages/contributte/console.html)
|
|
- [contributte/webapp-skeleton](https://contributte.org/packages/contributte/webapp-skeleton.html)
|
|
- [contributte/event-dispatcher](https://contributte.org/packages/contributte/event-dispatcher.html)
|
|
- [contributte/event-dispatcher-extra](https://contributte.org/packages/contributte/event-dispatcher-extra.html)
|
|
- [contributte/neonizer](https://contributte.org/packages/contributte/neonizer.html)
|
|
- [contributte/mailing](https://contributte.org/packages/contributte/mailing.html)
|
|
- [contributte/monolog](https://contributte.org/packages/contributte/monolog.html)
|
|
|
|
**Nettrine**
|
|
|
|
- [nettrine/orm](https://contributte.org/packages/nettrine/orm.html)
|
|
- [nettrine/dbal](https://contributte.org/packages/nettrine/dbal.html)
|
|
- [nettrine/annotations](https://contributte.org/packages/nettrine/annotations.html)
|
|
- [nettrine/cache](https://contributte.org/packages/nettrine/cache.html)
|
|
- [nettrine/migrations](https://contributte.org/packages/nettrine/migrations.html)
|
|
- [nettrine/fixtures](https://contributte.org/packages/nettrine/fixtures.html)
|
|
- [nettrine/extensions](https://contributte.org/packages/nettrine/extensions.html)
|
|
|
|
**Dev**
|
|
|
|
- [contributte/dev](https://contributte.org/packages/contributte/dev.html)
|
|
- [ninjify/qa](https://contributte.org/packages/ninjify/qa.html)
|
|
- [ninjify/nunjuck](https://contributte.org/packages/ninjify/nunjuck.html)
|
|
- [phpstan/phpstan](https://github.com/phpstan/phpstan)
|
|
- [mockery/mockery](https://github.com/mockery/mockery)
|
|
- [nelmio/alice](https://github.com/nelmio/alice)
|
|
|
|
## Screenshots
|
|
|
|

|
|
|
|
> admin@admin.cz / admin
|
|
|
|

|
|

|
|

|
|
|
|
## 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.
|