Download the PHP package locomotive-charcoal/charcoal without Composer

On this page you can find all versions of the php package locomotive-charcoal/charcoal. 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 charcoal



by Locomotive πŸš‚

Latest Stable Version Uses Semantic Release with Conventional Commits Commitizen-friendly

Charcoal is a web framework and content management system that adapts to all of your project's needs.

This repository is a monorepo containing the entirety of the web framework. Charcoal can be used as a full stack framework or as standalone packages which can be used independently.

Charcoal packages

Core packages can be found in the packages directory.

Directory Distribution Description
admin charcoal/admin The administration dashboard for Charcoal.
app charcoal/app The web application layer (container, routing, controllers,…), based on Slim.
attachment charcoal/attachment Provides support for working with relationships between models.
cache charcoal/cache The cache layer, based on Stash.
cms charcoal/cms Provides content management system (CMS) tools and extensions.
config charcoal/config The base configuration and entity layer most packages build upon.
core charcoal/core The model, repository, and database layer.
email charcoal/email Provides support for sending emails, based on PHPMailer.
factory charcoal/factory Provides support for object creation (factory, builder, class resolution,…).
image charcoal/image Provides support for image handling and manipulation.
object charcoal/object Provides support for advanced modeling (routable, revisionable, authoriship,…).
property charcoal/property The model metadata layer.
queue charcoal/queue Provides support for building queues.
translator charcoal/translator Provides support for internationalization, based on Symfony.
ui charcoal/ui Provides layout tools (dashboards, layouts, forms, menus,…).
user charcoal/user The user modeling, authentication, and authorization layer.
view charcoal/view The view layer with support for Mustache, Twig,…

Installation

The preferred (and only supported) method is with Composer:

To start from a working skeleton:

Standalone packages

The Charcoal framework is split into standalone packages which can be used independently. For example, a project might not need an administration panel, a queue system, or to send emails.

Migrate a project to charcoal/charcoal

