1
0
Fork 0
mirror of https://github.com/Oreolek/kangana.git synced 2024-06-16 15:01:09 +03:00

Group model, composer migrations, indentation fix

This commit is contained in:
Alexander Yakovlev 2016-10-05 10:44:39 +07:00
parent a2fa17993b
commit cc24e19cbe
16 changed files with 309 additions and 231 deletions

18
.editorconfig Normal file
View file

@ -0,0 +1,18 @@
# This file is for unifying the coding style for different editors and IDEs
# editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.bat]
end_of_line = crlf
[*.yml]
indent_style = space
indent_size = 2

3
.gitmodules vendored
View file

@ -4,6 +4,3 @@
[submodule "modules/config-writer"]
path = modules/config-writer
url = https://github.com/ppx17/kohana-config-file-writer.git
[submodule "modules/migrations"]
path = modules/migrations
url = git@github.com:kohana-minion/tasks-migrations.git

View file

@ -74,7 +74,7 @@ $modules = [
'email' => $vendor_path.'tscms/email',// Electronic mail class
'debug-toolbar' => MODPATH.'debug-toolbar', // Debug toolbar
'config-writer' => MODPATH.'config-writer', // Write to PHP configs
'migrations' => MODPATH.'migrations', // SQL migrations
'migrations' => $vendor_path.'zer0pants/kohana-migrations', // SQL migrations
'core' => SYSPATH, // Core system
];
if (Kohana::$environment === Kohana::DEVELOPMENT)

View file

