PHPackages                             adaiasmagdiel/erlenmeyer-starter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. adaiasmagdiel/erlenmeyer-starter

ActiveProject[Framework](/categories/framework)

adaiasmagdiel/erlenmeyer-starter
================================

Starter template for web applications with Erlenmeyer and related packages

v1.0.0(3mo ago)06GPL-3.0-onlyPHPPHP ^8.1

Since Apr 18Pushed 3mo agoCompare

[ Source](https://github.com/AdaiasMagdiel/erlenmeyer-starter)[ Packagist](https://packagist.org/packages/adaiasmagdiel/erlenmeyer-starter)[ RSS](/packages/adaiasmagdiel-erlenmeyer-starter/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

erlenmeyer-starter
==================

[](#erlenmeyer-starter)

A starter template for [adaiasmagdiel/erlenmeyer](https://github.com/adaiasmagdiel/erlenmeyer) with batteries included: Vue 3, Tailwind CSS, Sonner.js, FullCrawl migrations, and phpdotenv.

Stack
-----

[](#stack)

LayerTechFramework[Erlenmeyer](https://github.com/adaiasmagdiel/erlenmeyer) v5Migrations[FullCrawl](https://github.com/adaiasmagdiel/fullcrawl) v1.2Env varsvlucas/phpdotenv v5FrontendVue 3 (CDN)StylingTailwind CSS v3 (CDN)ToastsSonner.js (CDN)Requirements
------------

[](#requirements)

- PHP ^8.1 with `json` and `mbstring` extensions
- Composer
- Apache with `mod_rewrite` enabled
- MySQL / MariaDB (or PostgreSQL / SQLite)

Getting Started
---------------

[](#getting-started)

```
# 1. Clone the repo
git clone https://github.com/adaiasmagdiel/erlenmeyer-starter.git
cd erlenmeyer-starter

# 2. Install dependencies
composer install

# 3. Configure environment
cp .env.example .env
# Edit .env with your database credentials

# 4. Run migrations (if any)
php fullcrawl.php

# 5. Serve
php -S localhost:8000
```

> For production, point your Apache virtual host to the project root. `mod_rewrite` must be enabled — all requests are routed through `index.php`.

Project Structure
-----------------

[](#project-structure)

```
erlenmeyer-starter/
├── app/
│   ├── Controllers/
│   │   └── Site.php        # Example controller
│   ├── Database.php        # PDO wrapper (singleton)
│   └── helpers.php         # t(), e(), isDev(), genv()
├── templates/
│   ├── layouts/
│   │   └── dashboard.php   # Main HTML layout
│   ├── dashboard/
│   │   └── index.php       # Example page with Vue component
│   ├── site/
│   │   └── index.php       # Welcome page
│   ├── 404.php
│   └── 500.php
├── bootstrap.php            # Env & DB initialization
├── index.php                # Entry point & routes
├── fullcrawl.php            # Migration config
├── .env.example
└── .htaccess

```

Adding Routes
-------------

[](#adding-routes)

Routes are defined in `index.php`:

```
$app->get('/', [Site::class, 'index']);
$app->post('/users', [Users::class, 'store']);
```

Creating Pages
--------------

[](#creating-pages)

Pages use output buffering to separate body and script from the layout:

```

        Hello, {{ store.user.name }}

    window.__APP.component('page', {
        template: '#tpl-page',
        setup() {
            const store = Vue.inject('store');
            return { store };
        }
    });
