PHPackages                             nonetallt/jinitialize - 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. nonetallt/jinitialize

ActiveProject

nonetallt/jinitialize
=====================

Modular and extensible automation scripts in php.

07PHP

Since Jun 13Pushed 7y agoCompare

[ Source](https://github.com/nonetallt/jinitialize)[ Packagist](https://packagist.org/packages/nonetallt/jinitialize)[ RSS](/packages/nonetallt-jinitialize/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Jinitialize
===========

[](#jinitialize)

Modular and extensible automation scripts in php. Based on [Symfony\\Console](https://symfony.com/doc/current/components/console.html) component. This package was created to allow php programmers to create robust setup scripts for their projects that can be ran almost anywhere given the wide spread of php installations.

```
php jinitialize php-package

```

[![php-package procedure script](https://camo.githubusercontent.com/d9e895070c3175b418ff910356e9c5eba2161a7e8a0c8ffd9aca3d735d70b7e3/68747470733a2f2f692e696d6775722e636f6d2f327977504862682e706e67)](https://camo.githubusercontent.com/d9e895070c3175b418ff910356e9c5eba2161a7e8a0c8ffd9aca3d735d70b7e3/68747470733a2f2f692e696d6775722e636f6d2f327977504862682e706e67)

Introduction
============

[](#introduction)

As the number of tools you use for your projects increases, so does the time required to set everything up. These tasks include but are not limited to:

- Setting up version control
- Setting up your testing tools
- Setting up compilers (javascript with babel etc.)
- Setting up automation scripts (watching file changes and running tests etc.)
- Setting up local site to try out your web application
- Setting up configuration for your favorite packages and libraries

Even though more simplistic scripts can be used in even wider variety of environments, some of these tasks quickly become messy and lead to project specific installation scripts and duplicated code. Because of these reasons, it is ideal to break down the complex setup scripts into more modular, reusable components.

Installation
============

[](#installation)

```
composer create-project nonetallt-jinitialize [my-project]

```

Commands
========

[](#commands)

Commands are called by their command signature that always starts with the name of the plugin that command belongs to as command namespace. For example, to call a "create" command defined in the "project" plugin, you would enter the following command:

```
php jinitialize project:create

```

You can pass [arguments and options](https://symfony.com/doc/current/components/console/console_arguments.html) to the command by appending them to the command call:

```
php jinitialize [command] [argument] [--option]

```

Procedures
==========

[](#procedures)

Procedures are series of commands defined in json format. They can be executed same way as commands and allow you to pass results and information from executed commands to other commands that are part of the procedure.

```
{
    "example-procedure": {
        "description": "This is an example procedure",
        "commands": [
            "project:create",
            "project:folder newFolder"
        ]
    }
}
```

Example procedure for creating a php library package using three plugins; project, git and github.

```
{
"php-package": {
        "description": "Create a new generic php package.",
        "commands": [
            "project:create --path=[PACKAGES_DIRECTORY]",
            "project:folder src",
            "project:folder tests",
            "project:folder tests/Unit",
            "project:folder tests/Feature",
            "project:folder tests/input",
            "project:folder tests/expected",
            "project:folder tests/output",
            "project:copy [STUBS_FOLDER]/phpunit.xml phpunit.xml",
            "project:copy [STUBS_FOLDER]/composer.stub.json composer.json --env --exported",
            "git:init [project:path]",
            "github:authenticate [GIT_USER] [GIT_PASSWORD]",
            "github:create-repository [project:name] --private",
            "github:create-webhook [project:name] --name=packagist",
            "git:set-remote [github:ssh_url]",
            "git:ignore tags/",
            "git:ignore vendor/",
            "git:ignore tests/output",
            "core:shell 'ctags -f [project:path]/tags -R --fields=+laimS --languages=php --exclude=.git'"
        ]
    },
}
```

Settings
========

[](#settings)

This project uses the [dotenv](https://github.com/vlucas/phpdotenv) library to easily load user defined options. Create a file called .env in the project root directory or create one from the .env.example file:

```
cp .env.example .env

```

- **JINITIALIZE\_PLACEHOLDER\_FORMAT**, the format used for replacing placeholder values in procedures, default: \[$\]

Jinitialize plugins can request default options for your convenience. A project plugin could for example request you to define **DEFAULT\_PROJECTS\_FOLDER** to suggest a reasonable default path when creating new projects. This way you don't have to type the full path each time.

```
DEFAULT_PROJECTS_FOLDER=/home/nonetallt/Code/packages

```

Plugins
=======

[](#plugins)

### List of plugins

[](#list-of-plugins)

[![list of plugins: https://nonetallt.com/jinitialize/plugins](https://camo.githubusercontent.com/b461aca378582f1917ab85d2d899554099633af6919c2f5eaaef87ac432948de/68747470733a2f2f6e6f6e6574616c6c742e636f6d2f6a696e697469616c697a652f706c7567696e732f696d616765)](https://camo.githubusercontent.com/b461aca378582f1917ab85d2d899554099633af6919c2f5eaaef87ac432948de/68747470733a2f2f6e6f6e6574616c6c742e636f6d2f6a696e697469616c697a652f706c7567696e732f696d616765)

### Installing plugins

[](#installing-plugins)

Any packages that you require in your jinitialize project that define the "jinitialize-plugin" section in their extra section will be autopublished to bootstrap/cache/plugins.php. Installing a new plugin for your project is as simple as requiring it:

```
composer require nonetallt/jinitialize-plugin-project

```

You can use either composer or the search command to look for packages

```
composer search jinitialize-plugin-

php jinitialize core:search-plugins

```

### Creating your own plugins

[](#creating-your-own-plugins)

Check out the [jinitialize-plugin](https://github.com/nonetallt/jinitialize-plugin) boilerplate project for more information on how to create your own plugin packages.

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/022935c18503b8dff233563d6791746f4a0d7fee43977a1c9f2664806dea632b?d=identicon)[nonetallt](/maintainers/nonetallt)

---

Top Contributors

[![nonetallt](https://avatars.githubusercontent.com/u/22174322?v=4)](https://github.com/nonetallt "nonetallt (21 commits)")

### Embed Badge

![Health badge](/badges/nonetallt-jinitialize/health.svg)

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

PHPackages © 2026

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