Installation

The recommended way to start a new project is the official Concept Skeleton: a minimal application with php-concept/core already wired, bootstrap in place, a working / route, and a Twig landing page.

Concept Skeleton

The skeleton ships with:

  • An HTTP + Twig landing page and a component-ready src/App/ layout
  • All twelve core providers enabled by default (bootstrap/providers/app.php)
  • config/, routes/, database/, and resources/views/ directories
  • Docker environment (Apache + MySQL) and a Bootstrap publish script for public/vendor/

Alternative ways to organize code under src/ are covered in Directory structure.

Server Requirements

Concept Skeleton (and Concept Core) require:

  • PHP 8.4+
  • Composer 2.x
  • PHP extensions: dom, pdo, pdo_mysql, mysqli, zip

The full set for Docker is listed in the skeleton repository Dockerfile. Without a database you can temporarily disable DatabaseServiceProvider in the provider list.

Quick start

git clone https://github.com/php-concept/concept-skeleton.git my-app
cd my-app

composer install

cp .env.example .env
# Edit .env — APP_ENV, database credentials, etc.

Point your web server document root at public/. For a quick local check:

php -S localhost:8080 -t public

Open the app in a browser — the / route renders the Concept Core landing page.

After composer install, the publish-assets script copies Bootstrap and Bootstrap Icons into public/vendor/. Highlight.js for code samples already lives under public/libs/highlight/.

Docker

cp docker-compose.yml.example docker-compose.yml
# Edit docker-compose.yml (container_name, volumes)
docker compose up -d

Install dependencies inside the application container:

docker exec -it concept_skeleton bash
composer install

Apache vhost config is in docker/apache/vhost.conf (DocumentRootpublic/). By default the app is exposed on port 8080.

Core in an existing project

To integrate Concept Core into your own repository, add the package via Composer and create bootstrap, entry points, and config directories manually:

composer require php-concept/core:^1.0

Reference layout and initialization code live in the skeleton and in Setup (public/index.php, bootstrap/app.php, bootstrap/paths.php, providers).

Next Steps