PHPackages                             venne/packages - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. venne/packages

ActiveLibrary[Framework](/categories/framework)

venne/packages
==============

Simple solution for managing packages in Nette framework

2147PHP

Since Mar 3Pushed 11y ago3 watchersCompare

[ Source](https://github.com/Venne/packages)[ Packagist](https://packagist.org/packages/venne/packages)[ RSS](/packages/venne-packages/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Venne:Packages [![Build Status](https://camo.githubusercontent.com/8e85d40f656f6438c350fe32f4301d1cef54a34ba405b2c08959608a4802c3be/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f56656e6e652f7061636b616765732e706e67)](http://travis-ci.org/Venne/packages)
=========================================================================================================================================================================================================================================================================

[](#vennepackages-)

Simple solution for managing packages in Nette framework.

What problems can it solve?

- Registering extensions to `Nette\Compiler`
- Creating default config structure in `config.neon`
- Publishing directory with assets into `%wwwDir%`
- Resolving paths to packages by simple syntax

Installation
------------

[](#installation)

**Install package manager**

```
composer require venne/packages:@dev           // as a dependency
# composer create-project venne/packages:@dev  // aside from the project
```

**add hooks to root `composer.json` file**

```
{
	"scripts": {
		"post-install-cmd": [
			"vendor/bin/package-manager sync --composer"
		],
		"post-update-cmd": [
			"vendor/bin/package-manager sync --composer"
		]
	}
}
```

**Use it by composer commands**

```
composer require kdyby/doctrine
```

Package definition
------------------

[](#package-definition)

If you have already created `composer.json` file, you're done ;)

**Metadata**

Metadata allow you to define advanced features:

- `relativePublicPath`: directory with asset files.
- `configuration`: array will be copied to `config.neon` file.
- `installers`: array of classes implements `Venne\Packages\IInstaller`.

There are three ways how to define metadata:

#### 1) In `composer.json`:

[](#1-in-composerjson)

```
{
	"extra": {
		"venne": {
			"relativePublicPath": "/Resources/public",
			"configuration": {
				"extensions": {
					"translation": "Kdyby\\Translation\\DI\\TranslationExtension"
				}
			},
			"installers": [
				"Namespace\MyInstaller"
			]
		}
	}
}
```

#### 2) In `.venne.php` file:

[](#2-in-vennephp-file)

Implement interface `Venne\Packages\IPackage`

```
