Browse Source

Liste des bons de livraisons : améliorations diverses (tri par point de vente, date, validation document) #158

refactoring
Guillaume Bourgeois 4 years ago
parent
commit
dc70d06c90
6 changed files with 225 additions and 100 deletions
  1. +24
    -0
      backend/controllers/DocumentController.php
  2. +25
    -11
      backend/views/delivery-note/index.php
  3. +2
    -1
      backend/web/js/backend.js
  4. +12
    -2
      common/models/DeliveryNoteSearch.php
  5. +2
    -1
      composer.json
  6. +160
    -85
      composer.lock

+ 24
- 0
backend/controllers/DocumentController.php View File

return ['return' => 'error']; return ['return' => 'error'];
} }


public function actionValidate($id)
{
$classDocument = $this->getClass() ;

if ($id > 0 && Document::isValidClass($classDocument)) {
$document = $classDocument::searchOne([
'id' => $id
]);

if ($document) {
$document->changeStatus(Document::STATUS_VALID);
$document->save();
Yii::$app->getSession()->setFlash('success', $this->getFlashMessage('validate', $document));
return $this->redirect(['delivery-note/index']) ;
}
}

Yii::$app->getSession()->setFlash('danger', 'Une erreur est survenue lors de la validation du document.');
return $this->redirect(['delivery-note/index']) ;
}

