> For the complete documentation index, see [llms.txt](https://pckg.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pckg.gitbook.io/documentation/index.md).

# About

## About Pckg

Pckg framework is perfect for building everything. Really. You can build simple website, api webservice, shop or anything that needs to be accessable from internet.

### Features

* PHP 8.0 Framework with ORM, Migrations, Auth, Queue and I18n modules on the backend - [pckg/framework](https://gitlab.com/pckg/docs/-/blob/main/Packages/framework/README.md)
* Webpack with VueJS ecosystem integration on the frontend - [pckg-app/frontend](https://github.com/pckg-app/frontend) and [pckg-app/frontend-dev](https://github.com/pckg-app/frontend-dev)
* Plug'n'play Docker images for Dev and Prod environments - [pckg/docker-images](https://github.com/pckg/docker-images)
* CI & CD pipelines (Github Workflows) - `./github/workflows/`
* PHP Cloc, Stan, CS, Codeception and Mocha - `composer.json` and `package.json`

## Installation

The shortest, quickes and easiest way to start with development in pckg enviroment is installation of [skeleton](https://github.com/pckg/skeleton)

```bash
$ composer create-project pckg/skeleton . dev-master --prefer-dist
```

You should also install frontend dependencies.

```bash
npm install
# or
pnpm i
# or
yarn install
```

All empty directories and symlinks are then created with internal command.

```bash
$ php console project:init
```

You can start with development after app creation.

```bash
$ php console app:create
```

Optionally, you can initialize git repository, remote and commit initial changes.

```bash
$ git init .
$ git remote add origin git@github.com:foo/bar.git
$ commit -m “Initial commit”
```

## Directory structure

* `vendor`, `components` and `node_modules` - dependency managers directories
* `config` - root project configuration
* `www` - public directory
* `storage` - directory for framework, cache, uploads, tmp and other files
* `app/X/config` - app configuration
* `app/X/src` - app source files

## Concept

Now that you've created your app, continue with the [Concept](/documentation/concept.md) section to learn more about the concepts and request lifecycle.

## Versioning

* `master` - PHP v7.4
* `next-8.0` - PHP v8.0
* `next-8.1` - PHP v8.1
* `next-8.2` - PHP v8.2
* ~~`main` - PHP v8.3~~
* ~~`next` - PHP v9.0~~
