nerds-and-company / composer-craft-installer
Install Craft using Composer
Installs: 238
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Type:composer-plugin
Requires
- php: >=5.5
- composer-plugin-api: ~1.0
Requires (Dev)
- composer/composer: ~1.0@dev
- phpunit/phpunit: ~4.8
- psr/log: ~1
- whatthejeff/nyancat-phpunit-resultprinter: ~1.2
This package is not auto-updated.
Last update: 2024-10-26 19:16:10 UTC
README
Composer installer that helps install Craft. (Craft repository not included, please provide your own).
Introduction
As a company we create a lot of websites with Craft. Instead of having to manually download and install Craft each time, we have a private repository (with some extra magic added). This repository contains a plugin for Composer that installs that repository for any project that might need it.
This also makes it easier to install a copy of Craft on build/ci engines (like Jenkins or Travis-CI) to have an environment to run test against for custom plugins.
Usage
For this plugin to work, three things are needed:
- a Craft repository
- Entries in the Craft repository's
composer.json
- An entry in a project's §composer.json§ that requires the Craft repository
Craft repository
Craft is not open-sourced and requires a license to use in a production. Please respect the Craft license an acquire a legitimate copy to work with. You can keep that code in a private repository for development purposes, as long as you don't share the code-base publicly.
Craft Repository Composer entry
Once a Craft repository has been made available, make sure it has a valid
composer.json
file. For this installer to be used, the type
entry has to be
set to craft-library
and the nerds-and-company/composer-craft-installer
package needs to be require
'd.
A minimal case would be:
{
"name": "acme-corp/craft",
"description": "Acme Corp. Craft Repository",
"license": "proprietary",
"type": "craft-library",
"require": {
"nerds-and-company/composer-craft-installer": "~0.1"
}
}
Project Composer entry
All that is left now, is to require the Craft repository from a specific project's
composer.json
:
{
"name": "acme-corp/my-craft-based-project",
"description": "Another Acme Corp. Production",
"license": "proprietary",
"require": {
"acme-corp/craft": "~2.5"
}
}