diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4f3f9cc4..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-language: php
-
-php:
- - '7.2'
-
-script:
- - vendor/bin/phpunit --coverage-clover=coverage.xml --configuration phpunit.xml.dist src
-
-env:
- - SYMFONY_ENV=test
-
-install:
- - composer update
-
-services:
- - redis-server
-
-after_success:
- - bash <(curl -s https://codecov.io/bash)
diff --git a/INSTALL.md b/INSTALL.md
index d61d6446..a436e25e 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,13 +1,13 @@
# 安装手册
- cd /path/to/webroot/path
+> 以下文档中 `webuser`均指运行的web server的用户,如果不用`sudo -u `执行命令的话,
+> 会导致某些runtime目录的权限不对,导致网页打不开。
+>
+> 在vmoex的根目录下,执行`php bin/console` 命令时建议都带上`sudo -u ` 前缀
+ cd /path/to/webroot/path
git clone git@github.com:yeskn-studio/vmoex-framework.git && cd vmoex-framework
-**或者指定版本,比如:**
-
- git clone --branch v2.1.1 git@github.com:yeskn-studio/vmoex-framework.git && cd vmoex-framework
-
**修改runtime目录权限**
chown -R [webuser] var (各类日志缓存存放目录)
@@ -17,39 +17,36 @@
**修改配置文件**
vim app/config/parameters.yml.dist
+
+请按照文件中的注释修改成自己服务器的配置。
**安装php依赖**
- composer install (期间会提示配置,检查无误可一路回车)
+ composer install (期间会提示配置,检查无误可一路回车,可能耗时比较长,请耐心等待,如果失败,建议修改composer的源)
**安装前端依赖**
- yarn install
+ yarn install (耐心等待...)
**创建数据库**
- php bin/console doctrine:database:create (如果你已经手动创建了数据库,可跳过)
+ sudo -u [webuser] php bin/console doctrine:database:create (如果你已经手动创建了数据库,可跳过)
**导入数据**
- php bin/console doctrine:database:init
-
-**载入翻译数据**
-
- php bin/console translation:persist
+ sudo -u [webuser] php bin/console doctrine:database:init
**修改管理员密码**
- php bin/console change-password -u admin -p [password]
+ sudo -u [webuser] php bin/console change-password -u admin -p [password]
**清理缓存**
- chown -R [webuser] var (上面已经执行过,这里再执行一次)
sudo -u [webuser] php bin/console cache:clear --env=dev
**创建静态资源文件**
- php bin/console assetic:dump --env=dev
+ sudo -u [webuser] php bin/console assetic:dump --env=dev
**启动websocket**
@@ -99,14 +96,13 @@ server {
**清理prod模式下的缓存**
- chown -R [webuser] var
sudo -u [webuser] php bin/console cache:clear --env=prod
**生成prod模式下的静态资源文件**
- php bin/console assetic:dump --env=prod
+ sudo -u [webuser] php bin/console assetic:dump --env=prod
## 注意!!
-app/config/parameters.yml.dist并不是真正生效的配置文件,真正生效的是自动生成的app/config/parameters.yml,
-需修改配置时请修改此文件,修改完后,需要重新清理缓存或者生成静态资源文件。
+**app/config/parameters.yml.dist**并不是真正生效的配置文件,真正生效的是自动生成的**app/config/parameters.yml**,
+需修改配置时请修改此文件,修改完后,**需要重新清理缓存**或者生成静态资源文件。
diff --git a/README.md b/README.md
index 11571b69..fadc8ada 100644
--- a/README.md
+++ b/README.md
@@ -3,12 +3,6 @@
-
-
-
-
-
-
diff --git a/UPGRADE-3.0.md b/UPGRADE-3.0.md
new file mode 100644
index 00000000..e3ea1ca4
--- /dev/null
+++ b/UPGRADE-3.0.md
@@ -0,0 +1,79 @@
+# UPGRADE FROM 2.X to 3.0
+
+此文档用于提供向2.x升级到3.0的向导。
+
+
+> 以下文档中 `webuser`均指运行的web server的用户,如果不用`sudo -u `执行命令的话,
+> 会导致某些runtime目录的权限不对,导致网页打不开。
+>
+> 在vmoex的根目录下,执行`php bin/console` 命令时建议都带上`sudo -u ` 前缀
+
+## 清理缓存
+
+任何时候,都应当清理缓存:
+
+```bash
+sudo -u php bin/console cache:clear --env=prod
+```
+
+> 大多数情况下,如果你遇到了问题,不妨执行以上命令。
+
+## 拉取代码
+
+如果你修改或者增加过翻译词条,请直接看如下的**翻译文件**,如果没有,直接执行如下命令即可:
+
+```
+git pull origin master
+```
+
+## 翻译文件
+
+> 如果你修改过翻译文件,用 `git statsu`命令会发现 `app/Resources/translations`目录下有修改的文件,这时`git pull`可能会失败,
+这时,需要使用 `git stash`命令暂存起来,再执行`git pull origin master`,然后执行`git stash pop`将暂存的修改拿出来合并到新增的词条中。
+
+将新增的翻译载入到数据库中:
+
+```
+sudo -u php bin/console translation:persist
+```
+
+## 前端更新
+
+由于bower已经不再维护了,因此vmoex也由bower切换到目前比较流行的前端包管理工具**yarn**,安装yarn:
+
+```
+npm install yarn -g
+```
+
+yarn的使用方式也类似:
+
+```bash
+yarn install
+```
+
+即可。
+
+## 生成资源文件
+
+```
+sudo -u php bin/console assetic:dump --env=prod
+```
+
+
+## 数据库结构更新
+
+由于vmoex使用了redis的查询缓存,因此需要先执行如下命令去掉缓存:
+
+```bash
+sudo -u php bin/console doctrine:cache:clear-metadata --env=prod
+```
+
+再更新数据库结构:
+
+```bash
+php bin/console doctrine:schema:update --dump-sql --force --env=prod
+```
+
+以上命令在更新数据库的同时也会显示执行了哪些sql。
+
+
diff --git a/app/AppKernel.php b/app/AppKernel.php
index 21e8f947..170ae709 100644
--- a/app/AppKernel.php
+++ b/app/AppKernel.php
@@ -48,6 +48,13 @@ public function getCacheDir()
return dirname(__DIR__).'/var/cache/'.$this->getEnvironment();
}
+ protected function getKernelParameters()
+ {
+ $params = parent::getKernelParameters();
+ $params['kernel.config_dir'] = $this->getRootDir() . '/config';
+ return $params;
+ }
+
public function getLogDir()
{
return dirname(__DIR__).'/var/logs';
diff --git a/app/Resources/translations/messages.en.yml b/app/Resources/translations/messages.en.yml
index 323a6c33..115e989f 100644
--- a/app/Resources/translations/messages.en.yml
+++ b/app/Resources/translations/messages.en.yml
@@ -183,3 +183,4 @@ no_enough_gold: 'Shortage of gold coins'
comment_not_exist: 'Comments do not exist'
cant_modify_current_user_in_admin: 'cant modify current user in admin'
hours: h
+access_denied: 'access denied'
diff --git a/app/Resources/translations/messages.jp.yml b/app/Resources/translations/messages.jp.yml
index cfb54d2b..efbef6fa 100644
--- a/app/Resources/translations/messages.jp.yml
+++ b/app/Resources/translations/messages.jp.yml
@@ -183,3 +183,4 @@ no_enough_gold: 金貨が足りない
comment_not_exist: コメントは存在しません
cant_modify_current_user_in_admin: null
hours: 時間
+access_denied: 访问被拒绝
diff --git a/app/Resources/translations/messages.zh_CN.yml b/app/Resources/translations/messages.zh_CN.yml
index 7a11c5ca..3e6155de 100644
--- a/app/Resources/translations/messages.zh_CN.yml
+++ b/app/Resources/translations/messages.zh_CN.yml
@@ -185,3 +185,4 @@ cant_modify_current_user_in_admin: 不能在管理端修改当前个人信息,
user_not_exist: 用户不存在
locale_invalid: 非法的语言
hours: 小时
+access_denied: 访问被拒绝
diff --git a/app/Resources/translations/messages.zh_TW.yml b/app/Resources/translations/messages.zh_TW.yml
index 2af03f45..d24f3565 100644
--- a/app/Resources/translations/messages.zh_TW.yml
+++ b/app/Resources/translations/messages.zh_TW.yml
@@ -183,3 +183,4 @@ no_enough_gold: 金幣不足
comment_not_exist: 評論不存在
cant_modify_current_user_in_admin: null
hours: 小時
+access_denied: 访问被拒绝
diff --git a/app/Resources/views/form/image-input-filed-type.html.twig b/app/Resources/views/form/image-input-filed-type.html.twig
index 8765039e..116a305f 100644
--- a/app/Resources/views/form/image-input-filed-type.html.twig
+++ b/app/Resources/views/form/image-input-filed-type.html.twig
@@ -9,9 +9,6 @@
{% endif %}
{{ form_widget(form, {attr: {class: 'form-control'}}) }}
- {% if attr['help'] is defined %}
- {{ attr['help'] }}
- {% endif %}
{{ form_errors(form) }}
{% endfilter %}
{% endblock image_input_widget %}
diff --git a/app/Resources/views/form/vertical-search-field.html.twig b/app/Resources/views/form/vertical-search-field.html.twig
new file mode 100644
index 00000000..0c14708f
--- /dev/null
+++ b/app/Resources/views/form/vertical-search-field.html.twig
@@ -0,0 +1,14 @@
+{% block form_row %}
+ {% filter spaceless %}
+
+ {% endfilter %}
+{% endblock form_row %}
diff --git a/app/config/config.yml b/app/config/config.yml
index 72467c51..2ed786c2 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -19,7 +19,7 @@ framework:
secret: '%secret%'
translator: { fallbacks: ["%locale%"] }
router:
- resource: '%kernel.project_dir%/app/config/routing.yml'
+ resource: '%kernel.config_dir%/routing.yml'
strict_requirements: ~
form: ~
csrf_protection: ~
diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml
index 2e34903d..dd55d549 100644
--- a/app/config/config_dev.yml
+++ b/app/config/config_dev.yml
@@ -3,7 +3,7 @@ imports:
framework:
router:
- resource: '%kernel.project_dir%/app/config/routing_dev.yml'
+ resource: '%kernel.config_dir%/routing_dev.yml'
strict_requirements: true
profiler: { only_exceptions: false }
diff --git a/app/config/services.yml b/app/config/services.yml
index 5c35ef97..691eecf7 100644
--- a/app/config/services.yml
+++ b/app/config/services.yml
@@ -21,3 +21,4 @@ services:
- { name: kernel.event_listener, event: kernel.response }
Symfony\Bridge\Twig\Extension\AssetExtension: "@twig.extension.assets"
+ Symfony\Bundle\SecurityBundle\Security\FirewallMap: "@security.firewall.map"
diff --git a/composer.json b/composer.json
index c9975744..88446bab 100644
--- a/composer.json
+++ b/composer.json
@@ -12,11 +12,6 @@
"app/AppCache.php"
]
},
- "autoload-dev": {
- "files": [
- "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
- ]
- },
"require": {
"php": ">=5.5.9",
"doctrine/doctrine-bundle": "^1.6",
diff --git a/composer.lock b/composer.lock
index 98299208..0fa032ee 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,23 +8,17 @@
"packages": [
{
"name": "composer/ca-bundle",
- "version": "1.1.3",
+ "version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
- "reference": "8afa52cd417f4ec417b4bfe86b68106538a87660"
+ "reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660",
- "reference": "8afa52cd417f4ec417b4bfe86b68106538a87660",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/558f321c52faeb4828c03e7dc0cfe39a09e09a2d",
+ "reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d",
+ "shasum": ""
},
"require": {
"ext-openssl": "*",
@@ -66,40 +60,34 @@
"ssl",
"tls"
],
- "time": "2018-10-18T06:09:13+00:00"
+ "time": "2019-01-28T09:30:10+00:00"
},
{
"name": "doctrine/annotations",
- "version": "v1.4.0",
+ "version": "v1.6.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "54cacc9b81758b14e3ce750f205a393d52339e97"
+ "reference": "53120e0eb10355388d6ccbe462f1fea34ddadb24"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97",
- "reference": "54cacc9b81758b14e3ce750f205a393d52339e97",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/53120e0eb10355388d6ccbe462f1fea34ddadb24",
+ "reference": "53120e0eb10355388d6ccbe462f1fea34ddadb24",
+ "shasum": ""
},
"require": {
"doctrine/lexer": "1.*",
- "php": "^5.6 || ^7.0"
+ "php": "^7.1"
},
"require-dev": {
"doctrine/cache": "1.*",
- "phpunit/phpunit": "^5.7"
+ "phpunit/phpunit": "^6.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4.x-dev"
+ "dev-master": "1.6.x-dev"
}
},
"autoload": {
@@ -140,43 +128,42 @@
"docblock",
"parser"
],
- "time": "2017-02-24T16:22:25+00:00"
+ "time": "2019-03-25T19:12:02+00:00"
},
{
"name": "doctrine/cache",
- "version": "v1.6.2",
+ "version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
- "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b"
+ "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b",
- "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57",
+ "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57",
+ "shasum": ""
},
"require": {
- "php": "~5.5|~7.0"
+ "php": "~7.1"
},
"conflict": {
"doctrine/common": ">2.2,<2.4"
},
"require-dev": {
- "phpunit/phpunit": "~4.8|~5.0",
- "predis/predis": "~1.0",
- "satooshi/php-coveralls": "~0.6"
+ "alcaeus/mongo-php-adapter": "^1.1",
+ "doctrine/coding-standard": "^4.0",
+ "mongodb/mongodb": "^1.1",
+ "phpunit/phpunit": "^7.0",
+ "predis/predis": "~1.0"
+ },
+ "suggest": {
+ "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.6.x-dev"
+ "dev-master": "1.8.x-dev"
}
},
"autoload": {
@@ -211,49 +198,45 @@
}
],
"description": "Caching library offering an object-oriented API for many cache backends",
- "homepage": "http://www.doctrine-project.org",
+ "homepage": "https://www.doctrine-project.org",
"keywords": [
"cache",
"caching"
],
- "time": "2017-07-22T12:49:21+00:00"
+ "time": "2018-08-21T18:01:43+00:00"
},
{
"name": "doctrine/collections",
- "version": "v1.4.0",
+ "version": "v1.6.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
- "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba"
+ "reference": "d2ae4ef05e25197343b6a39bae1d3c427a2f6956"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba",
- "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/d2ae4ef05e25197343b6a39bae1d3c427a2f6956",
+ "reference": "d2ae4ef05e25197343b6a39bae1d3c427a2f6956",
+ "shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "php": "^7.1.3"
},
"require-dev": {
- "doctrine/coding-standard": "~0.1@dev",
- "phpunit/phpunit": "^5.7"
+ "doctrine/coding-standard": "^6.0",
+ "phpstan/phpstan-shim": "^0.9.2",
+ "phpunit/phpunit": "^7.0",
+ "vimeo/psalm": "^3.2.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3.x-dev"
+ "dev-master": "1.6.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Doctrine\\Common\\Collections\\": "lib/"
+ "psr-4": {
+ "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -282,50 +265,51 @@
"email": "schmittjoh@gmail.com"
}
],
- "description": "Collections Abstraction library",
- "homepage": "http://www.doctrine-project.org",
+ "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
+ "homepage": "https://www.doctrine-project.org/projects/collections.html",
"keywords": [
"array",
"collections",
- "iterator"
+ "iterators",
+ "php"
],
- "time": "2017-01-03T10:49:41+00:00"
+ "time": "2019-03-25T19:03:48+00:00"
},
{
"name": "doctrine/common",
- "version": "v2.7.3",
+ "version": "v2.10.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
- "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
+ "reference": "30e33f60f64deec87df728c02b107f82cdafad9d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
- "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d",
+ "reference": "30e33f60f64deec87df728c02b107f82cdafad9d",
+ "shasum": ""
},
"require": {
- "doctrine/annotations": "1.*",
- "doctrine/cache": "1.*",
- "doctrine/collections": "1.*",
- "doctrine/inflector": "1.*",
- "doctrine/lexer": "1.*",
- "php": "~5.6|~7.0"
+ "doctrine/annotations": "^1.0",
+ "doctrine/cache": "^1.0",
+ "doctrine/collections": "^1.0",
+ "doctrine/event-manager": "^1.0",
+ "doctrine/inflector": "^1.0",
+ "doctrine/lexer": "^1.0",
+ "doctrine/persistence": "^1.1",
+ "doctrine/reflection": "^1.0",
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "^5.4.6"
+ "doctrine/coding-standard": "^1.0",
+ "phpunit/phpunit": "^6.3",
+ "squizlabs/php_codesniffer": "^3.0",
+ "symfony/phpunit-bridge": "^4.0.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.7.x-dev"
+ "dev-master": "2.10.x-dev"
}
},
"autoload": {
@@ -357,46 +341,48 @@
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
}
],
- "description": "Common Library for Doctrine projects",
- "homepage": "http://www.doctrine-project.org",
+ "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.",
+ "homepage": "https://www.doctrine-project.org/projects/common.html",
"keywords": [
- "annotations",
- "collections",
- "eventmanager",
- "persistence",
- "spl"
+ "common",
+ "doctrine",
+ "php"
],
- "time": "2017-07-22T08:35:12+00:00"
+ "time": "2018-11-21T01:24:55+00:00"
},
{
"name": "doctrine/dbal",
- "version": "v2.5.13",
+ "version": "v2.9.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "729340d8d1eec8f01bff708e12e449a3415af873"
+ "reference": "22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873",
- "reference": "729340d8d1eec8f01bff708e12e449a3415af873",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9",
+ "reference": "22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9",
+ "shasum": ""
},
"require": {
- "doctrine/common": ">=2.4,<2.8-dev",
- "php": ">=5.3.2"
+ "doctrine/cache": "^1.0",
+ "doctrine/event-manager": "^1.0",
+ "ext-pdo": "*",
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "4.*",
- "symfony/console": "2.*||^3.0"
+ "doctrine/coding-standard": "^5.0",
+ "jetbrains/phpstorm-stubs": "^2018.1.2",
+ "phpstan/phpstan": "^0.10.1",
+ "phpunit/phpunit": "^7.4",
+ "symfony/console": "^2.0.5|^3.0|^4.0",
+ "symfony/phpunit-bridge": "^3.4.5|^4.0.5"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -407,12 +393,13 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.5.x-dev"
+ "dev-master": "2.9.x-dev",
+ "dev-develop": "3.0.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Doctrine\\DBAL\\": "lib/"
+ "psr-4": {
+ "Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -437,35 +424,33 @@
"email": "jonwage@gmail.com"
}
],
- "description": "Database Abstraction Layer",
- "homepage": "http://www.doctrine-project.org",
+ "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
+ "homepage": "https://www.doctrine-project.org/projects/dbal.html",
"keywords": [
+ "abstraction",
"database",
"dbal",
+ "mysql",
"persistence",
+ "pgsql",
+ "php",
"queryobject"
],
- "time": "2017-07-22T20:44:48+00:00"
+ "time": "2018-12-31T03:27:51+00:00"
},
{
"name": "doctrine/doctrine-bundle",
- "version": "1.10.0",
+ "version": "1.10.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineBundle.git",
- "reference": "82d2c63cd09acbde2332f55d9aa7b28aefe4983d"
+ "reference": "1f99e6645030542079c57d4680601a4a8778a1bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d",
- "reference": "82d2c63cd09acbde2332f55d9aa7b28aefe4983d",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/1f99e6645030542079c57d4680601a4a8778a1bd",
+ "reference": "1f99e6645030542079c57d4680601a4a8778a1bd",
+ "shasum": ""
},
"require": {
"doctrine/dbal": "^2.5.12",
@@ -536,7 +521,7 @@
"orm",
"persistence"
],
- "time": "2018-11-30T13:53:17+00:00"
+ "time": "2019-02-06T13:18:04+00:00"
},
{
"name": "doctrine/doctrine-cache-bundle",
@@ -550,13 +535,7 @@
"type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927",
"reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"doctrine/cache": "^1.4.2",
@@ -635,41 +614,109 @@
],
"time": "2018-11-09T06:25:35+00:00"
},
+ {
+ "name": "doctrine/event-manager",
+ "version": "v1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/event-manager.git",
+ "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3",
+ "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "conflict": {
+ "doctrine/common": "<2.9@dev"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^4.0",
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Doctrine Event Manager component",
+ "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
+ "keywords": [
+ "event",
+ "eventdispatcher",
+ "eventmanager"
+ ],
+ "time": "2018-06-11T11:59:03+00:00"
+ },
{
"name": "doctrine/inflector",
- "version": "v1.1.0",
+ "version": "v1.3.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "90b2128806bfde671b6952ab8bea493942c1fdae"
+ "reference": "5527a48b7313d15261292c149e55e26eae771b0a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae",
- "reference": "90b2128806bfde671b6952ab8bea493942c1fdae",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
+ "reference": "5527a48b7313d15261292c149e55e26eae771b0a",
+ "shasum": ""
},
"require": {
- "php": ">=5.3.2"
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "4.*"
+ "phpunit/phpunit": "^6.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "1.3.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Doctrine\\Common\\Inflector\\": "lib/"
+ "psr-4": {
+ "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -706,42 +753,38 @@
"singularize",
"string"
],
- "time": "2015-11-06T14:35:42+00:00"
+ "time": "2018-01-09T20:05:19+00:00"
},
{
"name": "doctrine/instantiator",
- "version": "1.0.5",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
+ "reference": "a2c590166b2133a4633738648b6b064edae0814a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a",
+ "reference": "a2c590166b2133a4633738648b6b064edae0814a",
+ "shasum": ""
},
"require": {
- "php": ">=5.3,<8.0-DEV"
+ "php": "^7.1"
},
"require-dev": {
- "athletic/athletic": "~0.1.8",
+ "doctrine/coding-standard": "^6.0",
"ext-pdo": "*",
"ext-phar": "*",
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~2.0"
+ "phpbench/phpbench": "^0.13",
+ "phpstan/phpstan-phpunit": "^0.11",
+ "phpstan/phpstan-shim": "^0.11",
+ "phpunit/phpunit": "^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.2.x-dev"
}
},
"autoload": {
@@ -761,12 +804,12 @@
}
],
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://github.com/doctrine/instantiator",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
"keywords": [
"constructor",
"instantiate"
],
- "time": "2015-06-14T21:17:01+00:00"
+ "time": "2019-03-17T17:37:11+00:00"
},
{
"name": "doctrine/lexer",
@@ -780,13 +823,7 @@
"type": "zip",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.2"
@@ -830,44 +867,40 @@
},
{
"name": "doctrine/orm",
- "version": "v2.5.14",
+ "version": "v2.6.3",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/doctrine2.git",
- "reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754"
+ "url": "https://github.com/doctrine/orm.git",
+ "reference": "434820973cadf2da2d66e7184be370084cc32ca8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754",
- "reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8",
+ "reference": "434820973cadf2da2d66e7184be370084cc32ca8",
+ "shasum": ""
},
"require": {
- "doctrine/cache": "~1.4",
- "doctrine/collections": "~1.2",
- "doctrine/common": ">=2.5-dev,<2.9-dev",
- "doctrine/dbal": ">=2.5-dev,<2.7-dev",
- "doctrine/instantiator": "^1.0.1",
+ "doctrine/annotations": "~1.5",
+ "doctrine/cache": "~1.6",
+ "doctrine/collections": "^1.4",
+ "doctrine/common": "^2.7.1",
+ "doctrine/dbal": "^2.6",
+ "doctrine/instantiator": "~1.1",
"ext-pdo": "*",
- "php": ">=5.4",
- "symfony/console": "~2.5|~3.0|~4.0"
+ "php": "^7.1",
+ "symfony/console": "~3.0|~4.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.0",
- "symfony/yaml": "~2.3|~3.0|~4.0"
+ "doctrine/coding-standard": "^1.0",
+ "phpunit/phpunit": "^6.5",
+ "squizlabs/php_codesniffer": "^3.2",
+ "symfony/yaml": "~3.4|~4.0"
},
"suggest": {
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
},
"bin": [
- "bin/doctrine",
- "bin/doctrine.php"
+ "bin/doctrine"
],
"type": "library",
"extra": {
@@ -876,8 +909,8 @@
}
},
"autoload": {
- "psr-0": {
- "Doctrine\\ORM\\": "lib/"
+ "psr-4": {
+ "Doctrine\\ORM\\": "lib/Doctrine/ORM"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -900,6 +933,10 @@
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
}
],
"description": "Object-Relational-Mapper for PHP",
@@ -908,7 +945,164 @@
"database",
"orm"
],
- "time": "2017-12-17T02:57:51+00:00"
+ "time": "2018-11-20T23:46:46+00:00"
+ },
+ {
+ "name": "doctrine/persistence",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/persistence.git",
+ "reference": "c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38",
+ "reference": "c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "^1.0",
+ "doctrine/cache": "^1.0",
+ "doctrine/collections": "^1.0",
+ "doctrine/event-manager": "^1.0",
+ "doctrine/reflection": "^1.0",
+ "php": "^7.1"
+ },
+ "conflict": {
+ "doctrine/common": "<2.10@dev"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^5.0",
+ "phpstan/phpstan": "^0.8",
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
+ "homepage": "https://doctrine-project.org/projects/persistence.html",
+ "keywords": [
+ "mapper",
+ "object",
+ "odm",
+ "orm",
+ "persistence"
+ ],
+ "time": "2018-11-21T00:33:13+00:00"
+ },
+ {
+ "name": "doctrine/reflection",
+ "version": "v1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/reflection.git",
+ "reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6",
+ "reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "^1.0",
+ "ext-tokenizer": "*",
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^4.0",
+ "doctrine/common": "^2.8",
+ "phpstan/phpstan": "^0.9.2",
+ "phpstan/phpstan-phpunit": "^0.9.4",
+ "phpunit/phpunit": "^7.0",
+ "squizlabs/php_codesniffer": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Doctrine Reflection component",
+ "homepage": "https://www.doctrine-project.org/projects/reflection.html",
+ "keywords": [
+ "reflection"
+ ],
+ "time": "2018-06-14T14:45:07+00:00"
},
{
"name": "fig/link-util",
@@ -922,13 +1116,7 @@
"type": "zip",
"url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac",
"reference": "1a07821801a148be4add11ab0603e4af55a72fac",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.5.0",
@@ -982,13 +1170,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"guzzlehttp/promises": "^1.0",
@@ -1053,13 +1235,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.5.0"
@@ -1110,13 +1286,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115",
"reference": "9f83dded91781a01c63574e387eaa769be769115",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.4.0",
@@ -1183,13 +1353,7 @@
"type": "zip",
"url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550",
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.3",
@@ -1240,13 +1404,7 @@
"type": "zip",
"url": "https://api.github.com/repos/Intervention/image/zipball/e82d274f786e3d4b866a59b173f42e716f0783eb",
"reference": "e82d274f786e3d4b866a59b173f42e716f0783eb",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"ext-fileinfo": "*",
@@ -1316,13 +1474,7 @@
"type": "zip",
"url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc",
"reference": "64990d96e0959dff8e059dfcdc1af130728d92bc",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.2.4"
@@ -1362,23 +1514,17 @@
},
{
"name": "knplabs/knp-markdown-bundle",
- "version": "1.7.0",
+ "version": "1.7.1",
"source": {
"type": "git",
"url": "https://github.com/KnpLabs/KnpMarkdownBundle.git",
- "reference": "912796833a126df65ce54f81ca174474105665ea"
+ "reference": "c055def2e67fe0d3b3d2e993584f01ff222eff86"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/KnpLabs/KnpMarkdownBundle/zipball/912796833a126df65ce54f81ca174474105665ea",
- "reference": "912796833a126df65ce54f81ca174474105665ea",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/KnpLabs/KnpMarkdownBundle/zipball/c055def2e67fe0d3b3d2e993584f01ff222eff86",
+ "reference": "c055def2e67fe0d3b3d2e993584f01ff222eff86",
+ "shasum": ""
},
"require": {
"michelf/php-markdown": "~1.4",
@@ -1427,7 +1573,7 @@
"knplabs",
"markdown"
],
- "time": "2018-01-23T15:34:53+00:00"
+ "time": "2019-01-03T19:47:10+00:00"
},
{
"name": "kriswallsmith/assetic",
@@ -1441,13 +1587,7 @@
"type": "zip",
"url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.1",
@@ -1524,13 +1664,7 @@
"type": "zip",
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/01ab082b355bf188d907b9929cd99b2923053495",
"reference": "01ab082b355bf188d907b9929cd99b2923053495",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -1576,13 +1710,7 @@
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.0",
@@ -1650,39 +1778,29 @@
},
{
"name": "paragonie/random_compat",
- "version": "v2.0.17",
+ "version": "v9.99.99",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
- "reference": "29af24f25bab834fcbb38ad2a69fa93b867e070d"
+ "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/29af24f25bab834fcbb38ad2a69fa93b867e070d",
- "reference": "29af24f25bab834fcbb38ad2a69fa93b867e070d",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
+ "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
+ "shasum": ""
},
"require": {
- "php": ">=5.2.0"
+ "php": "^7"
},
"require-dev": {
- "phpunit/phpunit": "4.*|5.*"
+ "phpunit/phpunit": "4.*|5.*",
+ "vimeo/psalm": "^1"
},
"suggest": {
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
},
"type": "library",
- "autoload": {
- "files": [
- "lib/random.php"
- ]
- },
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
@@ -1701,7 +1819,7 @@
"pseudorandom",
"random"
],
- "time": "2018-07-04T16:31:37+00:00"
+ "time": "2018-07-02T15:55:56+00:00"
},
{
"name": "predis/predis",
@@ -1715,13 +1833,7 @@
"type": "zip",
"url": "https://api.github.com/repos/nrk/predis/zipball/f0210e38881631afeafb56ab43405a92cafd9fd1",
"reference": "f0210e38881631afeafb56ab43405a92cafd9fd1",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.9"
@@ -1771,13 +1883,7 @@
"type": "zip",
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -1823,13 +1929,7 @@
"type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -1878,13 +1978,7 @@
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -1934,13 +2028,7 @@
"type": "zip",
"url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562",
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -1986,16 +2074,10 @@
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
},
"dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
- "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -2042,13 +2124,7 @@
"type": "zip",
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -2096,13 +2172,7 @@
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
"reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3"
@@ -2142,13 +2212,7 @@
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b",
"reference": "59eac70f15f97ee945924948a6f5e2f6f86b7a4b",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.9",
@@ -2200,13 +2264,7 @@
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/1fdf591c4b388e62dbb2579de89c1560b33f865d",
"reference": "1fdf591c4b388e62dbb2579de89c1560b33f865d",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"doctrine/common": "^2.2",
@@ -2277,13 +2335,7 @@
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1",
"reference": "46be3f58adac13084497961e10eed9a7fb4d44d1",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"composer/ca-bundle": "^1.0",
@@ -2319,23 +2371,17 @@
},
{
"name": "snc/redis-bundle",
- "version": "2.1.7",
+ "version": "2.1.9",
"source": {
"type": "git",
"url": "https://github.com/snc/SncRedisBundle.git",
- "reference": "13dee3562945bbdbfc02286a476837f9f3ce9cd1"
+ "reference": "af3ac967b0351ff880f646486bff87247abb5286"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/snc/SncRedisBundle/zipball/13dee3562945bbdbfc02286a476837f9f3ce9cd1",
- "reference": "13dee3562945bbdbfc02286a476837f9f3ce9cd1",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/snc/SncRedisBundle/zipball/af3ac967b0351ff880f646486bff87247abb5286",
+ "reference": "af3ac967b0351ff880f646486bff87247abb5286",
+ "shasum": ""
},
"require": {
"php": ">=5.3.3",
@@ -2387,7 +2433,7 @@
"redis",
"symfony"
],
- "time": "2018-10-15T12:07:05+00:00"
+ "time": "2019-02-20T07:03:43+00:00"
},
{
"name": "swiftmailer/swiftmailer",
@@ -2401,13 +2447,7 @@
"type": "zip",
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950",
"reference": "181b89f18a90f8925ef805f950d47a7190e9b950",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.3"
@@ -2461,13 +2501,7 @@
"type": "zip",
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff",
"reference": "572e143afc03419a75ab002c80a2fd99299195ff",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"monolog/monolog": "~1.22",
@@ -2520,23 +2554,17 @@
},
{
"name": "symfony/polyfill-apcu",
- "version": "v1.10.0",
+ "version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-apcu.git",
- "reference": "19e1b73bf255265ad0b568f81766ae2a3266d8d2"
+ "reference": "a502face1da6a53289480166f24de2c3c68e5c3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/19e1b73bf255265ad0b568f81766ae2a3266d8d2",
- "reference": "19e1b73bf255265ad0b568f81766ae2a3266d8d2",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/a502face1da6a53289480166f24de2c3c68e5c3c",
+ "reference": "a502face1da6a53289480166f24de2c3c68e5c3c",
+ "shasum": ""
},
"require": {
"php": ">=5.3.3"
@@ -2544,7 +2572,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9-dev"
+ "dev-master": "1.11-dev"
}
},
"autoload": {
@@ -2578,27 +2606,21 @@
"portable",
"shim"
],
- "time": "2018-08-06T14:22:27+00:00"
+ "time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.10.0",
+ "version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
+ "reference": "82ebae02209c21113908c229e9883c419720738a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
- "reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a",
+ "reference": "82ebae02209c21113908c229e9883c419720738a",
+ "shasum": ""
},
"require": {
"php": ">=5.3.3"
@@ -2609,7 +2631,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9-dev"
+ "dev-master": "1.11-dev"
}
},
"autoload": {
@@ -2631,7 +2653,7 @@
},
{
"name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
+ "email": "backendtea@gmail.com"
}
],
"description": "Symfony polyfill for ctype functions",
@@ -2642,27 +2664,21 @@
"polyfill",
"portable"
],
- "time": "2018-08-06T14:22:27+00:00"
+ "time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/polyfill-intl-icu",
- "version": "v1.10.0",
+ "version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git",
- "reference": "f22a90256d577c7ef7efad8df1f0201663d57644"
+ "reference": "999878a3a09d73cae157b0cf89bb6fb2cc073057"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644",
- "reference": "f22a90256d577c7ef7efad8df1f0201663d57644",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/999878a3a09d73cae157b0cf89bb6fb2cc073057",
+ "reference": "999878a3a09d73cae157b0cf89bb6fb2cc073057",
+ "shasum": ""
},
"require": {
"php": ">=5.3.3",
@@ -2706,27 +2722,21 @@
"portable",
"shim"
],
- "time": "2018-08-06T14:22:27+00:00"
+ "time": "2019-01-07T19:39:47+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.10.0",
+ "version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
+ "reference": "fe5e94c604826c35a32fa832f35bd036b6799609"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
- "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609",
+ "reference": "fe5e94c604826c35a32fa832f35bd036b6799609",
+ "shasum": ""
},
"require": {
"php": ">=5.3.3"
@@ -2737,7 +2747,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9-dev"
+ "dev-master": "1.11-dev"
}
},
"autoload": {
@@ -2771,27 +2781,21 @@
"portable",
"shim"
],
- "time": "2018-09-21T13:07:52+00:00"
+ "time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/polyfill-php56",
- "version": "v1.10.0",
+ "version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php56.git",
- "reference": "ff208829fe1aa48ab9af356992bb7199fed551af"
+ "reference": "f4dddbc5c3471e1b700a147a20ae17cdb72dbe42"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af",
- "reference": "ff208829fe1aa48ab9af356992bb7199fed551af",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/f4dddbc5c3471e1b700a147a20ae17cdb72dbe42",
+ "reference": "f4dddbc5c3471e1b700a147a20ae17cdb72dbe42",
+ "shasum": ""
},
"require": {
"php": ">=5.3.3",
@@ -2800,7 +2804,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9-dev"
+ "dev-master": "1.11-dev"
}
},
"autoload": {
@@ -2833,27 +2837,21 @@
"portable",
"shim"
],
- "time": "2018-09-21T06:26:08+00:00"
+ "time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/polyfill-php70",
- "version": "v1.10.0",
+ "version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php70.git",
- "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224"
+ "reference": "bc4858fb611bda58719124ca079baff854149c89"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224",
- "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/bc4858fb611bda58719124ca079baff854149c89",
+ "reference": "bc4858fb611bda58719124ca079baff854149c89",
+ "shasum": ""
},
"require": {
"paragonie/random_compat": "~1.0|~2.0|~9.99",
@@ -2862,7 +2860,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9-dev"
+ "dev-master": "1.11-dev"
}
},
"autoload": {
@@ -2898,27 +2896,21 @@
"portable",
"shim"
],
- "time": "2018-09-21T06:26:08+00:00"
+ "time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/polyfill-util",
- "version": "v1.10.0",
+ "version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-util.git",
- "reference": "3b58903eae668d348a7126f999b0da0f2f93611c"
+ "reference": "b46c6cae28a3106735323f00a0c38eccf2328897"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c",
- "reference": "3b58903eae668d348a7126f999b0da0f2f93611c",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/b46c6cae28a3106735323f00a0c38eccf2328897",
+ "reference": "b46c6cae28a3106735323f00a0c38eccf2328897",
+ "shasum": ""
},
"require": {
"php": ">=5.3.3"
@@ -2926,7 +2918,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9-dev"
+ "dev-master": "1.11-dev"
}
},
"autoload": {
@@ -2956,7 +2948,7 @@
"polyfill",
"shim"
],
- "time": "2018-09-30T16:36:12+00:00"
+ "time": "2019-02-08T14:16:39+00:00"
},
{
"name": "symfony/swiftmailer-bundle",
@@ -2970,13 +2962,7 @@
"type": "zip",
"url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec",
"reference": "c4808f5169efc05567be983909d00f00521c53ec",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.3.2",
@@ -3025,23 +3011,17 @@
},
{
"name": "symfony/symfony",
- "version": "v3.4.20",
+ "version": "v3.4.23",
"source": {
"type": "git",
"url": "https://github.com/symfony/symfony.git",
- "reference": "f6b8ddc362b1cf3fb06548693c3adbb736092412"
+ "reference": "336cf12e5e82d71874e8522e0879794340351b56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/symfony/zipball/f6b8ddc362b1cf3fb06548693c3adbb736092412",
- "reference": "f6b8ddc362b1cf3fb06548693c3adbb736092412",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/symfony/zipball/336cf12e5e82d71874e8522e0879794340351b56",
+ "reference": "336cf12e5e82d71874e8522e0879794340351b56",
+ "shasum": ""
},
"require": {
"doctrine/common": "~2.4",
@@ -3182,31 +3162,26 @@
"keywords": [
"framework"
],
- "time": "2018-12-06T15:24:36+00:00"
+ "time": "2019-03-03T18:52:48+00:00"
},
{
"name": "twig/twig",
- "version": "v1.36.0",
+ "version": "v2.7.4",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "730c9c4471b5152d23061feb02b03382264c8a15"
+ "reference": "ed9c49220e09bfaeb1ba4d48077c08a7b09908dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/730c9c4471b5152d23061feb02b03382264c8a15",
- "reference": "730c9c4471b5152d23061feb02b03382264c8a15",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/ed9c49220e09bfaeb1ba4d48077c08a7b09908dd",
+ "reference": "ed9c49220e09bfaeb1ba4d48077c08a7b09908dd",
+ "shasum": ""
},
"require": {
- "php": ">=5.3.3",
- "symfony/polyfill-ctype": "^1.8"
+ "php": "^7.0",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-mbstring": "^1.3"
},
"require-dev": {
"psr/container": "^1.0",
@@ -3216,7 +3191,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.36-dev"
+ "dev-master": "2.7-dev"
}
},
"autoload": {
@@ -3254,7 +3229,7 @@
"keywords": [
"templating"
],
- "time": "2018-12-16T10:34:11+00:00"
+ "time": "2019-03-23T14:28:58+00:00"
},
{
"name": "workerman/channel",
@@ -3268,13 +3243,7 @@
"type": "zip",
"url": "https://api.github.com/repos/walkor/Channel/zipball/0836a9a413c6e8425ee36307d95e2e49cc380f50",
"reference": "0836a9a413c6e8425ee36307d95e2e49cc380f50",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"workerman/workerman": ">=3.3.0"
@@ -3304,13 +3273,7 @@
"type": "zip",
"url": "https://api.github.com/repos/walkor/phpsocket.io/zipball/a80074f20c2e19b8cb3351ff718ae28e7df6bbea",
"reference": "a80074f20c2e19b8cb3351ff718ae28e7df6bbea",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"workerman/channel": ">=1.0.0",
@@ -3334,23 +3297,17 @@
},
{
"name": "workerman/workerman",
- "version": "v3.5.17",
+ "version": "v3.5.18",
"source": {
"type": "git",
"url": "https://github.com/walkor/Workerman.git",
- "reference": "8b2be5101c9f4359b98d33e5cce0f2460add709d"
+ "reference": "f615edc0a550645778c6f8911830e4e12b0c5d45"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/walkor/Workerman/zipball/8b2be5101c9f4359b98d33e5cce0f2460add709d",
- "reference": "8b2be5101c9f4359b98d33e5cce0f2460add709d",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/walkor/Workerman/zipball/f615edc0a550645778c6f8911830e4e12b0c5d45",
+ "reference": "f615edc0a550645778c6f8911830e4e12b0c5d45",
+ "shasum": ""
},
"require": {
"php": ">=5.3"
@@ -3382,7 +3339,7 @@
"asynchronous",
"event-loop"
],
- "time": "2018-12-27T08:12:05+00:00"
+ "time": "2019-01-19T02:36:12+00:00"
},
{
"name": "yeskn-studio/assetic-bundle",
@@ -3396,13 +3353,7 @@
"type": "zip",
"url": "https://api.github.com/repos/yeskn-studio/assetic-bundle/zipball/7192ef7e28bb7f0ca50cb50da6296d6f888086d7",
"reference": "7192ef7e28bb7f0ca50cb50da6296d6f888086d7",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"kriswallsmith/assetic": "~1.4",
@@ -3472,13 +3423,7 @@
"type": "zip",
"url": "https://api.github.com/repos/yzalis/Identicon/zipball/228eca74299a45163be40fd82d334bf21e66b86b",
"reference": "228eca74299a45163be40fd82d334bf21e66b86b",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "shasum": ""
},
"require": {
"php": ">=5.5.0"
@@ -3505,71 +3450,170 @@
],
"authors": [
{
- "name": "Benjamin Laugueux",
- "email": "benjamin@yzalis.com"
+ "name": "Benjamin Laugueux",
+ "email": "benjamin@yzalis.com"
+ }
+ ],
+ "description": "Create awesome unique avatar.",
+ "homepage": "http://identicon-php.org",
+ "keywords": [
+ "avatar",
+ "identicon",
+ "image"
+ ],
+ "time": "2017-08-01T14:39:05+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
+ "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "time": "2018-06-11T23:09:50+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
+ "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "phar-io/version": "^1.0.1",
+ "php": "^5.6 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
}
],
- "description": "Create awesome unique avatar.",
- "homepage": "http://identicon-php.org",
- "keywords": [
- "avatar",
- "identicon",
- "image"
- ],
- "time": "2017-08-01T14:39:05+00:00"
- }
- ],
- "packages-dev": [
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "time": "2017-03-05T18:14:27+00:00"
+ },
{
- "name": "myclabs/deep-copy",
- "version": "1.7.0",
+ "name": "phar-io/version",
+ "version": "1.0.1",
"source": {
"type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
+ "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
+ "shasum": ""
},
"require": {
"php": "^5.6 || ^7.0"
},
- "require-dev": {
- "doctrine/collections": "^1.0",
- "doctrine/common": "^2.6",
- "phpunit/phpunit": "^4.1"
- },
"type": "library",
"autoload": {
- "psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- },
- "files": [
- "src/DeepCopy/deep_copy.php"
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
- "description": "Create deep copies (clones) of your objects",
- "keywords": [
- "clone",
- "copy",
- "duplicate",
- "object",
- "object graph"
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
],
- "time": "2017-10-19T19:58:43+00:00"
+ "description": "Library for handling version information and constraints",
+ "time": "2017-03-05T17:38:23+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -3633,35 +3677,35 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "3.3.2",
+ "version": "4.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2"
+ "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2",
- "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
+ "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
+ "shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0",
+ "php": "^7.0",
"phpdocumentor/reflection-common": "^1.0.0",
"phpdocumentor/type-resolver": "^0.4.0",
"webmozart/assert": "^1.0"
},
"require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^4.4"
+ "doctrine/instantiator": "~1.0.5",
+ "mockery/mockery": "^1.0",
+ "phpunit/phpunit": "^6.4"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"phpDocumentor\\Reflection\\": [
@@ -3680,7 +3724,7 @@
}
],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2017-11-10T14:09:06+00:00"
+ "time": "2017-11-30T07:14:17+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -3806,46 +3850,40 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "4.0.8",
+ "version": "5.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d"
+ "reference": "c89677919c5dd6d3b3852f230a663118762218ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
- "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
+ "reference": "c89677919c5dd6d3b3852f230a663118762218ac",
+ "shasum": ""
},
"require": {
"ext-dom": "*",
"ext-xmlwriter": "*",
- "php": "^5.6 || ^7.0",
- "phpunit/php-file-iterator": "^1.3",
- "phpunit/php-text-template": "^1.2",
- "phpunit/php-token-stream": "^1.4.2 || ^2.0",
- "sebastian/code-unit-reverse-lookup": "^1.0",
- "sebastian/environment": "^1.3.2 || ^2.0",
- "sebastian/version": "^1.0 || ^2.0"
+ "php": "^7.0",
+ "phpunit/php-file-iterator": "^1.4.2",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-token-stream": "^2.0.1",
+ "sebastian/code-unit-reverse-lookup": "^1.0.1",
+ "sebastian/environment": "^3.0",
+ "sebastian/version": "^2.0.1",
+ "theseer/tokenizer": "^1.1"
},
"require-dev": {
- "ext-xdebug": "^2.1.4",
- "phpunit/phpunit": "^5.7"
+ "phpunit/phpunit": "^6.0"
},
"suggest": {
- "ext-xdebug": "^2.5.1"
+ "ext-xdebug": "^2.5.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0.x-dev"
+ "dev-master": "5.3.x-dev"
}
},
"autoload": {
@@ -3860,7 +3898,7 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
+ "email": "sebastian@phpunit.de",
"role": "lead"
}
],
@@ -3871,7 +3909,7 @@
"testing",
"xunit"
],
- "time": "2017-04-02T07:44:40+00:00"
+ "time": "2018-04-06T15:36:58+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -4030,35 +4068,29 @@
},
{
"name": "phpunit/php-token-stream",
- "version": "1.4.12",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16"
+ "reference": "791198a2c6254db10131eecfe8c06670700904db"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16",
- "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
+ "reference": "791198a2c6254db10131eecfe8c06670700904db",
+ "shasum": ""
},
"require": {
"ext-tokenizer": "*",
- "php": ">=5.3.3"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.2"
+ "phpunit/phpunit": "^6.2.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -4081,27 +4113,21 @@
"keywords": [
"tokenizer"
],
- "time": "2017-12-04T08:55:13+00:00"
+ "time": "2017-11-27T05:48:46+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "5.7.27",
+ "version": "6.5.14",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c"
+ "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
- "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bac23fe7ff13dbdb461481f706f0e9fe746334b7",
+ "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7",
+ "shasum": ""
},
"require": {
"ext-dom": "*",
@@ -4109,33 +4135,35 @@
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-xml": "*",
- "myclabs/deep-copy": "~1.3",
- "php": "^5.6 || ^7.0",
- "phpspec/prophecy": "^1.6.2",
- "phpunit/php-code-coverage": "^4.0.4",
- "phpunit/php-file-iterator": "~1.4",
- "phpunit/php-text-template": "~1.2",
- "phpunit/php-timer": "^1.0.6",
- "phpunit/phpunit-mock-objects": "^3.2",
- "sebastian/comparator": "^1.2.4",
- "sebastian/diff": "^1.4.3",
- "sebastian/environment": "^1.3.4 || ^2.0",
- "sebastian/exporter": "~2.0",
- "sebastian/global-state": "^1.1",
- "sebastian/object-enumerator": "~2.0",
- "sebastian/resource-operations": "~1.0",
- "sebastian/version": "^1.0.6|^2.0.1",
- "symfony/yaml": "~2.1|~3.0|~4.0"
+ "myclabs/deep-copy": "^1.6.1",
+ "phar-io/manifest": "^1.0.1",
+ "phar-io/version": "^1.0",
+ "php": "^7.0",
+ "phpspec/prophecy": "^1.7",
+ "phpunit/php-code-coverage": "^5.3",
+ "phpunit/php-file-iterator": "^1.4.3",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-timer": "^1.0.9",
+ "phpunit/phpunit-mock-objects": "^5.0.9",
+ "sebastian/comparator": "^2.1",
+ "sebastian/diff": "^2.0",
+ "sebastian/environment": "^3.1",
+ "sebastian/exporter": "^3.1",
+ "sebastian/global-state": "^2.0",
+ "sebastian/object-enumerator": "^3.0.3",
+ "sebastian/resource-operations": "^1.0",
+ "sebastian/version": "^2.0.1"
},
"conflict": {
- "phpdocumentor/reflection-docblock": "3.0.2"
+ "phpdocumentor/reflection-docblock": "3.0.2",
+ "phpunit/dbunit": "<3.0"
},
"require-dev": {
"ext-pdo": "*"
},
"suggest": {
"ext-xdebug": "*",
- "phpunit/php-invoker": "~1.1"
+ "phpunit/php-invoker": "^1.1"
},
"bin": [
"phpunit"
@@ -4143,7 +4171,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.7.x-dev"
+ "dev-master": "6.5.x-dev"
}
},
"autoload": {
@@ -4169,39 +4197,33 @@
"testing",
"xunit"
],
- "time": "2018-02-01T05:50:59+00:00"
+ "time": "2019-02-01T05:22:47+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
- "version": "3.4.4",
+ "version": "5.0.10",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "a23b761686d50a560cc56233b9ecf49597cc9118"
+ "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118",
- "reference": "a23b761686d50a560cc56233b9ecf49597cc9118",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f",
+ "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f",
+ "shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.0.2",
- "php": "^5.6 || ^7.0",
- "phpunit/php-text-template": "^1.2",
- "sebastian/exporter": "^1.2 || ^2.0"
+ "doctrine/instantiator": "^1.0.5",
+ "php": "^7.0",
+ "phpunit/php-text-template": "^1.2.1",
+ "sebastian/exporter": "^3.1"
},
"conflict": {
- "phpunit/phpunit": "<5.4.0"
+ "phpunit/phpunit": "<6.0"
},
"require-dev": {
- "phpunit/phpunit": "^5.4"
+ "phpunit/phpunit": "^6.5.11"
},
"suggest": {
"ext-soap": "*"
@@ -4209,7 +4231,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.2.x-dev"
+ "dev-master": "5.0.x-dev"
}
},
"autoload": {
@@ -4224,7 +4246,7 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
+ "email": "sebastian@phpunit.de",
"role": "lead"
}
],
@@ -4234,7 +4256,8 @@
"mock",
"xunit"
],
- "time": "2017-06-30T09:13:00+00:00"
+ "abandoned": true,
+ "time": "2018-08-09T05:50:03+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
@@ -4289,36 +4312,30 @@
},
{
"name": "sebastian/comparator",
- "version": "1.2.4",
+ "version": "2.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
+ "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9",
+ "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
+ "shasum": ""
},
"require": {
- "php": ">=5.3.3",
- "sebastian/diff": "~1.2",
- "sebastian/exporter": "~1.2 || ~2.0"
+ "php": "^7.0",
+ "sebastian/diff": "^2.0 || ^3.0",
+ "sebastian/exporter": "^3.1"
},
"require-dev": {
- "phpunit/phpunit": "~4.4"
+ "phpunit/phpunit": "^6.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2.x-dev"
+ "dev-master": "2.1.x-dev"
}
},
"autoload": {
@@ -4349,44 +4366,38 @@
}
],
"description": "Provides the functionality to compare PHP values for equality",
- "homepage": "http://www.github.com/sebastianbergmann/comparator",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
"keywords": [
"comparator",
"compare",
"equality"
],
- "time": "2017-01-29T09:50:25+00:00"
+ "time": "2018-02-01T13:46:46+00:00"
},
{
"name": "sebastian/diff",
- "version": "1.4.3",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
+ "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
- "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
+ "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
+ "shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ "phpunit/phpunit": "^6.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -4413,38 +4424,32 @@
"keywords": [
"diff"
],
- "time": "2017-05-22T07:24:03+00:00"
+ "time": "2017-08-03T08:09:46+00:00"
},
{
"name": "sebastian/environment",
- "version": "2.0.0",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
+ "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
- "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
+ "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
+ "shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^5.0"
+ "phpunit/phpunit": "^6.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.1.x-dev"
}
},
"autoload": {
@@ -4469,40 +4474,34 @@
"environment",
"hhvm"
],
- "time": "2016-11-26T07:53:53+00:00"
+ "time": "2017-07-01T08:51:00+00:00"
},
{
"name": "sebastian/exporter",
- "version": "2.0.0",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
+ "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
- "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
+ "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
+ "shasum": ""
},
"require": {
- "php": ">=5.3.3",
- "sebastian/recursion-context": "~2.0"
+ "php": "^7.0",
+ "sebastian/recursion-context": "^3.0"
},
"require-dev": {
"ext-mbstring": "*",
- "phpunit/phpunit": "~4.4"
+ "phpunit/phpunit": "^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.1.x-dev"
}
},
"autoload": {
@@ -4542,33 +4541,27 @@
"export",
"exporter"
],
- "time": "2016-11-19T08:54:04+00:00"
+ "time": "2017-04-03T13:19:02+00:00"
},
{
"name": "sebastian/global-state",
- "version": "1.1.1",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
+ "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
+ "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
+ "shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.2"
+ "phpunit/phpunit": "^6.0"
},
"suggest": {
"ext-uopz": "*"
@@ -4576,7 +4569,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -4599,39 +4592,34 @@
"keywords": [
"global state"
],
- "time": "2015-10-12T03:26:01+00:00"
+ "time": "2017-04-27T15:39:26+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "2.0.1",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
- "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "shasum": ""
},
"require": {
- "php": ">=5.6",
- "sebastian/recursion-context": "~2.0"
+ "php": "^7.0",
+ "sebastian/object-reflector": "^1.1.1",
+ "sebastian/recursion-context": "^3.0"
},
"require-dev": {
- "phpunit/phpunit": "~5"
+ "phpunit/phpunit": "^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.0.x-dev"
}
},
"autoload": {
@@ -4651,38 +4639,77 @@
],
"description": "Traverses array structures and object graphs to enumerate all referenced objects",
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
- "time": "2017-02-18T15:18:39+00:00"
+ "time": "2017-08-03T12:35:26+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "773f97c67f28de00d397be301821b06708fca0be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
+ "reference": "773f97c67f28de00d397be301821b06708fca0be",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "time": "2017-03-29T09:07:27+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "2.0.0",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
- "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.4"
+ "phpunit/phpunit": "^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.0.x-dev"
}
},
"autoload": {
@@ -4710,7 +4737,7 @@
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2016-11-19T07:33:16+00:00"
+ "time": "2017-03-03T06:23:57+00:00"
},
{
"name": "sebastian/resource-operations",
@@ -4871,23 +4898,17 @@
},
{
"name": "symfony/phpunit-bridge",
- "version": "v3.4.20",
+ "version": "v3.4.23",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
- "reference": "2155067dfc73e0e77dbc26f236af17e4df552de5"
+ "reference": "b539f37134c10edbf85dc0567be4151c56870f5e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/2155067dfc73e0e77dbc26f236af17e4df552de5",
- "reference": "2155067dfc73e0e77dbc26f236af17e4df552de5",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/b539f37134c10edbf85dc0567be4151c56870f5e",
+ "reference": "b539f37134c10edbf85dc0567be4151c56870f5e",
+ "shasum": ""
},
"require": {
"php": ">=5.3.3"
@@ -4896,7 +4917,6 @@
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
},
"suggest": {
- "ext-zip": "Zip support is required when using bin/simple-phpunit",
"symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
},
"bin": [
@@ -4939,7 +4959,47 @@
],
"description": "Symfony PHPUnit Bridge",
"homepage": "https://symfony.com",
- "time": "2018-11-20T16:47:12+00:00"
+ "time": "2019-02-16T18:50:26+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b",
+ "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "time": "2017-04-07T12:08:54+00:00"
},
{
"name": "webmozart/assert",
diff --git a/package.json b/package.json
index 70c9932c..73b1b09b 100644
--- a/package.json
+++ b/package.json
@@ -1,9 +1,4 @@
{
- "devDependencies": {
- "@symfony/webpack-encore": "^0.24.0",
- "node-sass": "^4.11.0",
- "sass-loader": "^7.0.1"
- },
"dependencies": {
"at.js": "^1.5.4",
"bootstrap": "^3.4.1",
diff --git a/src/Yeskn/AdminBundle/Controller/CRUDController.php b/src/Yeskn/AdminBundle/Controller/CRUDController.php
index f545bce0..571ef940 100644
--- a/src/Yeskn/AdminBundle/Controller/CRUDController.php
+++ b/src/Yeskn/AdminBundle/Controller/CRUDController.php
@@ -9,6 +9,7 @@
namespace Yeskn\AdminBundle\Controller;
+use Doctrine\ORM\EntityRepository;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
@@ -18,9 +19,11 @@
use Yeskn\AdminBundle\CrudEvent\AbstractCrudEntityEvent;
use Yeskn\AdminBundle\CrudEvent\AbstractCrudListEvent;
use Yeskn\AdminBundle\CrudEvent\CrudEventInterface;
+use Yeskn\AdminBundle\QueryBuilder\BuilderFactory;
use Yeskn\MainBundle\Entity\User;
use Yeskn\Support\Http\ApiOk;
use Yeskn\Support\Http\Session\Flash;
+use Yeskn\Support\ParameterBag;
class CRUDController extends Controller
{
@@ -36,20 +39,46 @@ class CRUDController extends Controller
*/
public function listAction($entity, Request $request)
{
- $pageLimit = $request->query->get('pageLimit', 20);
- $currentPage = $request->query->get('currentPage', 1);
+ $pageSize = $request->query->get('pageSize', 20);
+ $pageNo = $request->query->get('pageNo', 1);
+ $search = $request->query->get('search_' . $entity, []);
+ $queryParams = [
+ 'pageNo' => $pageNo,
+ 'pageSize' => $pageSize
+ ];
$entity = ucfirst($entity);
- $repo = $this->getDoctrine()->getRepository('YesknMainBundle:' . $entity);
- $list = $repo->findBy([], ['id' => 'DESC'], $pageLimit, ($currentPage - 1) * $pageLimit);
- $total = $repo->total();
+ /** @var EntityRepository $repository */
+ $repository = $this->getDoctrine()->getRepository('YesknMainBundle:' . $entity);
+ $builder = $repository->createQueryBuilder('p');
+
+ $searchClass = "Yeskn\AdminBundle\Form\SearchForm\Search{$entity}Type";
+
+ if (class_exists($searchClass)) {
+ $searchForm = $this->createForm($searchClass, new ParameterBag($search));
+
+ $allowedKeys = array_keys($searchForm->all());
+
+ foreach ($search as $key => $value) {
+ if (in_array($key, $allowedKeys)) {
+ $queryParams[$key] = $value;
+ }
+ }
+ }
+
+ $query = BuilderFactory::createQueryBuilder($entity, $builder, $queryParams);
+
+ $list = $query->getList();
+ $total = $query->getTotal();
$typeClass = "Yeskn\MainBundle\Form\\{$entity}Type";
$entityClass = "Yeskn\MainBundle\Entity\\{$entity}";
$data = $this->startEntitiesRenderEvent($entity, $list);
+ $createForm = $this->createForm($typeClass, new $entityClass);
+
return $this->render('@YesknAdmin/crud/list.html.twig', [
'entity' => lcfirst($entity),
'entitySubTitle' => empty($data['entitySubTitle']) ? '' : $data['entitySubTitle'],
@@ -60,10 +89,10 @@ public function listAction($entity, Request $request)
'list' => $data['list'],
'ids' => $data['ids'],
'entityName' => $entityClass::NAME,
- 'form' => $this->createForm($typeClass, new $entityClass)->createView(),
+ 'form' => $createForm->createView(),
'extra' => empty($data['extra']) ? [] : $data['extra'],
- 'allPage' => ceil($total / $pageLimit),
- 'pageLimit' => $pageLimit
+ 'allPage' => ceil($total / $pageSize),
+ 'searchForm' => !empty($searchForm) ? $searchForm->createView() : null,
]);
}
diff --git a/src/Yeskn/AdminBundle/Form/SearchForm/DefaultSearchType.php b/src/Yeskn/AdminBundle/Form/SearchForm/DefaultSearchType.php
new file mode 100644
index 00000000..5c0993e2
--- /dev/null
+++ b/src/Yeskn/AdminBundle/Form/SearchForm/DefaultSearchType.php
@@ -0,0 +1,39 @@
+setMethod('GET');
+ }
+
+ public function buildView(FormView $view, FormInterface $form, array $options)
+ {
+ foreach ($view->children as $child) {
+ dump($child);die;
+ }
+ }
+
+ public function configureOptions(OptionsResolver $resolver)
+ {
+ $resolver->setDefaults([
+ 'data_class' => ParameterBag::class
+ ]);
+ }
+}
diff --git a/src/Yeskn/AdminBundle/Form/SearchForm/SearchPostType.php b/src/Yeskn/AdminBundle/Form/SearchForm/SearchPostType.php
new file mode 100644
index 00000000..614e34a3
--- /dev/null
+++ b/src/Yeskn/AdminBundle/Form/SearchForm/SearchPostType.php
@@ -0,0 +1,49 @@
+add('title', TextType::class, [
+ 'label' => '标题',
+ 'required' => false
+ ]);
+ $builder->add('author', TextType::class, [
+ 'label' => '作者',
+ 'required' => false
+ ]);
+ $builder->add(
+ 'createdAt', DateType::class, [
+ 'label' => '发布时间',
+ 'input' => 'string',
+ 'widget' => 'single_text',
+ 'required' => false,
+ ] );
+ $builder->add('status', ChoiceType::class, [
+ 'label' => '状态',
+ 'required' => false,
+ 'choices' => [
+ '所有' => '',
+ '已发布' => 'published',
+ '草稿' => 'draft'
+ ]
+ ]);
+ }
+
+}
diff --git a/src/Yeskn/AdminBundle/Form/SearchForm/SearchTranslationType.php b/src/Yeskn/AdminBundle/Form/SearchForm/SearchTranslationType.php
new file mode 100644
index 00000000..16a3dbbc
--- /dev/null
+++ b/src/Yeskn/AdminBundle/Form/SearchForm/SearchTranslationType.php
@@ -0,0 +1,43 @@
+add('messageId', SearchType::class, [
+ 'label' => 'ID',
+ 'required' => false
+ ]);
+ $builder->add('chinese', SearchType::class, [
+ 'label' => '中文',
+ 'required' => false
+ ]);
+ $builder->add('english', SearchType::class, [
+ 'label' => '英文',
+ 'required' => false
+ ]);
+ $builder->add('taiwanese', SearchType::class, [
+ 'label' => '中文繁体',
+ 'required' => false
+ ]);
+
+ $builder->add('japanese', SearchType::class, [
+ 'label' => '日语',
+ 'required' => false
+ ]);
+ }
+}
diff --git a/src/Yeskn/AdminBundle/Form/SearchForm/SearchUserType.php b/src/Yeskn/AdminBundle/Form/SearchForm/SearchUserType.php
new file mode 100644
index 00000000..e5328827
--- /dev/null
+++ b/src/Yeskn/AdminBundle/Form/SearchForm/SearchUserType.php
@@ -0,0 +1,48 @@
+add('id', TextType::class, [
+ 'label' => 'ID',
+ 'required' => false
+ ]);
+ $builder->add('username', TextType::class, [
+ 'label' => '用户名',
+ 'required' => false
+ ]);
+ $builder->add('createdAt', DateTimeType::class, [
+ 'label' => '注册时间',
+ 'input' => 'string',
+ 'widget' => 'single_text',
+ 'with_seconds' => true,
+ 'required' => false,
+ ]);
+ $builder->add('nickname', TextType::class, [
+ 'label' => '昵称',
+ 'required' => false,
+ ]);
+ $builder->add('email', ChoiceType::class, [
+ 'label' => '邮箱',
+ 'required' => false,
+ ]);
+
+ }
+}
diff --git a/src/Yeskn/AdminBundle/QueryBuilder/BuilderFactory.php b/src/Yeskn/AdminBundle/QueryBuilder/BuilderFactory.php
new file mode 100644
index 00000000..c10620be
--- /dev/null
+++ b/src/Yeskn/AdminBundle/QueryBuilder/BuilderFactory.php
@@ -0,0 +1,30 @@
+queryBuilder = $queryBuilder;
+ $this->queryBuilder->where('1=1');
+
+ $this->params = $params;
+
+ unset($params['pageNo'], $params['pageSize']);
+
+ $reservedParams = [];
+
+ if (!empty($this->reservedKeys)) {
+ foreach ($params as $key => $param) {
+ if (in_array($key, $this->reservedKeys)) {
+ $reservedParams[$key] = $param;
+ }
+ }
+ }
+
+ $params = array_diff($params, $reservedParams);
+
+ foreach ($params as $key => $param) {
+ $this->queryBuilder->andWhere(sprintf('p.%s = :%s', $key, $key))
+ ->setParameter($key, $param);
+ }
+
+ $this->reservedQuery($reservedParams);
+ }
+
+ public function reservedQuery(array $params)
+ {
+ return $this->queryBuilder;
+ }
+
+ public function getList()
+ {
+ $params = $this->params;
+
+ $queryBuilder = clone $this->queryBuilder;
+
+ if (!empty($params['pageSize'])) {
+ $queryBuilder->setMaxResults($params['pageSize']);
+ }
+
+ if (!empty($params['pageNo'])) {
+ $queryBuilder->setFirstResult(($params['pageNo'] - 1) * $params['pageSize']);
+ }
+
+ return $queryBuilder->getQuery()->getResult();
+ }
+
+ public function getTotal()
+ {
+ $queryBuilder = clone $this->queryBuilder;
+ return (int)$queryBuilder->select('COUNT(p)')
+ ->getQuery()
+ ->getSingleScalarResult();
+ }
+}
diff --git a/src/Yeskn/AdminBundle/QueryBuilder/PostQueryBuilder.php b/src/Yeskn/AdminBundle/QueryBuilder/PostQueryBuilder.php
new file mode 100644
index 00000000..6636c497
--- /dev/null
+++ b/src/Yeskn/AdminBundle/QueryBuilder/PostQueryBuilder.php
@@ -0,0 +1,39 @@
+queryBuilder->andWhere('p.title LIKE :title');
+ $this->queryBuilder->setParameter('title', "%{$params['title']}%");
+ }
+
+ if (!empty($params['author'])) {
+ $this->queryBuilder->leftJoin('p.author', 'u')
+ ->andWhere('u.nickname LIKE :author')
+ ->setParameter('author', "%{$params['author']}%");
+ }
+
+ if (!empty($params['createdAt'])) {
+ $this->queryBuilder
+ ->andWhere('p.createdAt >= :createdAt')
+ ->setParameter('createdAt', $params['createdAt']);
+ }
+
+ return $this->queryBuilder;
+ }
+}
diff --git a/src/Yeskn/AdminBundle/QueryBuilder/TranslationQueryBuilder.php b/src/Yeskn/AdminBundle/QueryBuilder/TranslationQueryBuilder.php
new file mode 100644
index 00000000..9e2c66dd
--- /dev/null
+++ b/src/Yeskn/AdminBundle/QueryBuilder/TranslationQueryBuilder.php
@@ -0,0 +1,42 @@
+queryBuilder->andWhere('p.messageId LIKE :messageId');
+ $this->queryBuilder->setParameter('messageId', "%{$params['messageId']}%");
+ }
+
+ if (!empty($params['chinese'])) {
+ $this->queryBuilder->andWhere('p.chinese LIKE :chinese');
+ $this->queryBuilder->setParameter('chinese', "%{$params['chinese']}%");
+ }
+
+ if (!empty($params['japanese'])) {
+ $this->queryBuilder->andWhere('p.japanese LIKE :japanese');
+ $this->queryBuilder->setParameter('japanese', "%{$params['japanese']}%");
+ }
+
+ if (!empty($params['taiwanese'])) {
+ $this->queryBuilder->andWhere('p.taiwanese LIKE :taiwanese');
+ $this->queryBuilder->setParameter('taiwanese', "%{$params['taiwanese']}%");
+ }
+
+ return $this->queryBuilder;
+ }
+}
diff --git a/src/Yeskn/AdminBundle/QueryBuilder/UserQueryBuilder.php b/src/Yeskn/AdminBundle/QueryBuilder/UserQueryBuilder.php
new file mode 100644
index 00000000..f850fa8e
--- /dev/null
+++ b/src/Yeskn/AdminBundle/QueryBuilder/UserQueryBuilder.php
@@ -0,0 +1,32 @@
+queryBuilder->andWhere('p.username LIKE :username');
+ $this->queryBuilder->setParameter('username', "%{$params['username']}%");
+ }
+
+ if (!empty($params['nickname'])) {
+ $this->queryBuilder->andWhere('p.nickname LIKE :nickname');
+ $this->queryBuilder->setParameter('nickname', "%{$params['nickname']}%");
+ }
+
+ return $this->queryBuilder;
+ }
+}
diff --git a/src/Yeskn/AdminBundle/Resources/config/services.yml b/src/Yeskn/AdminBundle/Resources/config/services.yml
index edeac452..d55a4003 100644
--- a/src/Yeskn/AdminBundle/Resources/config/services.yml
+++ b/src/Yeskn/AdminBundle/Resources/config/services.yml
@@ -8,7 +8,7 @@ services:
bind:
$projectDir: '%kernel.project_dir%'
$rootDir: "%kernel.root_dir%"
- exclude: '../../../AdminBundle/{Entity,Repository,Tests}'
+ exclude: '../../../AdminBundle/{Entity,Repository,Tests,QueryBuilder}'
Yeskn\AdminBundle\Controller\:
resource: '../../../AdminBundle/Controller'
diff --git a/src/Yeskn/AdminBundle/Resources/views/base.html.twig b/src/Yeskn/AdminBundle/Resources/views/base.html.twig
index f04e67cb..19689a17 100644
--- a/src/Yeskn/AdminBundle/Resources/views/base.html.twig
+++ b/src/Yeskn/AdminBundle/Resources/views/base.html.twig
@@ -67,6 +67,7 @@
{% block foot_js_link %}
{% javascripts
'assets-private/js/common.js'
+ 'assets-private/js/admin.js'
'assets/lib/bootstrap/dist/js/bootstrap.min.js'
'assets/lib/metisMenu/dist/metisMenu.min.js'
'assets-private/js/sb-admin-2.js'
diff --git a/src/Yeskn/AdminBundle/Resources/views/crud/list.html.twig b/src/Yeskn/AdminBundle/Resources/views/crud/list.html.twig
index ff501e3f..fb001e44 100644
--- a/src/Yeskn/AdminBundle/Resources/views/crud/list.html.twig
+++ b/src/Yeskn/AdminBundle/Resources/views/crud/list.html.twig
@@ -16,6 +16,12 @@
+ {% if searchForm %}
+ {% include '@YesknAdmin/crud/search-form.html.twig' with {
+ form: searchForm
+ }%}
+ {% endif %}
+
- {% include '@YesknAdmin/pagination.html.twig' with {
- entity: entity,
- pageData: {
- currentPage: app.request.query.get('currentPage') ?: 1,
- allPage: allPage,
- pageLimit: app.request.query.get('pageLimit') ?: 20
- }
- } %}
+
+
+ {% include '@YesknAdmin/pagination.html.twig' with {
+ entity: entity,
+ pageData: {
+ pageNo: app.request.query.get('pageNo', 1),
+ pageSize: app.request.query.get('pageSize', 20),
+ allPage: allPage,
+ }
+ } %}
+
diff --git a/src/Yeskn/AdminBundle/Resources/views/crud/search-form.html.twig b/src/Yeskn/AdminBundle/Resources/views/crud/search-form.html.twig
new file mode 100644
index 00000000..0bc4b867
--- /dev/null
+++ b/src/Yeskn/AdminBundle/Resources/views/crud/search-form.html.twig
@@ -0,0 +1,25 @@
+{% form_theme form with [
+ 'form/vertical-search-field.html.twig',
+] %}
+
+
+
+
+
+ {{ form_start(form, {attr: {class: 'search-form'}}) }}
+
+ {{ form_widget(form, {attr: {style: "display:flex;flex-wrap:wrap;"}}) }}
+
+
+ {{ form_end(form) }}
+
+
+
diff --git a/src/Yeskn/AdminBundle/Resources/views/pagination.html.twig b/src/Yeskn/AdminBundle/Resources/views/pagination.html.twig
index 44513129..d21a1f22 100644
--- a/src/Yeskn/AdminBundle/Resources/views/pagination.html.twig
+++ b/src/Yeskn/AdminBundle/Resources/views/pagination.html.twig
@@ -1,6 +1,6 @@
-总共 {{ allPage }} 页。
+总共 {{ allPage }} 页。
diff --git a/src/Yeskn/MainBundle/Controller/AuthController.php b/src/Yeskn/MainBundle/Controller/AuthController.php
index 7d1da5fa..fd8a256f 100644
--- a/src/Yeskn/MainBundle/Controller/AuthController.php
+++ b/src/Yeskn/MainBundle/Controller/AuthController.php
@@ -19,6 +19,7 @@
use Yeskn\MainBundle\Entity\OpenUser;
use Yeskn\MainBundle\Entity\User;
use Yeskn\MainBundle\Form\UserLoginType;
+use Yeskn\MainBundle\Services\RandomAvatarService;
use Yeskn\Support\AbstractController;
class AuthController extends AbstractController
@@ -75,17 +76,11 @@ public function regAction(Request $request)
$user->setPassword($password);
$user->setRegisterAt(new \DateTime());
- $fileName = md5($user->getUsername()) . '.png';
- $file = $this->container->getParameter('kernel.project_dir') . '/web/avatar/' . $fileName;
+ /** @var RandomAvatarService $randomAvatarService */
+ $randomAvatarService = $this->get(RandomAvatarService::class);
- // 使用随机二次元头像
- $i = mt_rand(1, 99999);
+ $randomAvatarService->handle($user);
- file_put_contents($file,
- file_get_contents("https://www.thiswaifudoesnotexist.net/example-{$i}.jpg")
- );
-
- $user->setAvatar('avatar/' . $fileName);
$user->setNickname($user->getUsername());
$user->setLoginAt(new \DateTime());
$user->setRole('ROLE_USER');
diff --git a/src/Yeskn/MainBundle/Form/DataTransfer/DatetimeToStringTransfer.php b/src/Yeskn/MainBundle/Form/DataTransfer/DatetimeToStringTransfer.php
index 1315d38a..196a0b53 100644
--- a/src/Yeskn/MainBundle/Form/DataTransfer/DatetimeToStringTransfer.php
+++ b/src/Yeskn/MainBundle/Form/DataTransfer/DatetimeToStringTransfer.php
@@ -14,14 +14,14 @@
class DatetimeToStringTransfer implements DataTransformerInterface
{
/**
- * @param \DateTime|null $value
+ * @param mixed $value
*
* @return string
*/
public function transform($value)
{
if (is_string($value)) {
- return new \DateTime('Y-m-d');
+ return new \DateTime($value);
}
return $value;
@@ -29,7 +29,7 @@ public function transform($value)
/**
* @param mixed $value
- * @return \DateTime|mixed
+ * @return \DateTime
*/
public function reverseTransform($value)
{
diff --git a/src/Yeskn/MainBundle/Services/RandomAvatarService.php b/src/Yeskn/MainBundle/Services/RandomAvatarService.php
index 8f494ab4..250be295 100644
--- a/src/Yeskn/MainBundle/Services/RandomAvatarService.php
+++ b/src/Yeskn/MainBundle/Services/RandomAvatarService.php
@@ -10,6 +10,7 @@
namespace Yeskn\MainBundle\Services;
use Yeskn\MainBundle\Entity\User;
+use Intervention\Image\ImageManagerStatic as Image;
class RandomAvatarService
{
@@ -17,7 +18,7 @@ class RandomAvatarService
public function __construct($projectDir)
{
- $this->avaDir = $projectDir . '/web/avatar';
+ $this->avaDir = $projectDir . '/web/upload/avatar';
}
public function handle(User $user)
@@ -32,6 +33,11 @@ public function handle(User $user)
file_get_contents("https://www.thiswaifudoesnotexist.net/example-{$i}.jpg")
);
- $user->setAvatar('avatar/' . $fileName);
+ Image::configure(array('driver' => 'gd'));
+
+ $image = Image::make($file);
+ $image->resize(200, 200)->save();
+
+ $user->setAvatar('upload/avatar/' . $fileName);
}
}
diff --git a/src/Yeskn/MainBundle/Twig/GlobalValue.php b/src/Yeskn/MainBundle/Twig/GlobalValue.php
index 94d99a58..eb9016b0 100644
--- a/src/Yeskn/MainBundle/Twig/GlobalValue.php
+++ b/src/Yeskn/MainBundle/Twig/GlobalValue.php
@@ -12,9 +12,10 @@
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\TranslatorInterface;
+use Twig\Extension\AbstractExtension;
use Yeskn\MainBundle\Entity\User;
-class GlobalValue extends \Twig_Extension
+class GlobalValue extends AbstractExtension
{
/**
* @var EntityManager
diff --git a/src/Yeskn/MainBundle/Twig/Render.php b/src/Yeskn/MainBundle/Twig/Render.php
index e13174c9..9f936b07 100644
--- a/src/Yeskn/MainBundle/Twig/Render.php
+++ b/src/Yeskn/MainBundle/Twig/Render.php
@@ -10,10 +10,11 @@
namespace Yeskn\MainBundle\Twig;
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
+use Twig\Extension\AbstractExtension;
use Yeskn\MainBundle\Entity\Message;
use Yeskn\MainBundle\Entity\Notice;
-class Render extends \Twig_Extension
+class Render extends AbstractExtension
{
private $template;
diff --git a/src/Yeskn/MainBundle/Twig/WebsiteInfo.php b/src/Yeskn/MainBundle/Twig/WebsiteInfo.php
index e1c09ff2..981c6e26 100644
--- a/src/Yeskn/MainBundle/Twig/WebsiteInfo.php
+++ b/src/Yeskn/MainBundle/Twig/WebsiteInfo.php
@@ -13,9 +13,10 @@
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
+use Twig\Extension\AbstractExtension;
use Yeskn\MainBundle\Entity\Announce;
-class WebsiteInfo extends \Twig_Extension
+class WebsiteInfo extends AbstractExtension
{
/**
* @var EntityManager
diff --git a/src/Yeskn/Support/EventListener/ControllerCheckForMaintenanceMode.php b/src/Yeskn/Support/EventListener/ControllerCheckForMaintenanceMode.php
index fd66729e..b38e73d2 100644
--- a/src/Yeskn/Support/EventListener/ControllerCheckForMaintenanceMode.php
+++ b/src/Yeskn/Support/EventListener/ControllerCheckForMaintenanceMode.php
@@ -10,6 +10,7 @@
namespace Yeskn\Support\EventListener;
use Doctrine\ORM\EntityManagerInterface;
+use Symfony\Bundle\SecurityBundle\Security\FirewallMap;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
@@ -21,34 +22,39 @@ class ControllerCheckForMaintenanceMode extends AbstractControllerListener
{
private $varDir;
private $checker;
+ private $firewallMap;
public function __construct(TokenStorageInterface $tokenStorage, EntityManagerInterface $em
, $projectDir
, AuthorizationCheckerInterface $checker
+ , FirewallMap $firewallMap
) {
parent::__construct($tokenStorage, $em);
$this->varDir = rtrim($projectDir, '/') . '/var';
$this->checker = $checker;
+ $this->firewallMap = $firewallMap;
}
public function onKernelController(FilterControllerEvent $event)
{
$fs = new Filesystem();
-
- $isSuperAdmin = $this->checker->isGranted('ROLE_SUPER_ADMIN', $this->getUser());
-
- if ($fs->exists($this->varDir . '/maintain') && $isSuperAdmin === false) {
- $maintain = file_get_contents($this->varDir . '/maintain');
- $maintain = json_decode($maintain, true);
-
- $ts = time();
-
- if ($ts >= strtotime($maintain['maintain_start'])
- && $ts <= strtotime($maintain['maintain_stop'])
- ) {
- throw new AccessDeniedHttpException('维护中...', 502);
- } else {
- $fs->remove($this->varDir . '/maintain');
+ $config = $this->firewallMap->getFirewallConfig($event->getRequest());
+
+ if ($config->isSecurityEnabled() && $fs->exists($this->varDir . '/maintain')) {
+ $isSuperAdmin = $this->checker->isGranted('ROLE_SUPER_ADMIN', $this->getUser());
+ if ($isSuperAdmin === false) {
+ $maintain = file_get_contents($this->varDir . '/maintain');
+ $maintain = json_decode($maintain, true);
+
+ $ts = time();
+
+ if ($ts >= strtotime($maintain['maintain_start'])
+ && $ts <= strtotime($maintain['maintain_stop'])
+ ) {
+ throw new AccessDeniedHttpException('维护中...', 502);
+ } else {
+ $fs->remove($this->varDir . '/maintain');
+ }
}
}
}
diff --git a/src/Yeskn/Support/ParameterBag.php b/src/Yeskn/Support/ParameterBag.php
index c9974151..742a3f0a 100644
--- a/src/Yeskn/Support/ParameterBag.php
+++ b/src/Yeskn/Support/ParameterBag.php
@@ -9,9 +9,9 @@
namespace Yeskn\Support;
-use \Symfony\Component\DependencyInjection\ParameterBag\ParameterBag as DIParameterBag;
+use Symfony\Component\HttpFoundation\ParameterBag as HttpParameterBag;
-class ParameterBag extends DIParameterBag
+class ParameterBag extends HttpParameterBag
{
public function __get($name)
{
diff --git a/web/assets-private/js/admin.js b/web/assets-private/js/admin.js
new file mode 100644
index 00000000..297a859c
--- /dev/null
+++ b/web/assets-private/js/admin.js
@@ -0,0 +1,13 @@
+$(function () {
+ $('.search-container .btn-dropdown').click(function () {
+ if ($('.panel-body').is(':visible')) {
+ $('.panel-body').slideUp();
+ $('.panel-footer').slideUp();
+ $(this).find('i').removeClass('fa-chevron-up').addClass('fa-chevron-down')
+ } else {
+ $('.panel-body').slideDown();
+ $('.panel-footer').slideDown();
+ $(this).find('i').removeClass('fa-chevron-down').addClass('fa-chevron-up')
+ }
+ })
+});
diff --git a/web/assets/css/admin.css b/web/assets/css/admin.css
index 012acd54..56bd1879 100644
--- a/web/assets/css/admin.css
+++ b/web/assets/css/admin.css
@@ -55,3 +55,18 @@ table.table td{
float: none;
}
}
+
+.search-form label{
+ padding-top: 7px;
+}
+
+.search-form .pagination-container {
+ float: right;
+}
+
+.search-form .pagination-container ul {
+ margin: 0 !important;
+}
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: searchfield-cancel-button;
+}