Download the PHP package vmlyr-drupal/kit without Composer

On this page you can find all versions of the php package vmlyr-drupal/kit. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package kit

Drupal 9 KIT

VMLY&R's Drupal 9 KIT is a distribution which helps build and maintain Drupal 9 projects.

About KIT

Via a suite of Docksal commands, an installation profile, and a base theme, the distribution provides support for the following:

Common modules + composer.json

KIT uses composer for handling project dependencies. The distribution includes a selection of Modules and libraries by default. The list was determined using either the following criteria:

Composer project scaffolding

KIT enforces structure by adding it's own scaffolding, which runs after Drupal's default scaffolding on composer install and update. Drupal's scaffolding automatically wipes and re-copies the files which get copied outside of Drupal core and into public directories (like default.settings.php, htaccess, robots.txt, etc.). VMLY&R additionally creates the standard config folder structure, as well as removes and updates files that should be modified via patches (like .htaccess) or compiled (like drupal.settings.additional.php compiling into drupal.settings.php) instead of being checked-into the repository directly.

Docksal command suite

The project uses Docksal for local-environment development and project-building. The following is a list of Docksal commands that come included in the project:

Additional commands are included via the vmlyr-drupal/kit-docksal-commands package and installed under a "kit" sub directory in the docksal commands directory. See the README.md file in that directory after composer is installed for more information on those commands.

Docksal + CI and build processes

Docksal and KIT's commands can be used for running build processes. The command init can toggle "CI mode" by running appending the ci command: fin init ci. This is best used when docksal is used to create the build files to be released. By default, the builder runs composer in --no-dev mode, and auto-removes build-related files amound other things.

Drupal site configuration

This composer project comes with 2 VMLY&R-created Drupal profiles:

Multi-environment configuration and development

Multi-environment configuration is pre-configured as part of the distribution via the default settings.php file and the Biplane and Blackbird profiles.

Environments + Settings.php file

The each site's default settings.php file includes the /sites/environment.settings.php, which has configuration to toggle the status of relevant configuration based on the current site's environment. Remote environments, such as those hosted by Acquia, Pantheon, or Platform.sh, have $_ENV or $_SERVER variables which tell the site that it is a certain environment and to enable certain configuration or settings. When working on the site locally, all configuration splits should say either "inactive". The "local" config_split status is only enabled by the fin command conf on export/import. This makes sure that configuration can be exported regularly without a certain environment taking accidental precedence.

Development and docksal settings files are automatically included via the environment.settings.php file, if they exist. These files are ignored by git and helpful for development overrides such as disabling cache or allowing verbose error reporting. The KitScriptHandler script, which is ran by composer, automatically copies a settings.local.php and settings.docksal.php into each sites directories to better assist local development.

Environments + the VMLY&R Profiles Biplane and Blackbird

The VMLY&R profiles include config-split options by default, and have additional tasks during install to establish the default configuration and each split's configuration, as well as import as the local environment before the installation is complete.

The four included default configurations include:

Multi-site support

Multi-site support is baked into the project via our supplied Docksal tools. When another site needs to be added, it's as simple as creating a the new drush alias file and running composer install. The command will build out the site folder structure, copy the default settings.php file into the site directory and is then ready for installation. The kit/sync and kit/conf tools both support syncing and exporting/importing any site in a multi-site Drupal instance.

Standardized theme management and structure

KIT automatically includes a base theme (Bazo) and two scaffolding themes which use Bazo as a base theme.

Bazo base theme

The Bazo base theme is meant to help assist its child-themes. It includes standard templates but moves most of the classes into its preprocesses to allow them to be more-easily removed later by the child preprocess. The two more-important factors of the subtheme are:

Scaffolded child-themes via a Docksal command

VMLY&R has a couple scaffolding themes included to build from, but they're not included in the project directly. Instead they can be generated via the fin kit/theme command.

Installation