@ -14,26 +14,30 @@ class Model_Client extends ORM {
'subscription' => array(
'model' => 'Subscription',
'through' => 'clients_subscriptions'
)
),
'group' => array(
'model' => 'Group',
'through' => 'clients_groups'
),
);
/**
* @return array validation rules
**/
public function rules()
{
return array(
{
return array(
'email' => array(
array('not_empty'),
array('email'),
array('min_length', array(':value', 5)),
array('not_empty'),
array('email'),
array('min_length', array(':value', 5)),
),
'name' => array(
array('not_empty'),
array('min_length', array(':value', 5)),
array('not_empty'),
array('min_length', array(':value', 5)),
),
);
}
);
}
/**
* Array of field labels.

View file

@ -21,16 +21,16 @@ class Model_Course extends ORM {
* @return array validation rules
**/
public function rules()
{
return array(
{
return array(
'title' => array(
array('not_empty'),
array('min_length', array(':value', 4)),
array('max_length', array(':value', 100)),
array('not_empty'),
array('min_length', array(':value', 4)),
array('max_length', array(':value', 100)),
),
'description' => array(
array('not_empty'),
array('min_length', array(':value', 20)),
array('not_empty'),
array('min_length', array(':value', 20)),
),
'period' => array(
array('numeric')
@ -38,8 +38,8 @@ class Model_Course extends ORM {
'price' => array(
array('numeric')
)
);
}
);
}
/**
* Array of field labels.

View file

@ -0,0 +1,51 @@
<?php defined('SYSPATH') OR die('No direct access allowed.');
/**
* Group model.
* Group is a collection of clients.
* @package Models
* @author Oreolek
**/
class Model_Group extends ORM {
protected $_has_many = array(
'clients' => array(
'model' => 'Client',
'through' => 'clients_groups'
),
);
/**
* @return array validation rules
**/
public function rules()
{
return array(
'title' => array(
array('not_empty'),
array('min_length', array(':value', 4)),
array('max_length', array(':value', 255)),
),
);
}
/**
* Array of field labels.
* Used in forms.
**/
protected $_labels = array(
'title' => 'Title',
);
public static function count($id)
{
$query = DB::select(array(DB::expr('COUNT(*)'), 'cnt'))->from('clients_groups')->where('group_id', '=', $id);
return $query->execute()->get('cnt');
}
/**
* Return client count
**/
public function count_clients()
{
return self::count($this->id);
}
}

View file

@ -9,23 +9,23 @@ class Model_Instant extends ORM {
protected $belongs_to = array(
'subscription'
);
/**
* @return array validation rules
**/
public function rules()
{
return array(
{
return array(
'subject' => array(
array('not_empty'),
array('max_length', array(':value', 128)),
array('not_empty'),
array('max_length', array(':value', 128)),
),
'text' => array(
array('not_empty'),
array('min_length', array(':value', 20)),
array('not_empty'),
array('min_length', array(':value', 20)),
),
);
}
);
}
/**
* Array of field labels.
@ -47,7 +47,7 @@ class Model_Instant extends ORM {
$this->sent = TRUE;
return self::_send($address, $this->text, $this->subject, $token);
}
/**
* @param $address string or array of strings - email addresses
* @param $text message body

View file

@ -9,26 +9,26 @@ class Model_Letter extends ORM {
protected $belongs_to = array(
'course'
);
/**
* @return array validation rules
**/
public function rules()
{
return array(
{
return array(
'subject' => array(
array('not_empty'),
array('max_length', array(':value', 128)),
array('not_empty'),
array('max_length', array(':value', 128)),
),
'text' => array(
array('not_empty'),
array('min_length', array(':value', 20)),
array('not_empty'),
array('min_length', array(':value', 20)),
),
'order' => array(
array('numeric')
)
);
}
);
}
/**
* Array of field labels.
@ -57,7 +57,7 @@ class Model_Letter extends ORM {
{
return self::_send($address, $this->text, $this->subject, $this->id, $token);
}
/**
* @param $address string or array of strings - email addresses
* @param $text message body

View file

@ -5,20 +5,20 @@ class Model_Page extends ORM {
* @return array validation rules
**/
public function rules()
{
return array(
{
return array(
'name' => array(
array('not_empty'),
array('not_empty'),
),
'content' => array(
array('not_empty'),
array('min_length', array(':value', 4)),
array('not_empty'),
array('min_length', array(':value', 4)),
),
'draft' => array(
array('numeric')
)
);
}
);
}
/**
* Array of field labels.

View file

@ -5,10 +5,10 @@ class Model_Photo extends ORM {
* @return array validation rules
**/
public function rules()
{
return array(
{
return array(
'name' => array(
array('not_empty'),
array('not_empty'),
),
'filename' => array(
array('not_empty')
@ -30,23 +30,23 @@ class Model_Photo extends ORM {
}
/**
* Function that adds suffix _thumb to file name: /home/dhawu.jpeg -> /home/dhawu_thumb.jpeg
* @param integer $width
* thumbnail width (manages the suffix)
* @param integer $height
* thumbnail height (manages the suffix)
* @retval string
*/
* Function that adds suffix _thumb to file name: /home/dhawu.jpeg -> /home/dhawu_thumb.jpeg
* @param integer $width
* thumbnail width (manages the suffix)
* @param integer $height
* thumbnail height (manages the suffix)
* @retval string
*/
public function get_thumbnail_path($width = NULL, $height = NULL)
{
$image_path = $this->get_image_path();
$image_path = $this->get_image_path();
return $this->generate_thumbnail($image_path, $width, $height);
}
public static function generate_thumbnail($image_path, $width = 0, $height = 0)
{
if ($width == 0) $width = Kohana::$config->load('common.thumbnail_width');
if ($height == 0) $height = Kohana::$config->load('common.thumbnail_height');
if ($height == 0) $height = Kohana::$config->load('common.thumbnail_height');
if (!is_file(DOCROOT.$image_path))
{
throw new HTTP_Exception_404('File not found');
@ -55,26 +55,26 @@ class Model_Photo extends ORM {
$thumbnail_path = self::generate_thumbnail_path($image_path, $width, $height);
if (!is_file(DOCROOT.$thumbnail_path)) {
$image = Image::factory(DOCROOT.$image_path);
$image->resize($width, $height, Image::WIDTH);
$image->crop($width, $height);
$image->save(DOCROOT.$thumbnail_path, 80); //save thumbnail with quality of 80
}
return $thumbnail_path;
if (!is_file(DOCROOT.$thumbnail_path)) {
$image = Image::factory(DOCROOT.$image_path);
$image->resize($width, $height, Image::WIDTH);
$image->crop($width, $height);
$image->save(DOCROOT.$thumbnail_path, 80); //save thumbnail with quality of 80
}
return $thumbnail_path;
}
public static function generate_thumbnail_path($image_path, $width = 0, $height = 0)
{
if ($width == 0) $width = Kohana::$config->load('common.thumbnail_width');
if ($height == 0) $height = Kohana::$config->load('common.thumbnail_height');
if ($height == 0) $height = Kohana::$config->load('common.thumbnail_height');
$parts = explode('.', $image_path);
$count = count($parts) - 2;
if ($count < 0) $count = 0;
$suffix = 'thumb';
if ($width) $suffix .= $width;
if ($height) $suffix .= '_' . $height;
$parts[$count] .= '_' . $suffix;
$count = count($parts) - 2;
if ($count < 0) $count = 0;
$suffix = 'thumb';
if ($width) $suffix .= $width;
if ($height) $suffix .= '_' . $height;
$parts[$count] .= '_' . $suffix;
return implode('.', $parts);
}

View file

@ -20,25 +20,25 @@ class Model_Subscription extends ORM {
* @return array validation rules
**/
public function rules()
{
return array(
{
return array(
'title' => array(
array('not_empty'),
array('min_length', array(':value', 4)),
array('max_length', array(':value', 100)),
array('not_empty'),
array('min_length', array(':value', 4)),
array('max_length', array(':value', 100)),
),
'description' => array(
array('not_empty'),
array('min_length', array(':value', 20)),
array('not_empty'),
array('min_length', array(':value', 20)),
),
'welcome' => array(
array('min_length', array(':value', 20)),
array('min_length', array(':value', 20)),
),
'price' => array(
array('numeric')
)
);
}
);
}
/**
* Array of field labels.

View file

@ -20,22 +20,22 @@ class Model_Task extends ORM {
'model' => 'Client'
)
);
/**
* @return array validation rules
**/
public function rules()
{
return array(
{
return array(
'date' => array(
array('not_empty'),
array('date'),
array('not_empty'),
array('date'),
),
'status' => array(
array('numeric')
)
);
}
);
}
/**
* Array of field labels.

View file

@ -0,0 +1,48 @@
<?php defined('SYSPATH') OR die('No direct script access.');
/**
* Subscriber groups
*/
class Migration_Kangana_20161005095437 extends Minion_Migration_Base {
/**
* Run queries needed to apply this migration
*
* @param Kohana_Database $db Database connection
*/
public function up(Kohana_Database $db)
{
$db->query(NULL, "
CREATE TABLE IF NOT EXISTS `groups` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;");
$db->query(NULL, "
CREATE TABLE IF NOT EXISTS `clients_groups` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`client_id` int(11) NOT NULL,
`group_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_clients_groups_1_idx` (`client_id`),
KEY `fk_clients_groups_2_idx` (`group_id`)
) ENGINE=InnoDB;");
$db->query(NULL, "
ALTER TABLE `clients_groups`
ADD CONSTRAINT `fk_clients_groups_1` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `fk_clients_groups_2` FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
");
}
/**
* Run queries needed to remove this migration
*
* @param Kohana_Database $db Database connection
*/
public function down(Kohana_Database $db)
{
$db->query(NULL, "DROP TABLE `clients_groups`");
$db->query(NULL, "DROP TABLE `groups`");
}
}

View file

@ -17,6 +17,12 @@
"irc": "irc://irc.freenode.net/kohana",
"source": "http://github.com/kohana/kohana"
},
"repositories": [
{
"type": "git",
"url": "https://github.com/zer0pants/kohana-migrations.git"
}
],
"require": {
"php": ">=5.4.0",
"kohana/core": "3.4.*",
@ -30,7 +36,8 @@
"psr/log": "^1.0",
"zombor/kostache": "^4.0",
"tscms/email": "dev-3.3/master",
"twbs/bootstrap-sass": "^3.3"
"twbs/bootstrap-sass": "^3.3",
"zer0pants/kohana-migrations": "dev-3.4/develop"
},
"require-dev": {
"phing/phing": "dev-master",

224
composer.lock generated
View file

@ -4,8 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "a202bab921fd378ac0057369986e8e87",
"content-hash": "af95e96dce1b7590ce2b12c4c31db807",
"hash": "370816fa629c0856ac1c68ef503cd333",
"content-hash": "37236e1d636299186f13be656b62c8fa",
"packages": [
{
"name": "composer/installers",
@ -114,54 +114,6 @@
],
"time": "2016-08-13 20:53:52"
},
{
"name": "fortawesome/font-awesome",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/FortAwesome/Font-Awesome.git",
"reference": "48a7d9db28d450571a0882810d1591a2fadc39c6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FortAwesome/Font-Awesome/zipball/48a7d9db28d450571a0882810d1591a2fadc39c6",
"reference": "48a7d9db28d450571a0882810d1591a2fadc39c6",
"shasum": ""
},
"require-dev": {
"jekyll": "1.0.2",
"lessc": "1.4.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.6.x-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"OFL-1.1",
"MIT"
],
"authors": [
{
"name": "Dave Gandy",
"email": "dave@fontawesome.io",
"homepage": "http://twitter.com/davegandy",
"role": "Developer"
}
],
"description": "The iconic font and CSS framework",
"homepage": "http://fontawesome.io/",
"keywords": [
"FontAwesome",
"awesome",
"bootstrap",
"font",
"icon"
],
"time": "2016-09-18 14:27:31"
},
{
"name": "kohana/auth",
"version": "dev-3.4/develop",
@ -634,59 +586,6 @@
],
"time": "2015-11-26 06:12:04"
},
{
"name": "leafo/scssphp",
"version": "v0.6.6",
"source": {
"type": "git",
"url": "https://github.com/leafo/scssphp.git",
"reference": "6fdfe19d2b13a3f12ba0792227f0718809ce4e4d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/leafo/scssphp/zipball/6fdfe19d2b13a3f12ba0792227f0718809ce4e4d",
"reference": "6fdfe19d2b13a3f12ba0792227f0718809ce4e4d",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"kherge/box": "~2.5",
"phpunit/phpunit": "~3.7",
"squizlabs/php_codesniffer": "~2.5"
},
"bin": [
"bin/pscss"
],
"type": "library",
"autoload": {
"psr-4": {
"Leafo\\ScssPhp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Leaf Corcoran",
"email": "leafot@gmail.com",
"homepage": "http://leafo.net"
}
],
"description": "scssphp is a compiler for SCSS written in PHP.",
"homepage": "http://leafo.github.io/scssphp/",
"keywords": [
"css",
"less",
"sass",
"scss",
"stylesheet"
],
"time": "2016-09-11 01:34:11"
},
{
"name": "mustache/mustache",
"version": "v2.6.1",
@ -937,6 +836,60 @@
],
"time": "2016-07-25 19:58:53"
},
{
"name": "zer0pants/kohana-migrations",
"version": "dev-3.4/develop",
"source": {
"type": "git",
"url": "https://github.com/zer0pants/kohana-migrations.git",
"reference": "420ad1ddb805b824e2c0e9a6624f951ecd075bc8"
},
"require": {
"kohana/core": ">=3.4",
"kohana/minion": ">=3.4",
"php": ">=5.2.4"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-3.3/develop": "3.3.x-dev"
}
},
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Michael Roberts",
"email": "michael@verbate.co",
"role": "developer"
},
{
"name": "Mitch",
"email": "mitch@verbate.co",
"role": "developer"
},
{
"name": "Contributors",
"homepage": "https://github.com/kohana-minion/tasks-migrations/graphs/contributors",
"role": "contributor"
}
],
"description": "Migration tasks for the kohana-minion cli framework",
"homepage": "https://github.com/kohana-minion/tasks-migrations",
"keywords": [
"database",
"framework",
"kohana",
"migrations",
"tasks"
],
"support": {
"issues": "https://github.com/kohana-minion/tasks-migrations/issues",
"source": "https://github.com/kohana-minion/tasks-migrations"
},
"time": "2016-04-04 04:25:55"
},
{
"name": "zombor/kostache",
"version": "v4.0.3",
@ -1203,12 +1156,12 @@
"source": {
"type": "git",
"url": "https://github.com/phingofficial/phing.git",
"reference": "026cfeeac2bcc333f6c10e5b24077f022735f1d8"
"reference": "ea5617995882f0e0f90e5ba94dc4d1948c84388a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phingofficial/phing/zipball/026cfeeac2bcc333f6c10e5b24077f022735f1d8",
"reference": "026cfeeac2bcc333f6c10e5b24077f022735f1d8",
"url": "https://api.github.com/repos/phingofficial/phing/zipball/ea5617995882f0e0f90e5ba94dc4d1948c84388a",
"reference": "ea5617995882f0e0f90e5ba94dc4d1948c84388a",
"shasum": ""
},
"require": {
@ -1288,7 +1241,7 @@
"task",
"tool"
],
"time": "2016-10-01 13:08:47"
"time": "2016-10-04 15:20:11"
},
{
"name": "phpdocumentor/reflection-common",
@ -1567,12 +1520,12 @@
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
"reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
"reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
"reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
"reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
"shasum": ""
},
"require": {
@ -1606,7 +1559,7 @@
"filesystem",
"iterator"
],
"time": "2015-06-21 13:08:43"
"time": "2016-10-03 07:40:28"
},
{
"name": "phpunit/php-text-template",
@ -1699,12 +1652,12 @@
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
"reference": "cab6c6fefee93d7b7c3a01292a0fe0884ea66644"
"reference": "2ef59c57cd196301eeb88865d25916898dd72872"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/cab6c6fefee93d7b7c3a01292a0fe0884ea66644",
"reference": "cab6c6fefee93d7b7c3a01292a0fe0884ea66644",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/2ef59c57cd196301eeb88865d25916898dd72872",
"reference": "2ef59c57cd196301eeb88865d25916898dd72872",
"shasum": ""
},
"require": {
@ -1740,7 +1693,7 @@
"keywords": [
"tokenizer"
],
"time": "2015-09-23 14:46:55"
"time": "2016-10-03 07:38:46"
},
{
"name": "phpunit/phpunit",
@ -1748,12 +1701,12 @@
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "d99e588e3cbab28db86f8da22e22c72d8cc38543"
"reference": "7b58ff0d8996b56675a3e05dcd563e0a4f244935"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d99e588e3cbab28db86f8da22e22c72d8cc38543",
"reference": "d99e588e3cbab28db86f8da22e22c72d8cc38543",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7b58ff0d8996b56675a3e05dcd563e0a4f244935",
"reference": "7b58ff0d8996b56675a3e05dcd563e0a4f244935",
"shasum": ""
},
"require": {
@ -1812,7 +1765,7 @@
"testing",
"xunit"
],
"time": "2016-09-22 17:37:27"
"time": "2016-10-03 13:00:58"
},
{
"name": "phpunit/phpunit-mock-objects",
@ -1876,12 +1829,12 @@
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
"reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
"reference": "21400bd9503c3782f5ee80349117483dcf8cec3f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
"reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/21400bd9503c3782f5ee80349117483dcf8cec3f",
"reference": "21400bd9503c3782f5ee80349117483dcf8cec3f",
"shasum": ""
},
"require": {
@ -1932,7 +1885,7 @@
"compare",
"equality"
],
"time": "2015-07-26 15:48:44"
"time": "2016-10-03 07:45:42"
},
{
"name": "sebastian/diff",
@ -1940,12 +1893,12 @@
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
"reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
"reference": "d0814318784b7756fb932116acd19ee3b0cbe67a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
"reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/d0814318784b7756fb932116acd19ee3b0cbe67a",
"reference": "d0814318784b7756fb932116acd19ee3b0cbe67a",
"shasum": ""
},
"require": {
@ -1984,7 +1937,7 @@
"keywords": [
"diff"
],
"time": "2015-12-08 07:14:41"
"time": "2016-10-03 07:45:03"
},
{
"name": "sebastian/environment",
@ -2042,12 +1995,12 @@
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
"reference": "7dfcd2418aacbdb5e123fb23ac735acfdd6c588d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
"reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7dfcd2418aacbdb5e123fb23ac735acfdd6c588d",
"reference": "7dfcd2418aacbdb5e123fb23ac735acfdd6c588d",
"shasum": ""
},
"require": {
@ -2101,7 +2054,7 @@
"export",
"exporter"
],
"time": "2016-06-17 09:04:28"
"time": "2016-10-03 07:44:30"
},
{
"name": "sebastian/global-state",
@ -2160,12 +2113,12 @@
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
"reference": "7ff5b1b3dcc55b8ab8ae61ef99d4730940856ee7"
"reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/7ff5b1b3dcc55b8ab8ae61ef99d4730940856ee7",
"reference": "7ff5b1b3dcc55b8ab8ae61ef99d4730940856ee7",
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
"reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
"shasum": ""
},
"require": {
@ -2205,7 +2158,7 @@
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
"time": "2016-01-28 05:39:29"
"time": "2016-10-03 07:41:43"
},
{
"name": "sebastian/version",
@ -2352,6 +2305,7 @@
"minimum-stability": "dev",
"stability-flags": {
"tscms/email": 20,
"zer0pants/kohana-migrations": 20,
"phing/phing": 20
},
"prefer-stable": false,

@ -1 +0,0 @@
Subproject commit 5f584751d91f0348e96a989ed2b8d0ed399dbc1f