2017 © Pedro Peláez
 

library composer-hydration

Provides a Composer script to project skeleton hydration by placeholders replacements.

image

jkribeiro/composer-hydration

Provides a Composer script to project skeleton hydration by placeholders replacements.

  • Friday, August 25, 2017
  • by jkribeiro
  • Repository
  • 0 Watchers
  • 1 Stars
  • 38,845 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 12 % Grown

The README.md

Packagist version Packagist Downloads Build Status, (*1)

composer-hydration

Introduction

composer-hydration is a simple package that provides a Composer Script to be used as placeholder replacement, mostly used by 'skeletons' projects., (*2)

Example:, (*3)

composer run-script hydrate -- --replace={FRUIT}:"apple",{INGREDIENT}:"cinnamon"

The script will search for the placeholders in file content, file names and folders., (*4)

Before:, (*5)

$ /path/composer/project/{FRUIT}.txt
"I love {FRUIT} with {INGREDIENT}, is a good combination!"

After:, (*6)

$ /path/composer/project/apple.txt
"I love apple with cinnamon, is a good combination!"

Installation

Install Composer

Since composer-hydration is a Composer script, you need to install composer first., (*7)

Note: The instructions below refer to the global composer installation. You might need to replace composer with php composer.phar (or similar) for your setup., (*8)

Add package dependency

Add composer-hydration as package dependency of your project, updating your composer.json:, (*9)

    "require": {
        ...
        "jkribeiro/composer-hydration": "~1"
    }

Define the Composer Script

Define the Composer script, adding this entry to your composer.json:, (*10)

    "scripts": {
        "hydrate": "Jkribeiro\\Composer\\ComposerHydration::meatOnBones"
    }

Install Project

composer install

Usage

There are some ways that you can execute this script:, (*11)

Execute the command manually

After have the package installed, you can run the command manually to have your values placed., (*12)

composer run-script hydrate -- --replace={SEARCH}:{REPLACE},..."

Hydrate during the Composer Events

Composer fires some events during its execution process, useful to define on which step/event it will perform the hydration process., (*13)

In the example below, the hydration process will occur after the project installation:, (*14)

    "scripts": {
        "hydrate": "Jkribeiro\\Composer\\ComposerHydration::meatOnBones",
        "post-install-cmd": "@composer run-script hydrate -- --replace={{PROJECT_NAMESPACE}}:{%BASENAME%}"
    }

Variables as Replacement values

Sometimes we need to use dynamic replacement values on composer.json, not only hardcoded values like {FRUIT}:banana, for these cases, there are two possibilities:, (*15)

Environment Variables

composer.json allows environment variables as replacement placeholder value, like {{PROJECT_NAMESPACE}}:$PROJECT_NAME", $PROJECT_NAME is the variable name. You must define the variables before execute the Composer commands., (*16)

Example:
composer.json, (*17)

    ...
    "scripts": {
        "hydrate": "Jkribeiro\\Composer\\ComposerHydration::meatOnBones",
        "post-install-cmd": "@composer run-script hydrate -- --replace={{PROJECT_NAMESPACE}}:$PROJECT_NAME"
    }

Execution, (*18)

$ export PROJECT_NAME="My Project"
$ composer install

"Magic Constants"

Using the same idea of PHP Magic constants, composer-hydration provides some Magic constants too., (*19)

  • {%BASENAME%}: Returns the base folder name where the script is being executed, normally is the name of the project.
  • {%UCFIRST_BASENAME%}: Returns the base folder name with the first character capitalized.
  • {%UPPER_CAMEL_CASE_BASENAME%}, {%LOWER_CAMEL_CASE_BASENAME%}: Returns the base folder name using the upper/lower camel case format. Only the folder name separators '-', '_' are allowed., (*20)

    Example:, (*21)

    $ ~/Projects/myproject: composer run-script hydrate -- --replace={{PROJECT_NAMESPACE}}:{%BASENAME%}"
    

    Placeholders with {{PROJECT_NAMESPACE}} will be replaced by myproject., (*22)

The Versions

25/08 2017

1.x-dev

1.9999999.9999999.9999999-dev

Provides a Composer script to project skeleton hydration by placeholders replacements.

  Sources   Download

MIT

The Requires

 

by Jean Kemparski Ribeiro

scaffold hydrate placeholder replace skel wildcard

25/08 2017

1.1.0

1.1.0.0

Provides a Composer script to project skeleton hydration by placeholders replacements.

  Sources   Download

MIT

The Requires

 

by Jean Kemparski Ribeiro

scaffold hydrate placeholder replace skel wildcard

15/07 2016

1.0.3

1.0.3.0

Provides a Composer script to project skeleton hydration by placeholders replacements.

  Sources   Download

MIT

The Requires

 

by Jean Kemparski Ribeiro

scaffold hydrate placeholder replace skel wildcard

01/07 2016

1.0.2

1.0.2.0

Provides a Composer script to project skeleton hydration by placeholders replacements.

  Sources   Download

MIT

The Requires

 

by Jean Kemparski Ribeiro

scaffold hydrate placeholder replace skel wildcard

29/06 2016

1.0.1

1.0.1.0

Provides a Composer script to project skeleton hydration by placeholders replacements.

  Sources   Download

MIT

The Requires

 

by Jean Kemparski Ribeiro

scaffold hydrate placeholder replace skel wildcard

23/06 2016

1.0.0

1.0.0.0

Provides a Composer script to project skeleton hydration by placeholders replacements.

  Sources   Download

MIT

The Requires

 

by Jean Kemparski Ribeiro

scaffold hydrate placeholder replace skel wildcard