Coder Social home page Coder Social logo

drupal-composer-init's Introduction

drupal-composer-init

Latest Version Software License Build Status Total Downloads

This plugin provides a new composer command (drupal-init) which helps in creating new Drupal installations based on composer. Most of the options are very similar to the default composer init command. There are additional options to specify a Drupal core or distro to use and the docroot.

This plugin also supports Drupal 7 installation but this option needs to be passed in from command line.

The composer.json setup that this plugin generates is inspired by drupal-composer/drupal-project (both D7 and D8 versions). One important difference is that the composer.json generated by this command does not need several scripts which are part of the drupal-composer project. All the functionality is moved to hussainweb/drupal-composer-helper. There are additional benefits like a simpler extra section and a more maintainable installation. For more details, see the drupal-composer-helper plugin.

Installation

Since this plugin provides a new composer command that should be used in an empty directory (or at least a directory without a composer.json setup), this has to be installed globally.

composer global require hussainweb/drupal-composer-init:~1.0

Updating

composer global update hussainweb/drupal-composer-init --with-dependencies

Usage

In a fresh directory, run this command to get started.

composer drupal-init

To intialise a Drupal 7 website, run the following command:

composer drupal-init --drupal-7

Specifying extensions (modules, themes, profiles)

Drupal extensions such as modules, themes, and profiles can be specified in the regular require or require-dev section of composer.json schema.

All Drupal extensions can be specified in the regular packages section with their drupal.org name prefixed by 'drupal/'. For example, if you want to require panels module, specify drupal/panels.

Define your dependencies.

Would you like to define your dependencies (require) now [yes]?
Search for a package: drupal/panels
Enter the version constraint to require (or leave blank to use the latest version):
Using version ^4.2 for drupal/panels
Search for a package: drupal/redirect
Enter the version constraint to require (or leave blank to use the latest version):
Using version ^1.0@beta for drupal/redirect
Search for a package:

Additional Help

Run composer help drupal-init for more options.

Usage:
  drupal-init [options]

Options:
      --name=NAME                Name of the package
      --description=DESCRIPTION  Description of package
      --author=AUTHOR            Author name of package
      --type[=TYPE]              Type of package (e.g. library, project, metapackage, composer-plugin) [default: "project"]
      --homepage=HOMEPAGE        Homepage of package
      --require=REQUIRE          Package to require with a version constraint, e.g. foo/bar:1.0.0 or foo/bar=1.0.0 or "foo/bar 1.0.0" (multiple values allowed)
      --require-dev=REQUIRE-DEV  Package to require for development with a version constraint, e.g. foo/bar:1.0.0 or foo/bar=1.0.0 or "foo/bar 1.0.0" (multiple values allowed)
  -c, --core=CORE                Drupal Core or distribution, e.g. drupal/core or acquia/lightning [default: "drupal/core"]
  -s, --stability=STABILITY      Minimum stability (empty or one of: stable, RC, beta, alpha, dev)
  -l, --license=LICENSE          License of package
      --repository=REPOSITORY    Add custom repositories, either by URL or using JSON arrays (multiple values allowed)
  -w, --web-dir=WEB-DIR          Specify the docroot (defaults to web) [default: "web"]
      --drupal-7                 Use Drupal 7 packagist instead of Drupal 8
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help:
  The drupal-init command creates a composer.json file
  usable for Drupal projects in the current directory.

  php composer.phar drupal-init

Contributing

Contributions are welcome. Please use the issue queue to describe the problem. Pull requests are welcome.

drupal-composer-init's People

Contributors

hussainweb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

drupal-composer-init's Issues

Write composer.json before adding dependencies and after adding each dependency to not lose user's composer.json.

I went through the wizard 3 times, and each time I got stuck in the adding dependencies section.

I would search for a package, nothing would interest me, and I would not be able to choose nothing and exit the add packages loop.

If I hit ctrl+c or enter 3 times I am kicked out, and all of my changes are lost.

If you wrote the composer.json before moving onto the dependencies loop (and then wrote the dependency to composer.json on every loop) then you would avoid the user frustration of having to go through the whole wizard again.

Otherwise, this is a great tool! Thanks for the hard work.

Document what to do after `composer drupal-init`

Hi, thanks for drupal-composer-init, I really like it!

Maybe the documentation can be improved a little. I'm not a newbie when it comes to composer or Drupal, but still after running composer drupal-init I found myself thinking: "That was it? Where is my site? What do I do now?" Already suspecting that I had to run composer install, I checked the documentation for confirmation... but alas.

TL;DR: Please add in the "Usage" section of README.md that one should run composer install too.

Issue with installing old drupal core.

I need to install drupal 8.3, But When I tried that. It's not downloading all the files ( index.php, update.php and all the files in the doc root is missing, but directories are there)

What to do with typos when answering script questions?

Backspace doesn't seem to work in the console and I usually don't want to exit from the script. What do I do if I make a typo and want to correct it?

It then becomes easy to be "exited" prematurely from the script rather than having a chance to type a module name correctly.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.