The following will aide with converting a project from locomotivemtl/charcoal-* to charcoal/*.

ℹ️ Previously all core packages maintained their own version numbering independently.

The monorepo framework uses a shared version number for all core packages for consistent and expected interoperability.

ℹ️ The contrib packages continue to maintain their existing independent version numbering.

Option A β€” If you want to replace all packages with the full-stack framework package: 1. Remove requirements for core packages (`locomotivemtl/charcoal-*`) in your `composer.json` file. 2. Replace requirements for contrib packages (`locomotivemtl/charcoal-contrib-*`), in your `composer.json` file, with equivalents from [`charcoal/contrib-*`][charcoal-org]. 3. Run `composer require charcoal/charcoal` to install the framework. 4. Run `composer update` to ensure all requirements are up-to-date. 5. Run the following migration script: The `migrate-project` script will update all metadata paths in your project's configuration files. Afterwards, it will edit or create a `.env` environment variable file with the key `PACKAGES_PATH` set to: `vendor/charcoal/charcoal/packages`. This allows the `%packages.path%` string template to expand to the packages location within `charcoal/charcoal`, otherwise it will lead in the `vendor` directory.
Option B β€” If you want to replace all packages with new standalone packages: 1. Replace requirements for core packages (`locomotivemtl/charcoal-*`), in your `composer.json` file. 2. Replace requirements for contrib packages (`locomotivemtl/charcoal-contrib-*`), in your `composer.json` file, with equivalents from [`charcoal/contrib-*`][charcoal-org]. 3. Run `composer require charcoal/config charcoal/core…` to install the packages. 4. Run `composer update` to ensure all requirements are up-to-date. 5. Replace occurrences of `vendor/locomotivemtl/charcoal-*` in your configuration files with `vendor/charcoal/*`.

Dependencies

⚠️ Required

βš™οΈ Configuration

[TODO]

Usage

[TODO]

Development

Development is made in a seperate branch from the main branch.

⚠️ The main branch is protected and doesn't allow pushing changes directly into.

To install the development environment:

To run the scripts (phplint, phpcs, and phpunit):

Commit message format

Charcoal uses semantic-release to handle the release process.

It uses the commit messages to determine the consumer impact of changes in the codebase. Following formalized conventions for commit messages, semantic-release automatically determines the next Semantic Version number, generates a changelog, and publishes the release.

The current setup uses the Conventional Commits for commit messages. You can consult it for further information.

This repository is Commitizen friendly and is configured to use the Conventional Commits standard, therfore you can install it globally to ease the process of writting commits.

Alternatively, there is some code editor plugins that can help with the creation of conventional commits:

Here is an example of release types based on some commit messages:

Development guidelines

Development should be branch-based and commit messages should following Conventional Commits.

Steps Notes
1. Branch from main or checkout develop Make sure the develop branch is up to date with main. You should favor a new branch if the needed work time is not short. On a personal branch, favor using the rebase method to keep up to date with the main branch
2. Do your thing Write some code
3. Commit your changes using the Conventional Commits standard You can use Commitizen or a code editor plugin to help with this process. See the Commit message format section for more information.
4. Push to a remote branch and run the ./create-pr script. Using the ./create-pr to script to create a PR is not mandatory. You could always create it manually, but the script will be faster, generates a changelog message and assigns a reviewer from the @charcoalphp/reviewers
5. Wait for a review and a merge to happen Drink β˜•οΈ and eat πŸ•
6. After the merge is done, github workflows will handle the release process, tagging, updating dependencies and updatting the changelog. Good Job ! 🀘

Maintenance and automations

Symplify's MonorepoBuilder is used to handle the conformity between the core repo and it's packages. It will sync composer.json files and packages versions.

[TODO] Semantic release config in .releaserc

[TODO] Conventional Commits

TODOcommitizen

Development Dependencies

Development History

This monorepo was created with a many to mono aproach using this guide and tool:

Github Actions

Actions Trigger Description
Release Push on supported branches Trigger a Github release using semantic-release
Split Monorepo Release on main The split action splits the packages into individual repositories. Only triggered when a tag is pushed. Based on symplify/monorepo-split-github-action
Update Changelog Release on main Uses changelog-updater-action to update the changelog of the main branch

Scripts

create-pr

This script streamlines the process of creating a Pull Request. When your branch is ready to be pulled into the main or another [target] branch, this tool will generate it for you, request review form @charcoalphp/reviewers and add a beautiful and readable release note generated from the differences between the two breanches.

Documentation

Example

create-release-notes (optional tool)

This script generates release notes on request, returning a changelog based on the requested range of commits or branches.

Documentation:

Example:

Output:

Changes:

Features

  • create-pr: add a script to trigger a pull request on the remote (3016115)

Bug Fixes

  • create-pr: remove Personal access token from script and replace with $GITHUB_TOKEN instead (f2aaac6)
  • package: add missing semantic-release plugin (59bd1b1)

Contributing

Everyone interacting with Charcoal is expected to follow the code of conduct.

Please see our contribution guide on how to contribute to Charcoal.

If you are tying to report a possible security vulnerability in Charcoal, please see our security policy for more information.

✍🏻 Authors

πŸŽ‰ Contributors

List of contributors

Made with contrib.rocks.

Changelog

View CHANGELOG.

The changelog is compliant with Keep a Changelog and is autogenerated from autoreleases.

License

Charcoal is licensed under the MIT license. See LICENSE for details.


All versions of charcoal with dependencies

PHP Build Version
Package Version
Requires php Version ^7.4 || ^8.0
ext-fileinfo Version *
ext-json Version *
ext-mbstring Version *
ext-pdo Version *
ext-simplexml Version *
ext-spl Version *
barryvdh/elfinder-flysystem-driver Version ^0.3
erusev/parsedown Version ^1.7
guzzlehttp/guzzle Version ^6.0 || ^7.0
kriswallsmith/assetic Version ^1.4
laminas/laminas-permissions-acl Version ^2.8
league/climate Version ^3.2
league/flysystem Version ^1.0
mcaskill/php-html-build-attributes Version ^1.0
monolog/monolog Version ^1.17
phpmailer/phpmailer Version ~6.0
pimple/pimple Version ^3.0
psr/cache Version ^1.0
psr/container Version ^1.0
psr/http-message Version ^1.0
psr/log Version ^1.0
seld/jsonlint Version ^1.9
slim/slim Version ^3.7
studio-42/elfinder Version 2.1.64
symfony/translation Version ^3.4
tedivm/stash Version ~0.16
vlucas/phpdotenv Version ^5.4
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 locomotive-charcoal/charcoal contains the following files

Loading the files please wait ....