public function actionAjaxValidateDocument($idDocument, $classDocument) public function actionAjaxValidateDocument($idDocument, $classDocument)
{ {
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
elseif ($type == 'delete') { elseif ($type == 'delete') {
$message .= 'supprimé'; $message .= 'supprimé';
} }
elseif ($type == 'validate') {
$message .= 'validé';
}


if ($class == 'Invoice') { if ($class == 'Invoice') {
$message .= 'e'; $message .= 'e';

+ 25
- 11
backend/views/delivery-note/index.php View File

], ],
'name', 'name',
[ [
'attribute' => 'date',
'header' => 'Date',
'attribute' => 'date_distribution',
'header' => 'Jour de distribution',
'filter' => \yii\jui\DatePicker::widget([
'language' => 'fr',
'dateFormat' => 'dd/MM/yyyy',
'model' => $searchModel,
'attribute' => 'date_distribution',
'options' => ['class' => 'form-control']
]),
'value' => function($model) { 'value' => function($model) {
return date('d/m/Y',strtotime($model->date)) ;
$distribution = $model->getDistribution() ;
if($distribution) {
return date('d/m/Y',strtotime($distribution->date)) ;
}
return '' ;
} }
], ],
[ [
'attribute' => 'point_sale',
'attribute' => 'id_point_sale',
'header' => 'Point de vente', 'header' => 'Point de vente',
'format' => 'raw',
'filter' => ArrayHelper::map(PointSale::searchAll([], ['as_array'=>true]), 'id', 'name'),
'format' => 'html',
'value' => function($model) { 'value' => function($model) {
$pointSale = $model->getPointSale() ; $pointSale = $model->getPointSale() ;
$distribution = $model->getDistribution() ;
if($pointSale && $distribution) {
return Html::encode($pointSale->name).'<br />'
.'le '.date('d/m/Y', strtotime($distribution->date));
if($pointSale) {
return Html::encode($pointSale->name);
} }
return '' ; return '' ;
} }
], ],
[ [
], ],
[ [
'class' => 'yii\grid\ActionColumn', 'class' => 'yii\grid\ActionColumn',
'template' => '{update} {delete}',
'template' => '{validate} {update} {delete}',
'headerOptions' => ['class' => 'column-actions'], 'headerOptions' => ['class' => 'column-actions'],
'contentOptions' => ['class' => 'column-actions'], 'contentOptions' => ['class' => 'column-actions'],
'buttons' => [ 'buttons' => [
'validate' => function ($url, $model) {
return ($model->isStatusDraft() ? Html::a('<span class="glyphicon glyphicon-ok"></span>', $url, [
'title' => Yii::t('app', 'Valider'), 'class' => 'btn btn-default'
]) : '');
},
'update' => function ($url, $model) { 'update' => function ($url, $model) {
return ($model->isStatusDraft() ? Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [ return ($model->isStatusDraft() ? Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [
'title' => Yii::t('app', 'Modifier'), 'class' => 'btn btn-default' 'title' => Yii::t('app', 'Modifier'), 'class' => 'btn btn-default'

+ 2
- 1
backend/web/js/backend.js View File

*/ */


$(document).ready(function() { $(document).ready(function() {
opendistrib_datepicker() ;
opendistrib_datepicker() ;
$('button[data-toggle=popover]').popover() ; $('button[data-toggle=popover]').popover() ;
opendistrib_commandeauto() ; opendistrib_commandeauto() ;
opendistrib_points_vente_acces() ; opendistrib_points_vente_acces() ;
return datepicker.regional['fr']; return datepicker.regional['fr'];


})); }));


+ 12
- 2
common/models/DeliveryNoteSearch.php View File



class DeliveryNoteSearch extends DeliveryNote class DeliveryNoteSearch extends DeliveryNote
{ {
public $id_point_sale ;
public $date_distribution ;


public function rules() public function rules()
{ {
return [ return [
[[], 'safe'], [[], 'safe'],
[['comment', 'address', 'status'], 'string'],
[['id_user'], 'integer'],
[['comment', 'address', 'status', 'date_distribution'], 'string'],
[['id_user', 'id_point_sale'], 'integer'],
[['name', 'reference'], 'string', 'max' => 255], [['name', 'reference'], 'string', 'max' => 255],
]; ];
} }
$query->andFilterWhere(['like', 'delivery_note.reference', $this->reference]); $query->andFilterWhere(['like', 'delivery_note.reference', $this->reference]);
$query->andFilterWhere(['like', 'delivery_note.status', $this->status]); $query->andFilterWhere(['like', 'delivery_note.status', $this->status]);


if($this->id_point_sale) {
$query->andWhere(['order.id_point_sale' => $this->id_point_sale]);
}

if($this->date_distribution && strlen($this->date_distribution)) {
$query->andFilterWhere(['like', 'distribution.date', date('Y-m-d',strtotime(str_replace('/','-',$this->date_distribution)))]);
}

return $dataProvider; return $dataProvider;
} }
} }

+ 2
- 1
composer.json View File

"dmstr/yii2-adminlte-asset": "^2.1", "dmstr/yii2-adminlte-asset": "^2.1",
"payplug/payplug-php": "^2.5", "payplug/payplug-php": "^2.5",
"mailjet/mailjet-apiv3-php": "^1.4", "mailjet/mailjet-apiv3-php": "^1.4",
"linslin/yii2-curl": "*"
"linslin/yii2-curl": "*",
"yiisoft/yii2-jui": "^2.0"
}, },
"require-dev": { "require-dev": {
"yiisoft/yii2-codeception": "*", "yiisoft/yii2-codeception": "*",

+ 160
- 85
composer.lock View File

"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "d61ba662c69c68021c4ffa9989d25774",
"hash": "e181202c77963bf6994545b9ccf50071",
"content-hash": "9ca6d2f376b6adec9ca14385e2349fe1",
"packages": [ "packages": [
{ {
"name": "2amigos/yii2-chartjs-widget", "name": "2amigos/yii2-chartjs-widget",
"yii 2", "yii 2",
"yii2" "yii2"
], ],
"time": "2017-06-11T17:47:41+00:00"
"time": "2017-06-11 17:47:41"
}, },
{ {
"name": "2amigos/yii2-leaflet-extension", "name": "2amigos/yii2-leaflet-extension",
"yii", "yii",
"yii2" "yii2"
], ],
"time": "2017-03-26T18:39:13+00:00"
"time": "2017-03-26 18:39:13"
}, },
{ {
"name": "almasaeed2010/adminlte", "name": "almasaeed2010/adminlte",
"theme", "theme",
"web" "web"
], ],
"time": "2019-08-29T08:20:20+00:00"
"time": "2019-08-29 08:20:20"
}, },
{ {
"name": "bower-asset/bootstrap", "name": "bower-asset/bootstrap",
"library" "library"
] ]
}, },
{
"name": "bower-asset/jquery-ui",
"version": "1.12.1",
"source": {
"type": "git",
"url": "https://github.com/components/jqueryui.git",
"reference": "44ecf3794cc56b65954cc19737234a3119d036cc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/components/jqueryui/zipball/44ecf3794cc56b65954cc19737234a3119d036cc",
"reference": "44ecf3794cc56b65954cc19737234a3119d036cc",
"shasum": ""
},
"require": {
"bower-asset/jquery": ">=1.6"
},
"type": "bower-asset-library",
"extra": {
"bower-asset-main": [
"jquery-ui.js"
],
"bower-asset-ignore": []
},
"license": [
"MIT"
]
},
{ {
"name": "bower-asset/jquery.inputmask", "name": "bower-asset/jquery.inputmask",
"version": "3.2.7", "version": "3.2.7",
"paypal", "paypal",
"yii2" "yii2"
], ],
"time": "2015-08-08T18:07:32+00:00"
"time": "2015-08-08 18:07:32"
}, },
{ {
"name": "cebe/markdown", "name": "cebe/markdown",
"markdown", "markdown",
"markdown-extra" "markdown-extra"
], ],
"time": "2017-07-16T21:13:23+00:00"
"time": "2017-07-16 21:13:23"
}, },
{ {
"name": "cebe/yii2-gravatar", "name": "cebe/yii2-gravatar",
"gravatar", "gravatar",
"yii" "yii"
], ],
"time": "2013-12-10T17:49:58+00:00"
"time": "2013-12-10 17:49:58"
}, },
{ {
"name": "dmstr/yii2-adminlte-asset", "name": "dmstr/yii2-adminlte-asset",
"theme", "theme",
"yii2" "yii2"
], ],
"time": "2018-07-24T14:47:13+00:00"
"time": "2018-07-24 14:47:13"
}, },
{ {
"name": "doctrine/lexer", "name": "doctrine/lexer",
"parser", "parser",
"php" "php"
], ],
"time": "2019-06-08T11:03:04+00:00"
"time": "2019-06-08 11:03:04"
}, },
{ {
"name": "egulias/email-validator", "name": "egulias/email-validator",
"validation", "validation",
"validator" "validator"
], ],
"time": "2019-12-30T08:14:25+00:00"
"time": "2019-12-30 08:14:25"
}, },
{ {
"name": "ezyang/htmlpurifier", "name": "ezyang/htmlpurifier",
"keywords": [ "keywords": [
"html" "html"
], ],
"time": "2019-10-28T03:44:26+00:00"
"time": "2019-10-28 03:44:26"
}, },
{ {
"name": "fortawesome/font-awesome", "name": "fortawesome/font-awesome",
"font", "font",
"icon" "icon"
], ],
"time": "2016-10-24T15:52:54+00:00"
"time": "2016-10-24 15:52:54"
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"rest", "rest",
"web service" "web service"
], ],
"time": "2019-12-23T11:57:10+00:00"
"time": "2019-12-23 11:57:10"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"keywords": [ "keywords": [
"promise" "promise"
], ],
"time": "2016-12-20T10:07:11+00:00"
"time": "2016-12-20 10:07:11"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"uri", "uri",
"url" "url"
], ],
"time": "2019-07-01T23:21:34+00:00"
"time": "2019-07-01 23:21:34"
}, },
{ {
"name": "kartik-v/yii2-mpdf", "name": "kartik-v/yii2-mpdf",
"utf8", "utf8",
"yii2" "yii2"
], ],
"time": "2019-09-03T03:11:44+00:00"
"time": "2019-09-03 03:11:44"
}, },
{ {
"name": "linslin/yii2-curl", "name": "linslin/yii2-curl",
"restful", "restful",
"yii2" "yii2"
], ],
"time": "2019-02-25T10:56:34+00:00"
"time": "2019-02-25 10:56:34"
}, },
{ {
"name": "mailjet/mailjet-apiv3-php", "name": "mailjet/mailjet-apiv3-php",
"php", "php",
"v3" "v3"
], ],
"time": "2018-10-31T13:24:45+00:00"
"time": "2018-10-31 13:24:45"
}, },
{ {
"name": "mpdf/mpdf", "name": "mpdf/mpdf",
"php", "php",
"utf-8" "utf-8"
], ],
"time": "2019-11-28T09:39:33+00:00"
"time": "2019-11-28 09:39:33"
}, },
{ {
"name": "myclabs/deep-copy", "name": "myclabs/deep-copy",
"object", "object",
"object graph" "object graph"
], ],
"time": "2017-10-19T19:58:43+00:00"
"time": "2017-10-19 19:58:43"
}, },
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
"pseudorandom", "pseudorandom",
"random" "random"
], ],
"time": "2018-07-02T15:55:56+00:00"
"time": "2018-07-02 15:55:56"
}, },
{ {
"name": "payplug/payplug-php", "name": "payplug/payplug-php",
], ],
"description": "A simple PHP library for PayPlug public API.", "description": "A simple PHP library for PayPlug public API.",
"homepage": "https://www.payplug.com", "homepage": "https://www.payplug.com",
"time": "2015-05-06T00:00:00+00:00"
"time": "2015-05-06 00:00:00"
}, },
{ {
"name": "psr/http-message", "name": "psr/http-message",
"request", "request",
"response" "response"
], ],
"time": "2016-08-06T14:39:51+00:00"
"time": "2016-08-06 14:39:51"
}, },
{ {
"name": "psr/log", "name": "psr/log",
"psr", "psr",
"psr-3" "psr-3"
], ],
"time": "2019-11-01T11:05:21+00:00"
"time": "2019-11-01 11:05:21"
}, },
{ {
"name": "ralouphie/getallheaders", "name": "ralouphie/getallheaders",
} }
], ],
"description": "A polyfill for getallheaders.", "description": "A polyfill for getallheaders.",
"time": "2019-03-08T08:55:37+00:00"
"time": "2019-03-08 08:55:37"
}, },
{ {
"name": "rmrevin/yii2-fontawesome", "name": "rmrevin/yii2-fontawesome",
"font", "font",
"yii" "yii"
], ],
"time": "2017-01-11T14:05:47+00:00"
"time": "2017-01-11 14:05:47"
}, },
{ {
"name": "setasign/fpdi", "name": "setasign/fpdi",
"fpdi", "fpdi",
"pdf" "pdf"
], ],
"time": "2019-01-30T14:11:19+00:00"
"time": "2019-01-30 14:11:19"
}, },
{ {
"name": "swiftmailer/swiftmailer", "name": "swiftmailer/swiftmailer",
"mail", "mail",
"mailer" "mailer"
], ],
"time": "2019-11-12T09:31:26+00:00"
"time": "2019-11-12 09:31:26"
}, },
{ {
"name": "symfony/polyfill-iconv", "name": "symfony/polyfill-iconv",
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-11-27T13:56:44+00:00"
"time": "2019-11-27 13:56:44"
}, },
{ {
"name": "symfony/polyfill-intl-idn", "name": "symfony/polyfill-intl-idn",
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-11-27T13:56:44+00:00"
"time": "2019-11-27 13:56:44"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-11-27T14:18:11+00:00"
"time": "2019-11-27 14:18:11"
}, },
{ {
"name": "symfony/polyfill-php72", "name": "symfony/polyfill-php72",
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-11-27T13:56:44+00:00"
"time": "2019-11-27 13:56:44"
}, },
{ {
"name": "yiisoft/yii2", "name": "yiisoft/yii2",
"framework", "framework",
"yii2" "yii2"
], ],
"time": "2018-03-21T18:48:03+00:00"
"time": "2018-03-21 18:48:03"
}, },
{ {
"name": "yiisoft/yii2-bootstrap", "name": "yiisoft/yii2-bootstrap",
"bootstrap", "bootstrap",
"yii2" "yii2"
], ],
"time": "2019-04-23T13:18:43+00:00"
"time": "2019-04-23 13:18:43"
}, },
{ {
"name": "yiisoft/yii2-composer", "name": "yiisoft/yii2-composer",
"extension installer", "extension installer",
"yii2" "yii2"
], ],
"time": "2019-07-16T13:22:30+00:00"
"time": "2019-07-16 13:22:30"
},
{
"name": "yiisoft/yii2-jui",
"version": "2.0.7",
"source": {
"type": "git",
"url": "https://github.com/yiisoft/yii2-jui.git",
"reference": "ce45c16d4fbbe7d1c516d8d0e8311e07f6138eed"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/yiisoft/yii2-jui/zipball/ce45c16d4fbbe7d1c516d8d0e8311e07f6138eed",
"reference": "ce45c16d4fbbe7d1c516d8d0e8311e07f6138eed",
"shasum": ""
},
"require": {
"bower-asset/jquery-ui": "~1.12.1",
"yiisoft/yii2": "~2.0.4"
},
"type": "yii2-extension",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"yii\\jui\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Qiang Xue",
"email": "qiang.xue@gmail.com"
}
],
"description": "The Jquery UI extension for the Yii framework",
"keywords": [
"jQuery UI",
"yii2"
],
"time": "2017-11-25 15:32:29"
}, },
{ {
"name": "yiisoft/yii2-swiftmailer", "name": "yiisoft/yii2-swiftmailer",
"swiftmailer", "swiftmailer",
"yii2" "yii2"
], ],
"time": "2018-09-23T22:00:47+00:00"
"time": "2018-09-23 22:00:47"
}, },
{ {
"name": "yurkinx/yii2-image", "name": "yurkinx/yii2-image",
"image", "image",
"yii2" "yii2"
], ],
"time": "2019-01-25T01:01:48+00:00"
"time": "2019-01-25 01:01:48"
} }
], ],
"packages-dev": [ "packages-dev": [
"gherkin", "gherkin",
"parser" "parser"
], ],
"time": "2019-01-16T14:22:17+00:00"
"time": "2019-01-16 14:22:17"
}, },
{ {
"name": "bower-asset/typeahead.js", "name": "bower-asset/typeahead.js",
"functional testing", "functional testing",
"unit testing" "unit testing"
], ],
"time": "2019-04-24T11:28:19+00:00"
"time": "2019-04-24 11:28:19"
}, },
{ {
"name": "codeception/phpunit-wrapper", "name": "codeception/phpunit-wrapper",
} }
], ],
"description": "PHPUnit classes used by Codeception", "description": "PHPUnit classes used by Codeception",
"time": "2019-11-23T18:22:38+00:00"
"time": "2019-11-23 18:22:38"
}, },
{ {
"name": "codeception/stub", "name": "codeception/stub",
"MIT" "MIT"
], ],
"description": "Flexible Stub wrapper for PHPUnit's Mock Builder", "description": "Flexible Stub wrapper for PHPUnit's Mock Builder",
"time": "2019-03-02T15:35:10+00:00"
"time": "2019-03-02 15:35:10"
}, },
{ {
"name": "doctrine/instantiator", "name": "doctrine/instantiator",
"constructor", "constructor",
"instantiate" "instantiate"
], ],
"time": "2015-06-14T21:17:01+00:00"
"time": "2015-06-14 21:17:01"
}, },
{ {
"name": "facebook/webdriver", "name": "facebook/webdriver",
"selenium", "selenium",
"webdriver" "webdriver"
], ],
"time": "2019-06-13T08:02:18+00:00"
"time": "2019-06-13 08:02:18"
}, },
{ {
"name": "fzaninotto/faker", "name": "fzaninotto/faker",
"faker", "faker",
"fixtures" "fixtures"
], ],
"time": "2019-12-12T13:22:17+00:00"
"time": "2019-12-12 13:22:17"
}, },
{ {
"name": "phar-io/manifest", "name": "phar-io/manifest",
} }
], ],
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"time": "2017-03-05T18:14:27+00:00"
"time": "2017-03-05 18:14:27"
}, },
{ {
"name": "phar-io/version", "name": "phar-io/version",
} }
], ],
"description": "Library for handling version information and constraints", "description": "Library for handling version information and constraints",
"time": "2017-03-05T17:38:23+00:00"
"time": "2017-03-05 17:38:23"
}, },
{ {
"name": "phpdocumentor/reflection-common", "name": "phpdocumentor/reflection-common",
"reflection", "reflection",
"static analysis" "static analysis"
], ],
"time": "2017-09-11T18:02:19+00:00"
"time": "2017-09-11 18:02:19"
}, },
{ {
"name": "phpdocumentor/reflection-docblock", "name": "phpdocumentor/reflection-docblock",
} }
], ],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"time": "2019-12-28T18:55:12+00:00"
"time": "2019-12-28 18:55:12"
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"email": "me@mikevanriel.com" "email": "me@mikevanriel.com"
} }
], ],
"time": "2017-12-30T13:23:38+00:00"
"time": "2017-12-30 13:23:38"
}, },
{ {
"name": "phpspec/php-diff", "name": "phpspec/php-diff",
} }
], ],
"description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
"time": "2016-04-07T12:29:16+00:00"
"time": "2016-04-07 12:29:16"
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
"spy", "spy",
"stub" "stub"
], ],
"time": "2019-12-22T21:05:45+00:00"
"time": "2019-12-22 21:05:45"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2018-04-06T15:36:58+00:00"
"time": "2018-04-06 15:36:58"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
"filesystem", "filesystem",
"iterator" "iterator"
], ],
"time": "2017-11-27T13:52:08+00:00"
"time": "2017-11-27 13:52:08"
}, },
{ {
"name": "phpunit/php-text-template", "name": "phpunit/php-text-template",
"keywords": [ "keywords": [
"template" "template"
], ],
"time": "2015-06-21T13:50:34+00:00"
"time": "2015-06-21 13:50:34"
}, },
{ {
"name": "phpunit/php-timer", "name": "phpunit/php-timer",
"keywords": [ "keywords": [
"timer" "timer"
], ],
"time": "2017-02-26T11:10:40+00:00"
"time": "2017-02-26 11:10:40"
}, },
{ {
"name": "phpunit/php-token-stream", "name": "phpunit/php-token-stream",
"keywords": [ "keywords": [
"tokenizer" "tokenizer"
], ],
"time": "2017-11-27T05:48:46+00:00"
"time": "2017-11-27 05:48:46"
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2019-02-01T05:22:47+00:00"
"time": "2019-02-01 05:22:47"
}, },
{ {
"name": "phpunit/phpunit-mock-objects", "name": "phpunit/phpunit-mock-objects",
"xunit" "xunit"
], ],
"abandoned": true, "abandoned": true,
"time": "2018-08-09T05:50:03+00:00"
"time": "2018-08-09 05:50:03"
}, },
{ {
"name": "sebastian/code-unit-reverse-lookup", "name": "sebastian/code-unit-reverse-lookup",
], ],
"description": "Looks up which function or method a line of code belongs to", "description": "Looks up which function or method a line of code belongs to",
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"time": "2017-03-04T06:30:41+00:00"
"time": "2017-03-04 06:30:41"
}, },
{ {
"name": "sebastian/comparator", "name": "sebastian/comparator",
"compare", "compare",
"equality" "equality"
], ],
"time": "2018-02-01T13:46:46+00:00"
"time": "2018-02-01 13:46:46"
}, },
{ {
"name": "sebastian/diff", "name": "sebastian/diff",
"keywords": [ "keywords": [
"diff" "diff"
], ],
"time": "2017-08-03T08:09:46+00:00"
"time": "2017-08-03 08:09:46"
}, },
{ {
"name": "sebastian/environment", "name": "sebastian/environment",
"environment", "environment",
"hhvm" "hhvm"
], ],
"time": "2017-07-01T08:51:00+00:00"
"time": "2017-07-01 08:51:00"
}, },
{ {
"name": "sebastian/exporter", "name": "sebastian/exporter",
"export", "export",
"exporter" "exporter"
], ],
"time": "2019-09-14T09:02:43+00:00"
"time": "2019-09-14 09:02:43"
}, },
{ {
"name": "sebastian/global-state", "name": "sebastian/global-state",
"keywords": [ "keywords": [
"global state" "global state"
], ],
"time": "2017-04-27T15:39:26+00:00"
"time": "2017-04-27 15:39:26"
}, },
{ {
"name": "sebastian/object-enumerator", "name": "sebastian/object-enumerator",
], ],
"description": "Traverses array structures and object graphs to enumerate all referenced objects", "description": "Traverses array structures and object graphs to enumerate all referenced objects",
"homepage": "https://github.com/sebastianbergmann/object-enumerator/", "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"time": "2017-08-03T12:35:26+00:00"
"time": "2017-08-03 12:35:26"
}, },
{ {
"name": "sebastian/object-reflector", "name": "sebastian/object-reflector",
], ],
"description": "Allows reflection of object attributes, including inherited and non-public ones", "description": "Allows reflection of object attributes, including inherited and non-public ones",
"homepage": "https://github.com/sebastianbergmann/object-reflector/", "homepage": "https://github.com/sebastianbergmann/object-reflector/",
"time": "2017-03-29T09:07:27+00:00"
"time": "2017-03-29 09:07:27"
}, },
{ {
"name": "sebastian/recursion-context", "name": "sebastian/recursion-context",
], ],
"description": "Provides functionality to recursively process PHP variables", "description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context", "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
"time": "2017-03-03T06:23:57+00:00"
"time": "2017-03-03 06:23:57"
}, },
{ {
"name": "sebastian/resource-operations", "name": "sebastian/resource-operations",
], ],
"description": "Provides a list of PHP built-in functions that operate on resources", "description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations", "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"time": "2015-07-28T20:34:47+00:00"
"time": "2015-07-28 20:34:47"
}, },
{ {
"name": "sebastian/version", "name": "sebastian/version",
], ],
"description": "Library that helps with managing the version number of Git-hosted PHP projects", "description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version", "homepage": "https://github.com/sebastianbergmann/version",
"time": "2016-10-03T07:35:21+00:00"
"time": "2016-10-03 07:35:21"
}, },
{ {
"name": "symfony/browser-kit", "name": "symfony/browser-kit",
], ],
"description": "Symfony BrowserKit Component", "description": "Symfony BrowserKit Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-10-24T15:33:53+00:00"
"time": "2019-10-24 15:33:53"
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-12-01T10:04:45+00:00"
"time": "2019-12-01 10:04:45"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
], ],
"description": "Symfony CssSelector Component", "description": "Symfony CssSelector Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-10-01T11:57:37+00:00"
"time": "2019-10-01 11:57:37"
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
], ],
"description": "Symfony Debug Component", "description": "Symfony Debug Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-10-24T15:33:53+00:00"
"time": "2019-10-24 15:33:53"
}, },
{ {
"name": "symfony/dom-crawler", "name": "symfony/dom-crawler",
], ],
"description": "Symfony DomCrawler Component", "description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-10-24T15:33:53+00:00"
"time": "2019-10-24 15:33:53"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
], ],
"description": "Symfony EventDispatcher Component", "description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-10-24T15:33:53+00:00"
"time": "2019-10-24 15:33:53"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-11-17T21:55:15+00:00"
"time": "2019-11-17 21:55:15"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"polyfill", "polyfill",
"portable" "portable"
], ],
"time": "2019-11-27T13:56:44+00:00"
"time": "2019-11-27 13:56:44"
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
], ],
"description": "Symfony Process Component", "description": "Symfony Process Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-11-28T10:05:51+00:00"
"time": "2019-11-28 10:05:51"
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
], ],
"description": "Symfony Yaml Component", "description": "Symfony Yaml Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-10-24T15:33:53+00:00"
"time": "2019-10-24 15:33:53"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",
} }
], ],
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"time": "2019-06-13T22:48:21+00:00"
"time": "2019-06-13 22:48:21"
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
"check", "check",
"validate" "validate"
], ],
"time": "2019-11-24T13:36:37+00:00"
"time": "2019-11-24 13:36:37"
}, },
{ {
"name": "yiisoft/yii2-codeception", "name": "yiisoft/yii2-codeception",
"yii2" "yii2"
], ],
"abandoned": "codeception/codeception", "abandoned": "codeception/codeception",
"time": "2017-05-22T12:08:21+00:00"
"time": "2017-05-22 12:08:21"
}, },
{ {
"name": "yiisoft/yii2-debug", "name": "yiisoft/yii2-debug",
"debugger", "debugger",
"yii2" "yii2"
], ],
"time": "2017-10-09T20:30:01+00:00"
"time": "2017-10-09 20:30:01"
}, },
{ {
"name": "yiisoft/yii2-faker", "name": "yiisoft/yii2-faker",
"faker", "faker",
"yii2" "yii2"
], ],
"time": "2018-02-19T20:27:10+00:00"
"time": "2018-02-19 20:27:10"
}, },
{ {
"name": "yiisoft/yii2-gii", "name": "yiisoft/yii2-gii",
"gii", "gii",
"yii2" "yii2"
], ],
"time": "2016-03-18T14:09:46+00:00"
"time": "2016-03-18 14:09:46"
} }
], ],
"aliases": [], "aliases": [],

Loading…
Cancel
Save