PHPackages                             machinjiri/installer - 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. machinjiri/installer

ActiveComposer-plugin[Framework](/categories/framework)

machinjiri/installer
====================

Installer for Machinjiri PHP Framework

1.3.1(1w ago)121MITPHPPHP ^8.3.0CI passing

Since Apr 21Pushed 2w ago1 watchersCompare

[ Source](https://github.com/preciouslyson/installer)[ Packagist](https://packagist.org/packages/machinjiri/installer)[ RSS](/packages/machinjiri-installer/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (20)Versions (20)Used By (0)

Machinjiri Installer
====================

[](#machinjiri-installer)

A Composer plugin and CLI installer for scaffolding new Machinjiri PHP applications quickly and consistently.

What’s new
----------

[](#whats-new)

The installer now supports a more complete project setup experience:

- interactive project creation prompts
- validation for PHP, Composer, extensions, disk space, and writable directories
- dry-run support for previewing changes
- starter kit selection (`default` and `blog`)
- database selection (`sqlite` and `mysql`)
- optional Git initialization
- automatic `.env` generation with secure permissions
- installation logging and post-install summaries

Requirements
------------

[](#requirements)

Before running the installer, make sure your environment meets these requirements:

- PHP 8.3 or newer
- Composer 2.x
- Required PHP extensions: `json`, `mbstring`, `openssl`, `zip`, `pdo`, `tokenizer`, and `ctype`

Installation
------------

[](#installation)

### Global installation (recommended)

[](#global-installation-recommended)

```
composer global require machinjiri/installer
```

### As a project dependency

[](#as-a-project-dependency)

```
composer require --dev machinjiri/installer
```

Quick start
-----------

[](#quick-start)

Create a new project interactively:

```
machinjiri create
```

Create a project directly from the command line:

```
machinjiri create my-app
```

You can also use the alias:

```
machinjiri new my-app
```

Command options
---------------

[](#command-options)

The `create` command supports the following options:

```
machinjiri create [name] [options]
```

Options:

- `-f, --force` — overwrite an existing directory if it already exists
- `--m-version=VERSION` — install a specific Machinjiri framework version
- `--dev` — include development dependencies
- `--no-dev` — skip development dependencies
- `--no-scripts` — skip Composer scripts during install
- `--dry-run` — preview the installation without creating files
- `-n, --no-interaction` — skip prompts and use defaults
- `--git` — initialize a Git repository and make the initial commit
- `--starter=NAME` — choose a starter kit (`default` or `blog`)
- `--prefer-cache` — prefer Composer cache when available
- `--database=sqlite|mysql` — choose the database configuration template
- `--description=TEXT` — set the project description
- `--company=NAME` — set the company or organization name
- `--keep-on-error` — preserve a partially created project if installation fails
- `-v, --verbose` — show more detailed output

Common examples
---------------

[](#common-examples)

### 1. Interactive setup

[](#1-interactive-setup)

```
machinjiri create
```

### 2. Non-interactive install with SQLite

[](#2-non-interactive-install-with-sqlite)

```
machinjiri create my-app --no-interaction --database=sqlite --starter=default
```

### 3. Create a blog starter app

[](#3-create-a-blog-starter-app)

```
machinjiri create my-blog --starter=blog --database=mysql
```

### 4. Preview installation without creating files

[](#4-preview-installation-without-creating-files)

```
machinjiri create my-app --dry-run --verbose
```

### 5. Overwrite an existing directory

[](#5-overwrite-an-existing-directory)

```
machinjiri create my-app --force
```

What the installer creates
--------------------------

[](#what-the-installer-creates)

A typical project scaffold includes:

```
your-project/
├── app/
│   ├── Controllers/
│   ├── Middleware/
│   ├── Models/
│   └── Providers/
├── bootstrap/
│   ├── app.php
│   ├── artisan.php
│   └── helpers.php
├── config/
│   ├── app.php
│   ├── database.php
│   ├── mail.php
│   └── providers.php
├── database/
│   ├── factories/
│   ├── migrations/
│   └── seeders/
├── public/
│   ├── src/
│   │   ├── css/
│   │   └── js/
│   └── index.php
├── resources/
│   └── views/
├── routes/
├── storage/
├── tests/
├── artisan
├── composer.json
├── .env
└── phpunit.xml

```

The installer also generates starter-specific files based on the selected kit and writes the base configuration needed to start developing immediately.

Starter kits
------------

[](#starter-kits)

The installer currently supports:

- `default` — a general-purpose starter scaffold
- `blog` — a blog-oriented starter scaffold

Example:

```
machinjiri create my-blog --starter=blog
```

Post-install notes
------------------

[](#post-install-notes)

After a successful install:

- review the generated `.env` file and adjust any environment values
- inspect `.installation.log` if you need to debug a failed or unusual install
- start developing from the generated app skeleton

Troubleshooting
---------------

[](#troubleshooting)

### Composer is not found

[](#composer-is-not-found)

Make sure Composer is installed and available in your `PATH`.

### Missing PHP extensions

[](#missing-php-extensions)

Install the required extensions before retrying:

```
# Ubuntu / Debian
sudo apt-get install php8.3-json php8.3-mbstring php8.3-openssl php8.3-zip

# CentOS / RHEL
sudo yum install php-json php-mbstring php-openssl

# macOS (Homebrew)
brew install php
```

### Existing directory error

[](#existing-directory-error)

If the target folder already exists, use `--force` to overwrite it:

```
machinjiri create my-app --force
```

### Permission denied

[](#permission-denied)

```
# Check directory permissions
ls -la /path/to/project

# Fix permissions (Linux/macOS)
sudo chown -R $USER:$USER /path/to/project
sudo chmod -R 755 /path/to/project/storage
```

### Composer install failed

[](#composer-install-failed)

```
# Check Composer version
composer --version

# Clear Composer cache
composer clear-cache

# Try with verbose output
machinjiri create my-app -vvv
```

CI/CD usage
-----------

[](#cicd-usage)

The installer supports non-interactive mode for automation:

```
# GitLab CI example
before_script:
  - composer global require machinjiri/installer
  - export PATH="$PATH:$HOME/.config/vendor/bin:$PATH"
  - machinjiri create ${CI_PROJECT_NAME} --no-interaction --force --no-dev
  - cd ${CI_PROJECT_NAME}
  - composer install --no-dev --no-interaction
```

Contributing
------------

[](#contributing)

```
# Clone the repository
git clone https://github.com/preciouslyson/machinjiri-installer.git
cd machinjiri-installer

# Install dependencies
composer install

# Run tests
composer test

# Test the installer locally
php bin/machinjiri create test-app
```

License
-------

[](#license)

This package is distributed under the MIT License.

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance98

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Total

17

Last Release

9d ago

PHP version history (2 changes)2.0.0PHP &gt;=8.0

1.2.9PHP ^8.3.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/36500501?v=4)[Precious Lyson](/maintainers/preciouslyson)[@preciouslyson](https://github.com/preciouslyson)

---

Top Contributors

[![preciouslyson](https://avatars.githubusercontent.com/u/36500501?v=4)](https://github.com/preciouslyson "preciouslyson (30 commits)")

### Embed Badge

![Health badge](/badges/machinjiri-installer/health.svg)

```
[![Health](https://phpackages.com/badges/machinjiri-installer/health.svg)](https://phpackages.com/packages/machinjiri-installer)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.9k556.2M21.1k](/packages/laravel-framework)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k39.6k](/packages/matomo-matomo)[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k99.8M342](/packages/laravel-horizon)[phpro/grumphp

A composer plugin that enables source code quality checks.

4.3k17.0M1.1k](/packages/phpro-grumphp)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19467.3M1.9k](/packages/drupal-core)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6943.5M443](/packages/drupal-core-recommended)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
