"Everybody loves ioly!"
ioly is a decentralized/centralized universal package installer for web based php software. You can use it with any system that supports modules/extensions/packages. e.g. OXID eSales, Wordpress, Redaxo etc. etc. etc..
The ioly system is driven by a "cookbook", stored on GitHub, which contains "recipes" to install any zip-based package. If something is missing, you can send us a pull request to extend/improve the main ioly cookbook. As soon as we merge your modifications, EVERY ioly installation has access to your package!
- download ioly core
- download ioly connector (e. g. OXID connector) OR install it via ioly core, see below :) E.g. "php ioly.php install ioly/ioly-oxid-connector latest"
- search for a recipe
- install recipe
- done
Download ioly
core via console or via HTTP or:
curl -O https://raw.githubusercontent.com/ioly/ioly/core/ioly.php
Using ioly
module manager via console. In this example, we'll add a module to an installation of OXID eSales:
$ cd /var/www/myshop.de/
$ export IOLY_SYSTEM_BASE=/var/www/myshop.de/
$ export IOLY_SYSTEM_VERSION=4.9
$ php ioly.php update
$ php ioly.php install ioly/ioly-oxid-connector latest
$ php ioly.php list
$ php ioly.php search paypal
$ php ioly.php show oxid/paypal
$ php ioly.php install oxid/paypal 3.2.1
NOTE:
If you are in the base directory of an OXID eShop, you don't have to set IOLY_SYSTEM_BASE
and IOLY_SYSTEM_VERSION
, since
ioly core
uses the current directory and the OXID package info "pkg.info" file to automatically set those variables.
You can also use the ioly Core via Composer:
{
"repositories": {
"ioly/ioly": {
"type": "vcs",
"url": "https://github.com/ioly/ioly.git"
}
},
"require": {
"ioly/ioly": "dev-core"
}
}
and also use it from PHP e.g.:
require_once 'vendor/autoload.php';
$ioly = new \ioly\ioly();
$ioly->setSystemBasePath(dirname(__FILE__));
$ioly->setSystemVersion('5.2');
// add custom cookbook(s) - this is optional, see WIKI :)
$ioly->addCookbook('myowncookbook', "http://my.domain.de/git-archives/myCookbook/develop.zip");
/**
* define ioly packages here
*/
$aPackages = array(
'ioly/ioly-oxid-connector' => 'latest',
//'myvendor/my-own-custom-module' => 'latest',
);
foreach ($aPackages as $package => $version) {
if (!$ioly->isInstalledInVersion($package, $version)) {
try {
$ioly->install($package, $version);
echo "\nPackage: $package installed in version: $version";
} catch (Exception $ex) {
echo "\nError installing package '$package': " . $ex->getMessage();
}
} else {
echo "\nPackage $package already installed in version: $version";
}
}
So, you can even get fancy and combine Composer and ioly for some kind of auto-deployment, e.g. in Composer, load the ioly core and then call a PHP script at the end:
"scripts": {
"post-autoload-dump": [
"php ./install_with_ioly.php"
]
},
which then installs and activates your OXID modules :) If you run into timeouts with your script, try to add this to your "composer.json" file, too:
"config": {
"process-timeout": 5000
},
### Contributing
- write a recipe
- commit your recipe
- send a pull request
- done, everybody can use it!
{
"name": "PayPal",
"vendor": "oxid",
"type": "oxid",
"license": "GNU",
"desc": {
"en": "PayPal payment method for checkout.",
"de": "PayPal als Zahlart."
},
"tags": [
"frontend",
"paypal",
"payment",
"checkout"
],
"versions": {
"3.2.1": {
"project": "https://github.com/OXID-eSales/paypal/tree/v3.2.1",
"url": "https://github.com/OXID-eSales/paypal/archive/v3.2.1.zip",
"supported": [
"4.9",
"4.8",
"4.7"
],
"mapping": [
{
"src": "source/modules/oe/",
"dest": "modules/oe/"
}
],
"touch": [
"modules/oe/vendormetadata.php"
]
}
}
}
Read more about writing a recipe.
- PHP 5.3.0 or above (at least 5.3.4 recommended to avoid potential bugs)
- PHP extensions:
- cUrl
- JSON
- ZIP
Dave Holloway - http://www.gn2-netwerk.de - http://twitter.com/dajoho
Tobias Merkl - http://www.proudsourcing.de - http://twitter.com/tabsl
Stefan Moises - http://www.rent-a-hero.de - http://twitter.com/upsettweety
You can also view the list of contributors who participated in this project.
ioly is licensed under the MIT License - see the LICENSE file for details.