Distribution
PHP Composer Installation for Concrete Packages
Composer Setup for Packages
- Create 
composer.jsonin your package root withpackage_handleand settypetoconcrete5-package. - Register your package on Packagist or add it to the 
composer.jsonin your Concrete installation underrepositories. 
Including Third-Party Libraries
- Add third-party libraries in 
composer.jsonunderrequire, like"khill/lavacharts": "2.5.*". - Use 
composerpkgto avoid duplicating libraries. - Specify Concrete and PHP versions for compatibility.
 
Autoloading Code
- Use 
getPackageAutoloaderRegistries()incontroller.phpor theautoloadkey incomposer.json. 
Example composer.json
{
    "name": "your_name/package_handle",
    "type": "concrete5-package",
    "require": {
        "concrete5/core": ">=8.5.0",
        "khill/lavacharts": "2.5.*"
    },
    "autoload": {
        "psr-4": {
            "CustomNamespace\\": "src/"
        }
    },
    "config": {
        "platform": {
            "php": "5.5.9"
        }
    }
}
Example controller.php
<?php
namespace Concrete\Package\PackageHandle;
use Concrete\Core\Package\Package;
defined('C5_EXECUTE') or die('Access Denied.');
class Controller extends Package
{
    protected $appVersionRequired = '8.5.0';
    protected $pkgHandle = 'package_handle';
    public function install()
    {
        $this->setupAutoloader();
        parent::install();
    }
    public function on_start()
    {
        $this->setupAutoloader();
    }
    private function setupAutoloader()
    {
        if (file_exists($this->getPackagePath() . '/vendor')) {
            require_once $this->getPackagePath() . '/vendor/autoload.php';
        }
    }
}
Composer Install in Concrete
cd path/to/the/concrete5/root/directory
composer require your_name/package_handle
Prepare for Non-Composer Concrete
cd path/to/the/package/directory
composerpkg install
Publishing Packages in Concrete Marketplace
Manual Publishing
Submit your add-on or theme to the Concrete Marketplace here: https://marketplace.concretecms.com/marketplace/manage_item/.