Getting a running site takes only a few steps for a project.

  1. Install Docksal if it's not already installed.
  2. Install the project.

    1. Use composer to create the new project. Note: try not to use hyphenated project names if possible, docksal currently has weird issues with projects with hyphens.

    2. Change into the directory.

    3. If this directory was not already a git project, initialize the new repository

    4. If this project has a remote repository, add the remote origin
  3. Run fin start in the project to create the Docksal project.
  4. Open each site's Drush alias file (/drush/sites/ to update the local URI as well as any relevant server information if it's already known. (note: Your local should have been listed by Docksal at the end of running fin start)
  5. If running a multisite install, open /sites/sites.php folder to make sure domains are mapped to the correct site.

    Docksal's domain name is the project folder name in alphanumeric appended with .docksal. (I.E. drupal-8-kit becomes drupal8kit.docksal)

    External domains are mapped here as well.

    Docksal supports subdomains, and Drupal supports mapping subdomains on a multi-site install.

    External subdomains are mapped here as well.

  6. Run fin init
  7. Open a browser and go to the site; it should have been redirected to the site install page.
  8. Walk through the install process. (note: the site should automatically start installing after a profile is selected; if it doesn't, and it asks for database settings, reload the /core/install.php URL without any GET parameters)
  9. Fill out the site configuration. If using either of the VMLY&R Profiles and the environment URLs are unknown, make a best guess at what they could be _(we suggest following the //ENV-WWW.SITE_PROD.DOMAIN structure)_. The domains are used for indicating current environment and using other environment's assets via Stage File Proxy. Setting these up now helps not needing to set these in multiple places later on during development.
  10. If you selected either of the VMLY&R profiles, upon saving configuration, the site should export all relevant configuration into the site's sync directory and import as the local environment.
  11. Installation is complete once redirected to the homepage of the site.
  12. To start building your own theme, run fin kit/theme to generate a new theme + theme source setup based on our example scaffold themes. If the Blackbird profile was installed, we suggest scaffolding from the Blackbird theme option of the same name. If you're not using Blackbird and want a more simple starting point for you theme we suggest scaffolding from Biplane scaffold theme.

Post-installation and provider-related configuration

Based on the hosting provider, some configuration needs to be created or updated. Similarly, some configuration will also be unneeded and can be removed.

Jenkins

@TODO Jenkins setup walk-through.

Bitbucket pipelines

To enable bitbucket pipeline builds, rename bitbucket-pipelines-example.yml to bitbucket-pipelines.yml. Note: Bitbucket Pipelines needs to be enabled in bitbucket to work.

Setup

There is a small amount of configuration to get pipelines talking to your external repository after copying the pipelines file into the repository. In your Bitbucket account:

Note: sometimes it takes some playing-around-with to make sure that pipelines can connect to the hosting-provider repository, such as recreating the key pairs.

Default pipelines provided

Branch: Master

This pipeline watches the master branch, and when code is merged into it, automatically builds and deploys the code to the relevant "Development" environment repository.

This pipeline uses the default "Build package" and "Deploy package" pipeline steps. The "Deploy package" step defaults to run the "Development" deployment.

In scenarios where there should be a development branch building to the Development environment, and the master branch building to Stage or Production environments, the deployment would be changed to the relevant environment name, and a new branch-based pipeline would be created to push to Development.

Custom: Feature

This pipeline takes any branch and allows to build to a custom "feature" branch on the hosting provider repository. This allows for easily creating "Feature" environments on the hosting provider.

This pipeline uses the default "Build package" and "Deploy package" pipeline steps. "The Deploy package" step defaults to run a "Feature" deployment, which will need to be created under the Settings > Pipelines > Deployments tab on Bitbucket Pipelines.

To run this pipeline:

Pull-Requests

This pipeline automatically runs on pull-requests. It does a full build and then lints the code; it fails if any issues arise.

This pipeline uses the default "Build package" and "Test package" pipeline steps. It does not deploy code.

Files included in KIT

The following are grouped to give context for which files/directories can be modified or removed.

Provider-specific files: Acquia

Provider-specific modifications

Modifications to make to the project based on which hosting provider is chosen.

Provider-specific modifications: Acquia
  1. Remove unnecessary files and directories for Acquia:
    • List of universal files to remove
    • List of AWS files and directories
    • List of Pantheon files and directories
    • List of Platform.sh files and directories
  2. Settings.php modifications
    1. Open /docroot/sites/www/settings.php and find the "Include server-specific configuration." section.
    2. Uncomment the Acquia portion.
    3. Remove uneeded server-specific configuration from other providers.
      Provider-specific modifications: AWS
  3. Remove unnecessary files and directories for Platform.sh:
    • List of universal files to remove
    • List of Acquia files and directories
    • List of Pantheon files and directories
    • List of Platform.sh files and directories
  4. Settings.php modifications
    1. Open /docroot/sites/www/settings.php and find the "Include server-specific configuration." section.
    2. Uncomment the AWS portion.
    3. Modify appropriately.
    4. Remove uneeded server-specific configuration from other providers.
      Provider-specific modifications: Pantheon
  5. Remove unnecessary files and directories for Pantheon:
    • List of universal files to remove
    • List of Acquia files and directories
    • List of AWS files and directories
    • List of Platform.sh files and directories
  6. Rename /docroot to /web.
  7. Create symlink from installed sites directory to sites/default/files
    1. cd to /sites/www (or other site directory if multisite).
    2. run rm -rf files to remove current files directory.
    3. run ln -s ../default/files files to create symlink to default files directory (which is then symlinked to /files on Pantheon's end). Make sure that a /default/files directory exists locally so files have a place to go.
    4. run git add files and commit symlink to repo.
  8. Place post-deploy script in the correct place for pantheon to read it (inside the web directory).
    1. Create /web/private/scripts directory.
    2. Move /scripts/pantheon/post_deploy.php file into /web/private/scripts.
    3. Remove empty /scripts/pantheon folder.
  9. Settings.php modifications
    1. Copy over the settings.pantheon.php file from your initial pantheon install into your www (or relevant sites directory).
    2. Open /web/sites/www/settings.php and find the "Include server-specific configuration." section.
    3. Uncomment the Pantheon portion.
    4. Remove uneeded server-specific configuration from other providers.
Provider-specific modifications: Platform.sh
  1. Remove unnecessary files and directories for Platform.sh:
    • List of universal files to remove
    • List of Acquia files and directories
    • List of AWS files and directories
    • List of Pantheon files and directories
  2. Settings.php modifications
    1. Copy over the settings.platformsh.php file from your initial Platform.sh install into your www (or relevant sites directory).
    2. Open /docroot/sites/www/settings.php and find the "Include server-specific configuration." section.
    3. Uncomment the Platform.sh portion.
    4. Remove uneeded server-specific configuration from other providers.

@TODO Some files and configuration are missing for Platform.sh, which still needed to be included in KIT.

Renaming docroot to web

Some providers require a different docroot directory.

  1. Rename docroot directory to web.
  2. Update docroot references to web in the following files:
    • /.docksal/docksal.env
    • /.gitignore
    • /composer.json (will need to run composer install afterward to regenerate autoload.php file)
    • /drush/* files (/drush/sites/www.site.yml, etc.)
    • /patches/htaccess.patch
    • /source/gulpfile.js
    • /source/eslintrc.js

Notes and suggestions

Environment aliases

We've found that adding an environment prefix to the production url is a low-effort/high-reward action. This allows for environment URLs that are easier to remember and access, both for those working on the site and for clients.

Theme Development

When creating a new theme using the fin kit/theme command you'll have two directory structures created for you:

  1. docroot/themes/custom/yourtheme - This is meant to only contain the files Drupal needs to render the site - e.g. css, javascript, images, template files. It does not contain any source files used to generate those files (e.g. sass files). It's important to note that some files under this directory are generated (see next point) and some (e.g. template files) should be edited directly.

  2. source/themes/custom/yourtheme - Contains all of the source files used to generate the files in docroot/themes/custom/yourtheme.

Gulp is used to process the files in source and writes the corresponding output to the matching theme directory under docroot. The default gulp file (source/gulpfile.js) is set up with a set of basic tasks needed by most themes. It is also set up to run those tasks in all of the directories under source/themes/custom. This allows the developer to have multiple themes (e.g. a base theme and child themes) under development and use a single command to build them all.

The following functionality is provided by the default gulp file:

Tasks provided by the default gulp file are:


All versions of kit with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
composer/installers Version ^2.0
cweagans/composer-patches Version ^1.7
drupal/address Version ^1.11
drupal/admin_toolbar Version ^3.3
drupal/advagg Version ^6.0@alpha
drupal/allowed_formats Version ^2.0
drupal/better_exposed_filters Version ^6.0
drupal/bg_image_formatter Version ^1.16
drupal/blazy Version ^2.14
drupal/block_class Version ^2.0
drupal/block_field Version ^1.0@RC
drupal/classy_paragraphs Version ^1.0@dev
drupal/color Version ^1.0
drupal/config_ignore Version ^2.4
drupal/config_split Version ^1.9
drupal/config_update Version ^2.0@alpha
drupal/core-composer-scaffold Version ^10.0
drupal/core-project-message Version ^10.0
drupal/core-recommended Version ^10.0
drupal/core-vendor-hardening Version ^10.0
drupal/current_page_crumb Version ^1.4
drupal/devel Version ^5.1
drupal/devel_entity_updates Version ^4.1
drupal/devel_php Version ^1.5
drupal/diff Version ^1.1
drupal/editor_file Version ^1.7
drupal/email_registration Version ^1.2
drupal/entity_reference_revisions Version ^1.10
drupal/environment_indicator Version ^4.0
drupal/extlink Version ^1.7
drupal/field_group Version ^3.4
drupal/field_label Version ^1.2
drupal/focal_point Version ^2.0@alpha
drupal/google_tag Version ^1.6
drupal/imageapi_optimize Version ^4.0
drupal/imageapi_optimize_resmushit Version ^2.0@beta
drupal/limited_field_widgets Version ^2.0
drupal/linkit Version ^6.0@beta
drupal/login_emailusername Version ^2.1
drupal/media_responsive_thumbnail Version ^1.4
drupal/memcache Version ^2.5
drupal/menu_link_attributes Version ^1.3
drupal/menu_trail_by_path Version ^2.0
drupal/metatag Version ^1.22
drupal/metatag_async_widget Version ^1.1
drupal/migrate_plus Version ^6.0
drupal/migrate_tools Version ^6.0
drupal/module_filter Version ^4.0
drupal/paragraphs Version ^1.15
drupal/paragraphs_ee Version ^2.1@alpha
drupal/pathauto Version ^1.11
drupal/permissions_filter Version ^1.3
drupal/rdf Version ^2.1
drupal/recaptcha Version ^3.1
drupal/redirect Version ^1.8
drupal/robotstxt Version ^1.5
drupal/schema_metatag Version ^2.4
drupal/shield Version ^1.7
drupal/simple_sitemap Version ^4.1
drupal/smart_trim Version ^2.0
drupal/stage_file_proxy Version ^2.0
drupal/structure_sync Version ^2.0
drupal/svg_image Version ^3.0
drupal/swiftmailer Version ^2.4
drupal/token Version ^1.11
drupal/video_embed_field Version ^2.5
drupal/viewsreference Version ^2.0@beta
drush/drush Version ^11.5
egulias/email-validator Version ^3.2
topfloor/composer-cleanup-vcs-dirs Version ^1.1
vlucas/phpdotenv Version ^5.5
vmlyr-drupal/bazo Version ^8.0
vmlyr-drupal/biplane Version ^10.0
vmlyr-drupal/blackbird Version ^10.0
vmlyr-drupal/kit-docksal-commands Version ^8.2
webflo/drupal-finder Version ^1.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package vmlyr-drupal/kit contains the following files

Loading the files please wait ....