From 24315e4798f693d3d3b6d6a3ff6f8932864c018d Mon Sep 17 00:00:00 2001
From: xuanchen <122383162@qq.com>
Date: Mon, 14 Sep 2020 09:56:48 +0800
Subject: [PATCH] first push
---
.gitignore | 5 +
README.md | 78 +
.../Controllers/Advert/IndexController.php | 81 +
.../Controllers/Article/IndexController.php | 65 +
app/Admin/Controllers/AuthController.php | 10 +
.../Controllers/Category/IndexController.php | 134 +
app/Admin/Controllers/ExampleController.php | 67 +
app/Admin/Controllers/HomeController.php | 34 +
.../Controllers/Link/IndexController.php | 37 +
app/Admin/Routes/advert.php | 12 +
app/Admin/Routes/article.php | 12 +
app/Admin/Routes/category.php | 12 +
app/Admin/Routes/link.php | 12 +
app/Admin/bootstrap.php | 29 +
app/Admin/routes.php | 21 +
app/Console/Kernel.php | 42 +
app/Exceptions/Handler.php | 57 +
app/Http/Controllers/ArticleController.php | 28 +
.../Auth/ConfirmPasswordController.php | 40 +
.../Auth/ForgotPasswordController.php | 22 +
app/Http/Controllers/Auth/LoginController.php | 40 +
.../Controllers/Auth/RegisterController.php | 73 +
.../Auth/ResetPasswordController.php | 30 +
.../Auth/VerificationController.php | 42 +
app/Http/Controllers/CategoryController.php | 33 +
app/Http/Controllers/Controller.php | 37 +
app/Http/Controllers/IndexController.php | 40 +
app/Http/Controllers/TestController.php | 197 +
app/Http/Kernel.php | 82 +
app/Http/Middleware/Authenticate.php | 21 +
.../Middleware/CheckForMaintenanceMode.php | 17 +
app/Http/Middleware/EncryptCookies.php | 17 +
.../Middleware/RedirectIfAuthenticated.php | 27 +
app/Http/Middleware/TrimStrings.php | 18 +
app/Http/Middleware/TrustProxies.php | 23 +
app/Http/Middleware/VerifyCsrfToken.php | 24 +
app/Models/Advert.php | 15 +
app/Models/Article.php | 46 +
app/Models/Category.php | 72 +
app/Models/DedeAddonarticle.php | 7 +
app/Models/DedeArchive.php | 11 +
app/Models/DedeArctype.php | 11 +
app/Models/Link.php | 8 +
app/Models/Model.php | 22 +
app/Models/Traits/BelongsToCategory.php | 21 +
app/Models/Traits/HasOneCover.php | 24 +
app/Providers/AppServiceProvider.php | 34 +
app/Providers/AuthServiceProvider.php | 30 +
app/Providers/BroadcastServiceProvider.php | 21 +
app/Providers/EventServiceProvider.php | 34 +
app/Providers/RouteServiceProvider.php | 80 +
app/Traits/Tree.php | 90 +
app/User.php | 39 +
artisan | 53 +
bootstrap/app.php | 55 +
bootstrap/cache/.gitignore | 2 +
composer.json | 64 +
composer.lock | 6627 ++++
config/admin.php | 409 +
config/app.php | 231 +
config/auth.php | 117 +
config/broadcasting.php | 59 +
config/cache.php | 103 +
config/database.php | 147 +
config/filesystems.php | 77 +
config/hashing.php | 52 +
config/logging.php | 104 +
config/mail.php | 136 +
config/queue.php | 88 +
config/services.php | 33 +
config/session.php | 199 +
config/ueditor.php | 116 +
config/view.php | 36 +
database/.gitignore | 2 +
database/factories/UserFactory.php | 28 +
.../2014_10_12_000000_create_users_table.php | 36 +
...12_100000_create_password_resets_table.php | 32 +
.../2016_01_04_173148_create_admin_tables.php | 119 +
..._08_19_000000_create_failed_jobs_table.php | 35 +
...020_05_28_153525_create_articles_table.php | 31 +
...0_05_28_153536_create_categories_table.php | 31 +
.../2020_05_28_163818_create_links_table.php | 31 +
database/seeds/DatabaseSeeder.php | 16 +
public/.htaccess | 21 +
public/assets/index/css/style.css | 194 +
public/assets/index/images/1.jpg | Bin 0 -> 73056 bytes
public/assets/index/images/2.jpg | Bin 0 -> 90866 bytes
public/assets/index/images/3.jpg | Bin 0 -> 79857 bytes
public/assets/index/images/4.jpg | Bin 0 -> 8108 bytes
public/assets/index/images/5.jpg | Bin 0 -> 38016 bytes
public/assets/index/images/Thumbs.db | Bin 0 -> 216064 bytes
public/assets/index/images/banner.jpg | Bin 0 -> 705359 bytes
public/assets/index/images/bg.jpg | Bin 0 -> 10525 bytes
public/assets/index/images/icon.png | Bin 0 -> 1381 bytes
public/assets/index/images/icon2.png | Bin 0 -> 14984 bytes
public/assets/index/images/images.rar | Bin 0 -> 2408 bytes
public/assets/index/images/logo.jpg | Bin 0 -> 88702 bytes
public/assets/index/js/banner.js | 106 +
public/assets/index/js/jquery-1.8.2.min.js | 2 +
public/favicon.ico | 0
public/index.php | 60 +
public/robots.txt | 2 +
.../AdminLTE/bootstrap/css/bootstrap.min.css | 5 +
.../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes
.../fonts/glyphicons-halflings-regular.svg | 288 +
.../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes
.../AdminLTE/bootstrap/js/bootstrap.min.js | 7 +
.../AdminLTE/dist/css/AdminLTE.min.css | 7 +
.../dist/css/skins/_all-skins.min.css | 1 +
.../dist/css/skins/skin-black-light.min.css | 1 +
.../dist/css/skins/skin-black.min.css | 1 +
.../dist/css/skins/skin-blue-light.min.css | 1 +
.../AdminLTE/dist/css/skins/skin-blue.min.css | 1 +
.../dist/css/skins/skin-green-light.min.css | 1 +
.../dist/css/skins/skin-green.min.css | 1 +
.../dist/css/skins/skin-purple-light.min.css | 1 +
.../dist/css/skins/skin-purple.min.css | 1 +
.../dist/css/skins/skin-red-light.min.css | 1 +
.../AdminLTE/dist/css/skins/skin-red.min.css | 1 +
.../dist/css/skins/skin-yellow-light.min.css | 1 +
.../dist/css/skins/skin-yellow.min.css | 1 +
.../AdminLTE/dist/img/boxed-bg.jpg | Bin 0 -> 123770 bytes
.../AdminLTE/dist/img/boxed-bg.png | Bin 0 -> 43694 bytes
.../AdminLTE/dist/img/default-50x50.gif | Bin 0 -> 184 bytes
.../laravel-admin/AdminLTE/dist/img/icons.png | Bin 0 -> 1154 bytes
.../AdminLTE/dist/img/user2-160x160.jpg | Bin 0 -> 7070 bytes
.../laravel-admin/AdminLTE/dist/js/app.min.js | 13 +
.../bootstrap-slider/bootstrap-slider.js | 1167 +
.../plugins/bootstrap-slider/slider.css | 169 +
.../colorpicker/bootstrap-colorpicker.min.css | 9 +
.../colorpicker/bootstrap-colorpicker.min.js | 1 +
.../colorpicker/img/alpha-horizontal.png | Bin 0 -> 3635 bytes
.../plugins/colorpicker/img/alpha.png | Bin 0 -> 3271 bytes
.../colorpicker/img/hue-horizontal.png | Bin 0 -> 2837 bytes
.../AdminLTE/plugins/colorpicker/img/hue.png | Bin 0 -> 2972 bytes
.../plugins/colorpicker/img/saturation.png | Bin 0 -> 8817 bytes
.../AdminLTE/plugins/iCheck/all.css | 61 +
.../AdminLTE/plugins/iCheck/flat/_all.css | 560 +
.../AdminLTE/plugins/iCheck/flat/aero.css | 56 +
.../AdminLTE/plugins/iCheck/flat/aero.png | Bin 0 -> 1520 bytes
.../AdminLTE/plugins/iCheck/flat/aero@2x.png | Bin 0 -> 3218 bytes
.../AdminLTE/plugins/iCheck/flat/blue.css | 56 +
.../AdminLTE/plugins/iCheck/flat/blue.png | Bin 0 -> 1518 bytes
.../AdminLTE/plugins/iCheck/flat/blue@2x.png | Bin 0 -> 3217 bytes
.../AdminLTE/plugins/iCheck/flat/flat.css | 56 +
.../AdminLTE/plugins/iCheck/flat/flat.png | Bin 0 -> 1515 bytes
.../AdminLTE/plugins/iCheck/flat/flat@2x.png | Bin 0 -> 3217 bytes
.../AdminLTE/plugins/iCheck/flat/green.css | 56 +
.../AdminLTE/plugins/iCheck/flat/green.png | Bin 0 -> 1444 bytes
.../AdminLTE/plugins/iCheck/flat/green@2x.png | Bin 0 -> 3117 bytes
.../AdminLTE/plugins/iCheck/flat/grey.css | 56 +
.../AdminLTE/plugins/iCheck/flat/grey.png | Bin 0 -> 1516 bytes
.../AdminLTE/plugins/iCheck/flat/grey@2x.png | Bin 0 -> 3217 bytes
.../AdminLTE/plugins/iCheck/flat/orange.css | 56 +
.../AdminLTE/plugins/iCheck/flat/orange.png | Bin 0 -> 1518 bytes
.../plugins/iCheck/flat/orange@2x.png | Bin 0 -> 3275 bytes
.../AdminLTE/plugins/iCheck/flat/pink.css | 56 +
.../AdminLTE/plugins/iCheck/flat/pink.png | Bin 0 -> 1522 bytes
.../AdminLTE/plugins/iCheck/flat/pink@2x.png | Bin 0 -> 3218 bytes
.../AdminLTE/plugins/iCheck/flat/purple.css | 56 +
.../AdminLTE/plugins/iCheck/flat/purple.png | Bin 0 -> 1519 bytes
.../plugins/iCheck/flat/purple@2x.png | Bin 0 -> 3218 bytes
.../AdminLTE/plugins/iCheck/flat/red.css | 56 +
.../AdminLTE/plugins/iCheck/flat/red.png | Bin 0 -> 1516 bytes
.../AdminLTE/plugins/iCheck/flat/red@2x.png | Bin 0 -> 3276 bytes
.../AdminLTE/plugins/iCheck/flat/yellow.css | 56 +
.../AdminLTE/plugins/iCheck/flat/yellow.png | Bin 0 -> 1516 bytes
.../plugins/iCheck/flat/yellow@2x.png | Bin 0 -> 3216 bytes
.../plugins/iCheck/futurico/futurico.css | 56 +
.../plugins/iCheck/futurico/futurico.png | Bin 0 -> 1734 bytes
.../plugins/iCheck/futurico/futurico@2x.png | Bin 0 -> 3446 bytes
.../AdminLTE/plugins/iCheck/icheck.min.js | 10 +
.../AdminLTE/plugins/iCheck/line/_all.css | 740 +
.../AdminLTE/plugins/iCheck/line/aero.css | 74 +
.../AdminLTE/plugins/iCheck/line/blue.css | 74 +
.../AdminLTE/plugins/iCheck/line/green.css | 74 +
.../AdminLTE/plugins/iCheck/line/grey.css | 74 +
.../AdminLTE/plugins/iCheck/line/line.css | 74 +
.../AdminLTE/plugins/iCheck/line/line.png | Bin 0 -> 588 bytes
.../AdminLTE/plugins/iCheck/line/line@2x.png | Bin 0 -> 1073 bytes
.../AdminLTE/plugins/iCheck/line/orange.css | 74 +
.../AdminLTE/plugins/iCheck/line/pink.css | 74 +
.../AdminLTE/plugins/iCheck/line/purple.css | 74 +
.../AdminLTE/plugins/iCheck/line/red.css | 74 +
.../AdminLTE/plugins/iCheck/line/yellow.css | 74 +
.../AdminLTE/plugins/iCheck/minimal/_all.css | 557 +
.../AdminLTE/plugins/iCheck/minimal/aero.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/aero.png | Bin 0 -> 1151 bytes
.../plugins/iCheck/minimal/aero@2x.png | Bin 0 -> 1409 bytes
.../AdminLTE/plugins/iCheck/minimal/blue.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/blue.png | Bin 0 -> 1132 bytes
.../plugins/iCheck/minimal/blue@2x.png | Bin 0 -> 1410 bytes
.../AdminLTE/plugins/iCheck/minimal/green.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/green.png | Bin 0 -> 1143 bytes
.../plugins/iCheck/minimal/green@2x.png | Bin 0 -> 1408 bytes
.../AdminLTE/plugins/iCheck/minimal/grey.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/grey.png | Bin 0 -> 1142 bytes
.../plugins/iCheck/minimal/grey@2x.png | Bin 0 -> 1407 bytes
.../plugins/iCheck/minimal/minimal.css | 62 +
.../plugins/iCheck/minimal/minimal.png | Bin 0 -> 1114 bytes
.../plugins/iCheck/minimal/minimal@2x.png | Bin 0 -> 1410 bytes
.../plugins/iCheck/minimal/orange.css | 62 +
.../plugins/iCheck/minimal/orange.png | Bin 0 -> 1139 bytes
.../plugins/iCheck/minimal/orange@2x.png | Bin 0 -> 1407 bytes
.../AdminLTE/plugins/iCheck/minimal/pink.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/pink.png | Bin 0 -> 1150 bytes
.../plugins/iCheck/minimal/pink@2x.png | Bin 0 -> 1409 bytes
.../plugins/iCheck/minimal/purple.css | 62 +
.../plugins/iCheck/minimal/purple.png | Bin 0 -> 1132 bytes
.../plugins/iCheck/minimal/purple@2x.png | Bin 0 -> 1409 bytes
.../AdminLTE/plugins/iCheck/minimal/red.css | 62 +
.../AdminLTE/plugins/iCheck/minimal/red.png | Bin 0 -> 1130 bytes
.../plugins/iCheck/minimal/red@2x.png | Bin 0 -> 1410 bytes
.../plugins/iCheck/minimal/yellow.css | 62 +
.../plugins/iCheck/minimal/yellow.png | Bin 0 -> 1135 bytes
.../plugins/iCheck/minimal/yellow@2x.png | Bin 0 -> 1406 bytes
.../plugins/iCheck/polaris/polaris.css | 62 +
.../plugins/iCheck/polaris/polaris.png | Bin 0 -> 6401 bytes
.../plugins/iCheck/polaris/polaris@2x.png | Bin 0 -> 16760 bytes
.../AdminLTE/plugins/iCheck/square/_all.css | 620 +
.../AdminLTE/plugins/iCheck/square/aero.css | 62 +
.../AdminLTE/plugins/iCheck/square/aero.png | Bin 0 -> 2167 bytes
.../plugins/iCheck/square/aero@2x.png | Bin 0 -> 4455 bytes
.../AdminLTE/plugins/iCheck/square/blue.css | 62 +
.../AdminLTE/plugins/iCheck/square/blue.png | Bin 0 -> 2185 bytes
.../plugins/iCheck/square/blue@2x.png | Bin 0 -> 4485 bytes
.../AdminLTE/plugins/iCheck/square/green.css | 62 +
.../AdminLTE/plugins/iCheck/square/green.png | Bin 0 -> 2193 bytes
.../plugins/iCheck/square/green@2x.png | Bin 0 -> 4498 bytes
.../AdminLTE/plugins/iCheck/square/grey.css | 62 +
.../AdminLTE/plugins/iCheck/square/grey.png | Bin 0 -> 2186 bytes
.../plugins/iCheck/square/grey@2x.png | Bin 0 -> 4483 bytes
.../AdminLTE/plugins/iCheck/square/orange.css | 62 +
.../AdminLTE/plugins/iCheck/square/orange.png | Bin 0 -> 2181 bytes
.../plugins/iCheck/square/orange@2x.png | Bin 0 -> 4474 bytes
.../AdminLTE/plugins/iCheck/square/pink.css | 62 +
.../AdminLTE/plugins/iCheck/square/pink.png | Bin 0 -> 2189 bytes
.../plugins/iCheck/square/pink@2x.png | Bin 0 -> 4479 bytes
.../AdminLTE/plugins/iCheck/square/purple.css | 62 +
.../AdminLTE/plugins/iCheck/square/purple.png | Bin 0 -> 2188 bytes
.../plugins/iCheck/square/purple@2x.png | Bin 0 -> 4501 bytes
.../AdminLTE/plugins/iCheck/square/red.css | 62 +
.../AdminLTE/plugins/iCheck/square/red.png | Bin 0 -> 2190 bytes
.../AdminLTE/plugins/iCheck/square/red@2x.png | Bin 0 -> 4490 bytes
.../AdminLTE/plugins/iCheck/square/square.css | 62 +
.../AdminLTE/plugins/iCheck/square/square.png | Bin 0 -> 2175 bytes
.../plugins/iCheck/square/square@2x.png | Bin 0 -> 4478 bytes
.../AdminLTE/plugins/iCheck/square/yellow.css | 62 +
.../AdminLTE/plugins/iCheck/square/yellow.png | Bin 0 -> 2131 bytes
.../plugins/iCheck/square/yellow@2x.png | Bin 0 -> 4385 bytes
.../input-mask/jquery.inputmask.bundle.min.js | 10 +
.../input-mask/phone-codes/phone-be.json | 45 +
.../input-mask/phone-codes/phone-codes.json | 294 +
.../plugins/input-mask/phone-codes/readme.txt | 1 +
.../ionslider/img/sprite-skin-flat.png | Bin 0 -> 352 bytes
.../ionslider/img/sprite-skin-nice.png | Bin 0 -> 1022 bytes
.../plugins/ionslider/ion.rangeSlider.css | 126 +
.../plugins/ionslider/ion.rangeSlider.min.js | 22 +
.../ionslider/ion.rangeSlider.skinFlat.css | 89 +
.../ionslider/ion.rangeSlider.skinNice.css | 85 +
.../plugins/jQuery/jQuery-2.1.4.min.js | 4 +
.../AdminLTE/plugins/select2/i18n/ar.js | 3 +
.../AdminLTE/plugins/select2/i18n/az.js | 3 +
.../AdminLTE/plugins/select2/i18n/bg.js | 3 +
.../AdminLTE/plugins/select2/i18n/ca.js | 3 +
.../AdminLTE/plugins/select2/i18n/cs.js | 3 +
.../AdminLTE/plugins/select2/i18n/da.js | 3 +
.../AdminLTE/plugins/select2/i18n/de.js | 3 +
.../AdminLTE/plugins/select2/i18n/el.js | 3 +
.../AdminLTE/plugins/select2/i18n/en.js | 3 +
.../AdminLTE/plugins/select2/i18n/es.js | 3 +
.../AdminLTE/plugins/select2/i18n/et.js | 3 +
.../AdminLTE/plugins/select2/i18n/eu.js | 3 +
.../AdminLTE/plugins/select2/i18n/fa.js | 3 +
.../AdminLTE/plugins/select2/i18n/fi.js | 3 +
.../AdminLTE/plugins/select2/i18n/fr.js | 3 +
.../AdminLTE/plugins/select2/i18n/gl.js | 3 +
.../AdminLTE/plugins/select2/i18n/he.js | 3 +
.../AdminLTE/plugins/select2/i18n/hi.js | 3 +
.../AdminLTE/plugins/select2/i18n/hr.js | 3 +
.../AdminLTE/plugins/select2/i18n/hu.js | 3 +
.../AdminLTE/plugins/select2/i18n/id.js | 3 +
.../AdminLTE/plugins/select2/i18n/is.js | 3 +
.../AdminLTE/plugins/select2/i18n/it.js | 3 +
.../AdminLTE/plugins/select2/i18n/ja.js | 3 +
.../AdminLTE/plugins/select2/i18n/km.js | 3 +
.../AdminLTE/plugins/select2/i18n/ko.js | 3 +
.../AdminLTE/plugins/select2/i18n/lt.js | 3 +
.../AdminLTE/plugins/select2/i18n/lv.js | 3 +
.../AdminLTE/plugins/select2/i18n/mk.js | 3 +
.../AdminLTE/plugins/select2/i18n/ms.js | 3 +
.../AdminLTE/plugins/select2/i18n/nb.js | 3 +
.../AdminLTE/plugins/select2/i18n/nl.js | 3 +
.../AdminLTE/plugins/select2/i18n/pl.js | 3 +
.../AdminLTE/plugins/select2/i18n/pt-BR.js | 3 +
.../AdminLTE/plugins/select2/i18n/pt.js | 3 +
.../AdminLTE/plugins/select2/i18n/ro.js | 3 +
.../AdminLTE/plugins/select2/i18n/ru.js | 3 +
.../AdminLTE/plugins/select2/i18n/sk.js | 3 +
.../AdminLTE/plugins/select2/i18n/sr-Cyrl.js | 3 +
.../AdminLTE/plugins/select2/i18n/sr.js | 3 +
.../AdminLTE/plugins/select2/i18n/sv.js | 3 +
.../AdminLTE/plugins/select2/i18n/th.js | 3 +
.../AdminLTE/plugins/select2/i18n/tr.js | 3 +
.../AdminLTE/plugins/select2/i18n/uk.js | 3 +
.../AdminLTE/plugins/select2/i18n/vi.js | 3 +
.../AdminLTE/plugins/select2/i18n/zh-CN.js | 3 +
.../AdminLTE/plugins/select2/i18n/zh-TW.js | 3 +
.../plugins/select2/select2.full.min.js | 3 +
.../AdminLTE/plugins/select2/select2.min.css | 1 +
.../slimScroll/jquery.slimscroll.min.js | 16 +
.../dist/bootstrap-duallistbox.min.css | 10 +
.../dist/jquery.bootstrap-duallistbox.min.js | 9 +
.../bootstrap-fileinput/css/fileinput.min.css | 12 +
.../bootstrap-fileinput/img/loading-sm.gif | Bin 0 -> 2670 bytes
.../bootstrap-fileinput/img/loading.gif | Bin 0 -> 847 bytes
.../bootstrap-fileinput/js/fileinput.min.js | 13 +
.../js/plugins/canvas-to-blob.js | 95 +
.../js/plugins/canvas-to-blob.min.js | 1 +
.../bootstrap-fileinput/js/plugins/piexif.js | 2471 ++
.../js/plugins/piexif.min.js | 1 +
.../bootstrap-fileinput/js/plugins/purify.js | 1009 +
.../js/plugins/purify.min.js | 1 +
.../js/plugins/sortable.js | 1590 +
.../js/plugins/sortable.min.js | 1 +
.../css/bootstrap3/bootstrap-switch.min.css | 22 +
.../dist/js/bootstrap-switch.min.js | 22 +
.../css/bootstrap-editable.css | 663 +
.../bootstrap3-editable/img/clear.png | Bin 0 -> 509 bytes
.../bootstrap3-editable/img/loading.gif | Bin 0 -> 1849 bytes
.../js/bootstrap-editable.min.js | 7 +
.../css/bootstrap-datetimepicker.min.css | 5 +
.../build/js/bootstrap-datetimepicker.min.js | 9 +
.../font-awesome/css/font-awesome.min.css | 4 +
.../font-awesome/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes
.../fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes
.../fonts/fontawesome-webfont.svg | 2671 ++
.../fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes
.../fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes
.../fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes
.../dist/css/fontawesome-iconpicker.min.css | 9 +
.../dist/js/fontawesome-iconpicker.min.js | 1 +
.../laravel-admin/google-fonts/fonts.css | 50 +
.../fonts/Source-Sans-Pro-Bold.ttf | Bin 0 -> 34908 bytes
.../fonts/Source-Sans-Pro-Bold.woff | Bin 0 -> 17264 bytes
.../fonts/Source-Sans-Pro-Bold.woff2 | Bin 0 -> 13892 bytes
.../fonts/Source-Sans-Pro-Italic.ttf | Bin 0 -> 33864 bytes
.../fonts/Source-Sans-Pro-Italic.woff | Bin 0 -> 17288 bytes
.../fonts/Source-Sans-Pro-Italic.woff2 | Bin 0 -> 13980 bytes
.../fonts/Source-Sans-Pro-Light-Italic.ttf | Bin 0 -> 33996 bytes
.../fonts/Source-Sans-Pro-Light-Italic.woff | Bin 0 -> 17304 bytes
.../fonts/Source-Sans-Pro-Light-Italic.woff2 | Bin 0 -> 13772 bytes
.../fonts/Source-Sans-Pro-Light.ttf | Bin 0 -> 35368 bytes
.../fonts/Source-Sans-Pro-Light.woff | Bin 0 -> 17540 bytes
.../fonts/Source-Sans-Pro-Light.woff2 | Bin 0 -> 14308 bytes
.../fonts/Source-Sans-Pro-Semibold-Italic.ttf | Bin 0 -> 33592 bytes
.../Source-Sans-Pro-Semibold-Italic.woff | Bin 0 -> 17168 bytes
.../Source-Sans-Pro-Semibold-Italic.woff2 | Bin 0 -> 13716 bytes
.../fonts/Source-Sans-Pro-Semibold.ttf | Bin 0 -> 34808 bytes
.../fonts/Source-Sans-Pro-Semibold.woff | Bin 0 -> 17380 bytes
.../fonts/Source-Sans-Pro-Semibold.woff2 | Bin 0 -> 13992 bytes
.../google-fonts/fonts/Source-Sans-Pro.eot | Bin 0 -> 16229 bytes
.../google-fonts/fonts/Source-Sans-Pro.svg | 345 +
.../google-fonts/fonts/Source-Sans-Pro.ttf | Bin 0 -> 35064 bytes
.../google-fonts/fonts/Source-Sans-Pro.woff | Bin 0 -> 17500 bytes
.../google-fonts/fonts/Source-Sans-Pro.woff2 | Bin 0 -> 14308 bytes
.../laravel-admin/jquery-pjax/jquery.pjax.js | 950 +
.../laravel-admin/laravel-admin.css | 85 +
.../laravel-admin/laravel-admin.js | 198 +
.../moment/min/moment-with-locales.min.js | 80 +
.../laravel-admin/nestable/jquery.nestable.js | 484 +
.../laravel-admin/nestable/nestable.css | 34 +
.../laravel-admin/nprogress/nprogress.css | 74 +
.../laravel-admin/nprogress/nprogress.js | 476 +
.../number-input/bootstrap-number-input.js | 88 +
.../sweetalert2/dist/sweetalert2.css | 1145 +
.../sweetalert2/dist/sweetalert2.min.js | 1 +
.../laravel-admin/toastr/build/toastr.min.css | 1 +
.../laravel-admin/toastr/build/toastr.min.js | 2 +
.../vendor/ueditor/dialogs/anchor/anchor.html | 40 +
.../ueditor/dialogs/attachment/attachment.css | 681 +
.../dialogs/attachment/attachment.html | 60 +
.../ueditor/dialogs/attachment/attachment.js | 754 +
.../attachment/fileTypeImages/icon_chm.gif | Bin 0 -> 923 bytes
.../fileTypeImages/icon_default.png | Bin 0 -> 841 bytes
.../attachment/fileTypeImages/icon_doc.gif | Bin 0 -> 1012 bytes
.../attachment/fileTypeImages/icon_exe.gif | Bin 0 -> 949 bytes
.../attachment/fileTypeImages/icon_jpg.gif | Bin 0 -> 950 bytes
.../attachment/fileTypeImages/icon_mp3.gif | Bin 0 -> 986 bytes
.../attachment/fileTypeImages/icon_mv.gif | Bin 0 -> 1001 bytes
.../attachment/fileTypeImages/icon_pdf.gif | Bin 0 -> 996 bytes
.../attachment/fileTypeImages/icon_ppt.gif | Bin 0 -> 1001 bytes
.../attachment/fileTypeImages/icon_psd.gif | Bin 0 -> 1009 bytes
.../attachment/fileTypeImages/icon_rar.gif | Bin 0 -> 1007 bytes
.../attachment/fileTypeImages/icon_txt.gif | Bin 0 -> 970 bytes
.../attachment/fileTypeImages/icon_xls.gif | Bin 0 -> 1005 bytes
.../dialogs/attachment/images/alignicon.gif | Bin 0 -> 1051 bytes
.../dialogs/attachment/images/alignicon.png | Bin 0 -> 3714 bytes
.../ueditor/dialogs/attachment/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/attachment/images/file-icons.gif | Bin 0 -> 20097 bytes
.../dialogs/attachment/images/file-icons.png | Bin 0 -> 44070 bytes
.../dialogs/attachment/images/icons.gif | Bin 0 -> 453 bytes
.../dialogs/attachment/images/icons.png | Bin 0 -> 2678 bytes
.../dialogs/attachment/images/image.png | Bin 0 -> 1672 bytes
.../dialogs/attachment/images/progress.png | Bin 0 -> 1269 bytes
.../dialogs/attachment/images/success.gif | Bin 0 -> 445 bytes
.../dialogs/attachment/images/success.png | Bin 0 -> 1621 bytes
.../ueditor/dialogs/background/background.css | 94 +
.../dialogs/background/background.html | 56 +
.../ueditor/dialogs/background/background.js | 376 +
.../ueditor/dialogs/background/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/background/images/success.png | Bin 0 -> 1621 bytes
.../ueditor/dialogs/charts/chart.config.js | 65 +
.../vendor/ueditor/dialogs/charts/charts.css | 165 +
.../vendor/ueditor/dialogs/charts/charts.html | 89 +
.../vendor/ueditor/dialogs/charts/charts.js | 519 +
.../ueditor/dialogs/charts/images/charts0.png | Bin 0 -> 25306 bytes
.../ueditor/dialogs/charts/images/charts1.png | Bin 0 -> 19263 bytes
.../ueditor/dialogs/charts/images/charts2.png | Bin 0 -> 23016 bytes
.../ueditor/dialogs/charts/images/charts3.png | Bin 0 -> 7823 bytes
.../ueditor/dialogs/charts/images/charts4.png | Bin 0 -> 8344 bytes
.../ueditor/dialogs/charts/images/charts5.png | Bin 0 -> 47084 bytes
.../ueditor/dialogs/emotion/emotion.css | 43 +
.../ueditor/dialogs/emotion/emotion.html | 54 +
.../vendor/ueditor/dialogs/emotion/emotion.js | 186 +
.../ueditor/dialogs/emotion/images/0.gif | Bin 0 -> 43 bytes
.../ueditor/dialogs/emotion/images/bface.gif | Bin 0 -> 27167 bytes
.../ueditor/dialogs/emotion/images/cface.gif | Bin 0 -> 8603 bytes
.../ueditor/dialogs/emotion/images/fface.gif | Bin 0 -> 18479 bytes
.../dialogs/emotion/images/jxface2.gif | Bin 0 -> 40706 bytes
.../emotion/images/neweditor-tab-bg.png | Bin 0 -> 216 bytes
.../ueditor/dialogs/emotion/images/tface.gif | Bin 0 -> 19805 bytes
.../ueditor/dialogs/emotion/images/wface.gif | Bin 0 -> 49850 bytes
.../ueditor/dialogs/emotion/images/yface.gif | Bin 0 -> 28409 bytes
public/vendor/ueditor/dialogs/gmap/gmap.html | 89 +
public/vendor/ueditor/dialogs/help/help.css | 7 +
public/vendor/ueditor/dialogs/help/help.html | 82 +
public/vendor/ueditor/dialogs/help/help.js | 56 +
public/vendor/ueditor/dialogs/image/image.css | 894 +
.../vendor/ueditor/dialogs/image/image.html | 120 +
public/vendor/ueditor/dialogs/image/image.js | 1139 +
.../dialogs/image/images/alignicon.jpg | Bin 0 -> 16101 bytes
.../ueditor/dialogs/image/images/bg.png | Bin 0 -> 2810 bytes
.../ueditor/dialogs/image/images/icons.gif | Bin 0 -> 453 bytes
.../ueditor/dialogs/image/images/icons.png | Bin 0 -> 2678 bytes
.../ueditor/dialogs/image/images/image.png | Bin 0 -> 1672 bytes
.../ueditor/dialogs/image/images/progress.png | Bin 0 -> 1269 bytes
.../ueditor/dialogs/image/images/success.gif | Bin 0 -> 445 bytes
.../ueditor/dialogs/image/images/success.png | Bin 0 -> 1621 bytes
.../dialogs/insertframe/insertframe.html | 98 +
public/vendor/ueditor/dialogs/internal.js | 81 +
public/vendor/ueditor/dialogs/link/link.html | 126 +
public/vendor/ueditor/dialogs/map/map.html | 135 +
public/vendor/ueditor/dialogs/map/show.html | 118 +
public/vendor/ueditor/dialogs/music/music.css | 30 +
.../vendor/ueditor/dialogs/music/music.html | 32 +
public/vendor/ueditor/dialogs/music/music.js | 192 +
.../ueditor/dialogs/preview/preview.html | 40 +
.../ueditor/dialogs/scrawl/images/addimg.png | Bin 0 -> 628 bytes
.../ueditor/dialogs/scrawl/images/brush.png | Bin 0 -> 608 bytes
.../ueditor/dialogs/scrawl/images/delimg.png | Bin 0 -> 516 bytes
.../ueditor/dialogs/scrawl/images/delimgH.png | Bin 0 -> 578 bytes
.../ueditor/dialogs/scrawl/images/empty.png | Bin 0 -> 519 bytes
.../ueditor/dialogs/scrawl/images/emptyH.png | Bin 0 -> 657 bytes
.../ueditor/dialogs/scrawl/images/eraser.png | Bin 0 -> 43271 bytes
.../ueditor/dialogs/scrawl/images/redo.png | Bin 0 -> 454 bytes
.../ueditor/dialogs/scrawl/images/redoH.png | Bin 0 -> 536 bytes
.../ueditor/dialogs/scrawl/images/scale.png | Bin 0 -> 435 bytes
.../ueditor/dialogs/scrawl/images/scaleH.png | Bin 0 -> 330 bytes
.../ueditor/dialogs/scrawl/images/size.png | Bin 0 -> 775 bytes
.../ueditor/dialogs/scrawl/images/undo.png | Bin 0 -> 444 bytes
.../ueditor/dialogs/scrawl/images/undoH.png | Bin 0 -> 511 bytes
.../vendor/ueditor/dialogs/scrawl/scrawl.css | 72 +
.../vendor/ueditor/dialogs/scrawl/scrawl.html | 95 +
.../vendor/ueditor/dialogs/scrawl/scrawl.js | 671 +
.../dialogs/searchreplace/searchreplace.html | 102 +
.../dialogs/searchreplace/searchreplace.js | 164 +
.../dialogs/snapscreen/snapscreen.html | 58 +
.../ueditor/dialogs/spechars/spechars.html | 21 +
.../ueditor/dialogs/spechars/spechars.js | 57 +
.../vendor/ueditor/dialogs/table/dragicon.png | Bin 0 -> 304 bytes
.../ueditor/dialogs/table/edittable.css | 84 +
.../ueditor/dialogs/table/edittable.html | 64 +
.../vendor/ueditor/dialogs/table/edittable.js | 237 +
.../vendor/ueditor/dialogs/table/edittd.html | 61 +
.../vendor/ueditor/dialogs/table/edittip.html | 33 +
.../vendor/ueditor/dialogs/template/config.js | 42 +
.../ueditor/dialogs/template/images/bg.gif | Bin 0 -> 84 bytes
.../ueditor/dialogs/template/images/pre0.png | Bin 0 -> 250 bytes
.../ueditor/dialogs/template/images/pre1.png | Bin 0 -> 291 bytes
.../ueditor/dialogs/template/images/pre2.png | Bin 0 -> 394 bytes
.../ueditor/dialogs/template/images/pre3.png | Bin 0 -> 485 bytes
.../ueditor/dialogs/template/images/pre4.png | Bin 0 -> 393 bytes
.../ueditor/dialogs/template/template.css | 18 +
.../ueditor/dialogs/template/template.html | 26 +
.../ueditor/dialogs/template/template.js | 53 +
.../ueditor/dialogs/video/images/bg.png | Bin 0 -> 2810 bytes
.../dialogs/video/images/center_focus.jpg | Bin 0 -> 11795 bytes
.../dialogs/video/images/file-icons.gif | Bin 0 -> 20097 bytes
.../dialogs/video/images/file-icons.png | Bin 0 -> 44070 bytes
.../ueditor/dialogs/video/images/icons.gif | Bin 0 -> 453 bytes
.../ueditor/dialogs/video/images/icons.png | Bin 0 -> 2678 bytes
.../ueditor/dialogs/video/images/image.png | Bin 0 -> 1672 bytes
.../dialogs/video/images/left_focus.jpg | Bin 0 -> 11423 bytes
.../dialogs/video/images/none_focus.jpg | Bin 0 -> 11546 bytes
.../ueditor/dialogs/video/images/progress.png | Bin 0 -> 1269 bytes
.../dialogs/video/images/right_focus.jpg | Bin 0 -> 11334 bytes
.../ueditor/dialogs/video/images/success.gif | Bin 0 -> 445 bytes
.../ueditor/dialogs/video/images/success.png | Bin 0 -> 1621 bytes
public/vendor/ueditor/dialogs/video/video.css | 635 +
.../vendor/ueditor/dialogs/video/video.html | 86 +
public/vendor/ueditor/dialogs/video/video.js | 789 +
.../vendor/ueditor/dialogs/webapp/webapp.html | 53 +
.../dialogs/wordimage/fClipboard_ueditor.swf | Bin 0 -> 1908 bytes
.../dialogs/wordimage/imageUploader.swf | Bin 0 -> 62857 bytes
.../ueditor/dialogs/wordimage/tangram.js | 1495 +
.../ueditor/dialogs/wordimage/wordimage.html | 111 +
.../ueditor/dialogs/wordimage/wordimage.js | 157 +
public/vendor/ueditor/index.html | 175 +
public/vendor/ueditor/lang/en/en.js | 684 +
.../ueditor/lang/en/images/addimage.png | Bin 0 -> 3373 bytes
.../lang/en/images/alldeletebtnhoverskin.png | Bin 0 -> 743 bytes
.../lang/en/images/alldeletebtnupskin.png | Bin 0 -> 743 bytes
.../ueditor/lang/en/images/background.png | Bin 0 -> 3854 bytes
.../vendor/ueditor/lang/en/images/button.png | Bin 0 -> 4929 bytes
public/vendor/ueditor/lang/en/images/copy.png | Bin 0 -> 1222 bytes
.../ueditor/lang/en/images/deletedisable.png | Bin 0 -> 649 bytes
.../ueditor/lang/en/images/deleteenable.png | Bin 0 -> 664 bytes
.../ueditor/lang/en/images/listbackground.png | Bin 0 -> 3750 bytes
.../ueditor/lang/en/images/localimage.png | Bin 0 -> 3083 bytes
.../vendor/ueditor/lang/en/images/music.png | Bin 0 -> 91561 bytes
.../lang/en/images/rotateleftdisable.png | Bin 0 -> 719 bytes
.../lang/en/images/rotateleftenable.png | Bin 0 -> 952 bytes
.../lang/en/images/rotaterightdisable.png | Bin 0 -> 754 bytes
.../lang/en/images/rotaterightenable.png | Bin 0 -> 1007 bytes
.../vendor/ueditor/lang/en/images/upload.png | Bin 0 -> 3941 bytes
.../vendor/ueditor/lang/zh-cn/images/copy.png | Bin 0 -> 4319 bytes
.../ueditor/lang/zh-cn/images/localimage.png | Bin 0 -> 6979 bytes
.../ueditor/lang/zh-cn/images/music.png | Bin 0 -> 23106 bytes
.../ueditor/lang/zh-cn/images/upload.png | Bin 0 -> 6608 bytes
public/vendor/ueditor/lang/zh-cn/zh-cn.js | 669 +
.../ueditor/themes/default/css/ueditor.css | 1903 +
.../themes/default/css/ueditor.min.css | 8 +
.../ueditor/themes/default/dialogbase.css | 100 +
.../ueditor/themes/default/images/anchor.gif | Bin 0 -> 184 bytes
.../ueditor/themes/default/images/arrow.png | Bin 0 -> 1173 bytes
.../themes/default/images/arrow_down.png | Bin 0 -> 1610 bytes
.../themes/default/images/arrow_up.png | Bin 0 -> 1649 bytes
.../themes/default/images/button-bg.gif | Bin 0 -> 1114 bytes
.../themes/default/images/cancelbutton.gif | Bin 0 -> 1227 bytes
.../ueditor/themes/default/images/charts.png | Bin 0 -> 518 bytes
.../themes/default/images/cursor_h.gif | Bin 0 -> 253 bytes
.../themes/default/images/cursor_h.png | Bin 0 -> 175 bytes
.../themes/default/images/cursor_v.gif | Bin 0 -> 370 bytes
.../themes/default/images/cursor_v.png | Bin 0 -> 177 bytes
.../themes/default/images/dialog-title-bg.png | Bin 0 -> 938 bytes
.../themes/default/images/filescan.png | Bin 0 -> 4282 bytes
.../themes/default/images/highlighted.gif | Bin 0 -> 111 bytes
.../themes/default/images/icons-all.gif | Bin 0 -> 3750 bytes
.../ueditor/themes/default/images/icons.gif | Bin 0 -> 20947 bytes
.../ueditor/themes/default/images/icons.png | Bin 0 -> 19694 bytes
.../themes/default/images/loaderror.png | Bin 0 -> 3209 bytes
.../ueditor/themes/default/images/loading.gif | Bin 0 -> 734 bytes
.../ueditor/themes/default/images/lock.gif | Bin 0 -> 1062 bytes
.../default/images/neweditor-tab-bg.png | Bin 0 -> 216 bytes
.../themes/default/images/pagebreak.gif | Bin 0 -> 54 bytes
.../ueditor/themes/default/images/scale.png | Bin 0 -> 167 bytes
.../themes/default/images/sortable.png | Bin 0 -> 2851 bytes
.../ueditor/themes/default/images/spacer.gif | Bin 0 -> 43 bytes
.../themes/default/images/sparator_v.png | Bin 0 -> 122 bytes
.../default/images/table-cell-align.png | Bin 0 -> 1847 bytes
.../default/images/tangram-colorpicker.png | Bin 0 -> 17355 bytes
.../themes/default/images/toolbar_bg.png | Bin 0 -> 170 bytes
.../themes/default/images/unhighlighted.gif | Bin 0 -> 111 bytes
.../ueditor/themes/default/images/upload.png | Bin 0 -> 6608 bytes
.../themes/default/images/videologo.gif | Bin 0 -> 1604 bytes
.../ueditor/themes/default/images/word.gif | Bin 0 -> 1019 bytes
.../themes/default/images/wordpaste.png | Bin 0 -> 6467 bytes
public/vendor/ueditor/themes/iframe.css | 1 +
.../third-party/SyntaxHighlighter/shCore.js | 3655 ++
.../SyntaxHighlighter/shCoreDefault.css | 1 +
.../third-party/codemirror/codemirror.css | 104 +
.../third-party/codemirror/codemirror.js | 3581 ++
.../highcharts/adapters/mootools-adapter.js | 13 +
.../adapters/mootools-adapter.src.js | 313 +
.../highcharts/adapters/prototype-adapter.js | 15 +
.../adapters/prototype-adapter.src.js | 316 +
.../adapters/standalone-framework.js | 17 +
.../adapters/standalone-framework.src.js | 583 +
.../third-party/highcharts/highcharts-more.js | 50 +
.../highcharts/highcharts-more.src.js | 2430 ++
.../third-party/highcharts/highcharts.js | 283 +
.../third-party/highcharts/highcharts.src.js | 16974 +++++++++
.../highcharts/modules/annotations.js | 7 +
.../highcharts/modules/annotations.src.js | 401 +
.../highcharts/modules/canvas-tools.js | 133 +
.../highcharts/modules/canvas-tools.src.js | 3113 ++
.../third-party/highcharts/modules/data.js | 17 +
.../highcharts/modules/data.src.js | 582 +
.../highcharts/modules/drilldown.js | 11 +
.../highcharts/modules/drilldown.src.js | 447 +
.../highcharts/modules/exporting.js | 22 +
.../highcharts/modules/exporting.src.js | 709 +
.../third-party/highcharts/modules/funnel.js | 12 +
.../highcharts/modules/funnel.src.js | 289 +
.../third-party/highcharts/modules/heatmap.js | 1 +
.../highcharts/modules/heatmap.src.js | 53 +
.../third-party/highcharts/modules/map.js | 27 +
.../third-party/highcharts/modules/map.src.js | 1002 +
.../highcharts/modules/no-data-to-display.js | 12 +
.../modules/no-data-to-display.src.js | 128 +
.../highcharts/themes/dark-blue.js | 254 +
.../highcharts/themes/dark-green.js | 255 +
.../third-party/highcharts/themes/gray.js | 257 +
.../third-party/highcharts/themes/grid.js | 103 +
.../third-party/highcharts/themes/skies.js | 89 +
.../ueditor/third-party/jquery-1.10.2.js | 9789 +++++
.../ueditor/third-party/jquery-1.10.2.min.js | 6 +
.../ueditor/third-party/jquery-1.10.2.min.map | 1 +
.../snapscreen/UEditorSnapscreen.exe | Bin 0 -> 519936 bytes
.../ueditor/third-party/video-js/font/vjs.eot | Bin 0 -> 3536 bytes
.../ueditor/third-party/video-js/font/vjs.svg | 65 +
.../ueditor/third-party/video-js/font/vjs.ttf | Bin 0 -> 3372 bytes
.../third-party/video-js/font/vjs.woff | Bin 0 -> 4228 bytes
.../ueditor/third-party/video-js/video-js.css | 766 +
.../third-party/video-js/video-js.min.css | 5 +
.../ueditor/third-party/video-js/video-js.swf | Bin 0 -> 16236 bytes
.../ueditor/third-party/video-js/video.dev.js | 7108 ++++
.../ueditor/third-party/video-js/video.js | 129 +
.../third-party/webuploader/Uploader.swf | Bin 0 -> 49382 bytes
.../third-party/webuploader/webuploader.css | 28 +
.../webuploader/webuploader.custom.js | 5670 +++
.../webuploader/webuploader.custom.min.js | 2 +
.../webuploader/webuploader.flashonly.js | 4176 +++
.../webuploader/webuploader.flashonly.min.js | 2 +
.../webuploader/webuploader.html5only.js | 5559 +++
.../webuploader/webuploader.html5only.min.js | 2 +
.../third-party/webuploader/webuploader.js | 6733 ++++
.../webuploader/webuploader.min.js | 2 +
.../webuploader/webuploader.withoutimage.js | 4593 +++
.../webuploader.withoutimage.min.js | 2 +
.../zeroclipboard/ZeroClipboard.js | 1256 +
.../zeroclipboard/ZeroClipboard.min.js | 9 +
.../zeroclipboard/ZeroClipboard.swf | Bin 0 -> 3933 bytes
public/vendor/ueditor/ueditor.all.js | 29431 ++++++++++++++++
public/vendor/ueditor/ueditor.all.min.js | 709 +
public/vendor/ueditor/ueditor.config.js | 413 +
public/vendor/ueditor/ueditor.parse.js | 1022 +
public/vendor/ueditor/ueditor.parse.min.js | 28 +
public/web.config | 28 +
resources/js/app.js | 1 +
resources/js/bootstrap.js | 28 +
resources/lang/ar/admin.php | 105 +
resources/lang/az/admin.php | 102 +
resources/lang/en/admin.php | 107 +
resources/lang/en/auth.php | 19 +
resources/lang/en/pagination.php | 19 +
resources/lang/en/passwords.php | 22 +
resources/lang/en/validation.php | 151 +
resources/lang/es/admin.php | 90 +
resources/lang/fa/admin.php | 102 +
resources/lang/fr/admin.php | 102 +
resources/lang/he/admin.php | 79 +
resources/lang/id/admin.php | 106 +
resources/lang/ja/admin.php | 102 +
resources/lang/ko/admin.php | 104 +
resources/lang/ms/admin.php | 102 +
resources/lang/nl/admin.php | 107 +
resources/lang/pl/admin.php | 78 +
resources/lang/pt-BR/admin.php | 102 +
resources/lang/pt/admin.php | 102 +
resources/lang/ru/admin.php | 107 +
resources/lang/tr/admin.php | 107 +
resources/lang/uk/admin.php | 106 +
resources/lang/ur/admin.php | 107 +
resources/lang/vendor/ueditor/en/upload.php | 34 +
.../lang/vendor/ueditor/zh-CN/upload.php | 31 +
.../lang/vendor/ueditor/zh-TW/upload.php | 33 +
resources/lang/zh-CN/admin.php | 106 +
resources/lang/zh-TW/admin.php | 105 +
resources/sass/app.scss | 1 +
resources/views/article/show.blade.php | 52 +
resources/views/category/show.blade.php | 55 +
resources/views/index/index.blade.php | 232 +
resources/views/layouts/app.blade.php | 52 +
resources/views/layouts/pagination.blade.php | 32 +
.../views/vendor/ueditor/assets.blade.php | 7 +
resources/views/welcome.blade.php | 100 +
routes/api.php | 18 +
routes/channels.php | 16 +
routes/console.php | 18 +
routes/web.php | 23 +
tests/CreatesApplication.php | 22 +
tests/Feature/ExampleTest.php | 21 +
tests/TestCase.php | 10 +
tests/Unit/ExampleTest.php | 18 +
698 files changed, 163980 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 app/Admin/Controllers/Advert/IndexController.php
create mode 100644 app/Admin/Controllers/Article/IndexController.php
create mode 100644 app/Admin/Controllers/AuthController.php
create mode 100644 app/Admin/Controllers/Category/IndexController.php
create mode 100644 app/Admin/Controllers/ExampleController.php
create mode 100644 app/Admin/Controllers/HomeController.php
create mode 100644 app/Admin/Controllers/Link/IndexController.php
create mode 100644 app/Admin/Routes/advert.php
create mode 100644 app/Admin/Routes/article.php
create mode 100644 app/Admin/Routes/category.php
create mode 100644 app/Admin/Routes/link.php
create mode 100644 app/Admin/bootstrap.php
create mode 100644 app/Admin/routes.php
create mode 100644 app/Console/Kernel.php
create mode 100644 app/Exceptions/Handler.php
create mode 100644 app/Http/Controllers/ArticleController.php
create mode 100644 app/Http/Controllers/Auth/ConfirmPasswordController.php
create mode 100644 app/Http/Controllers/Auth/ForgotPasswordController.php
create mode 100644 app/Http/Controllers/Auth/LoginController.php
create mode 100644 app/Http/Controllers/Auth/RegisterController.php
create mode 100644 app/Http/Controllers/Auth/ResetPasswordController.php
create mode 100644 app/Http/Controllers/Auth/VerificationController.php
create mode 100644 app/Http/Controllers/CategoryController.php
create mode 100644 app/Http/Controllers/Controller.php
create mode 100644 app/Http/Controllers/IndexController.php
create mode 100644 app/Http/Controllers/TestController.php
create mode 100644 app/Http/Kernel.php
create mode 100644 app/Http/Middleware/Authenticate.php
create mode 100644 app/Http/Middleware/CheckForMaintenanceMode.php
create mode 100644 app/Http/Middleware/EncryptCookies.php
create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php
create mode 100644 app/Http/Middleware/TrimStrings.php
create mode 100644 app/Http/Middleware/TrustProxies.php
create mode 100644 app/Http/Middleware/VerifyCsrfToken.php
create mode 100644 app/Models/Advert.php
create mode 100644 app/Models/Article.php
create mode 100644 app/Models/Category.php
create mode 100644 app/Models/DedeAddonarticle.php
create mode 100644 app/Models/DedeArchive.php
create mode 100644 app/Models/DedeArctype.php
create mode 100644 app/Models/Link.php
create mode 100644 app/Models/Model.php
create mode 100644 app/Models/Traits/BelongsToCategory.php
create mode 100644 app/Models/Traits/HasOneCover.php
create mode 100644 app/Providers/AppServiceProvider.php
create mode 100644 app/Providers/AuthServiceProvider.php
create mode 100644 app/Providers/BroadcastServiceProvider.php
create mode 100644 app/Providers/EventServiceProvider.php
create mode 100644 app/Providers/RouteServiceProvider.php
create mode 100644 app/Traits/Tree.php
create mode 100644 app/User.php
create mode 100644 artisan
create mode 100644 bootstrap/app.php
create mode 100644 bootstrap/cache/.gitignore
create mode 100644 composer.json
create mode 100644 composer.lock
create mode 100644 config/admin.php
create mode 100644 config/app.php
create mode 100644 config/auth.php
create mode 100644 config/broadcasting.php
create mode 100644 config/cache.php
create mode 100644 config/database.php
create mode 100644 config/filesystems.php
create mode 100644 config/hashing.php
create mode 100644 config/logging.php
create mode 100644 config/mail.php
create mode 100644 config/queue.php
create mode 100644 config/services.php
create mode 100644 config/session.php
create mode 100644 config/ueditor.php
create mode 100644 config/view.php
create mode 100644 database/.gitignore
create mode 100644 database/factories/UserFactory.php
create mode 100644 database/migrations/2014_10_12_000000_create_users_table.php
create mode 100644 database/migrations/2014_10_12_100000_create_password_resets_table.php
create mode 100644 database/migrations/2016_01_04_173148_create_admin_tables.php
create mode 100644 database/migrations/2019_08_19_000000_create_failed_jobs_table.php
create mode 100644 database/migrations/2020_05_28_153525_create_articles_table.php
create mode 100644 database/migrations/2020_05_28_153536_create_categories_table.php
create mode 100644 database/migrations/2020_05_28_163818_create_links_table.php
create mode 100644 database/seeds/DatabaseSeeder.php
create mode 100644 public/.htaccess
create mode 100644 public/assets/index/css/style.css
create mode 100644 public/assets/index/images/1.jpg
create mode 100644 public/assets/index/images/2.jpg
create mode 100644 public/assets/index/images/3.jpg
create mode 100644 public/assets/index/images/4.jpg
create mode 100644 public/assets/index/images/5.jpg
create mode 100644 public/assets/index/images/Thumbs.db
create mode 100644 public/assets/index/images/banner.jpg
create mode 100644 public/assets/index/images/bg.jpg
create mode 100644 public/assets/index/images/icon.png
create mode 100644 public/assets/index/images/icon2.png
create mode 100644 public/assets/index/images/images.rar
create mode 100644 public/assets/index/images/logo.jpg
create mode 100644 public/assets/index/js/banner.js
create mode 100644 public/assets/index/js/jquery-1.8.2.min.js
create mode 100644 public/favicon.ico
create mode 100644 public/index.php
create mode 100644 public/robots.txt
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/css/bootstrap.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.eot
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.svg
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.ttf
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.woff
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/fonts/glyphicons-halflings-regular.woff2
create mode 100644 public/vendor/laravel-admin/AdminLTE/bootstrap/js/bootstrap.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/AdminLTE.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/_all-skins.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-black-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-black.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-blue-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-blue.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-green-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-green.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-purple-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-purple.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-red-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-red.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-yellow-light.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/css/skins/skin-yellow.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/boxed-bg.jpg
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/boxed-bg.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/default-50x50.gif
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/icons.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/img/user2-160x160.jpg
create mode 100644 public/vendor/laravel-admin/AdminLTE/dist/js/app.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/bootstrap-slider/slider.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/bootstrap-colorpicker.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/bootstrap-colorpicker.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/alpha-horizontal.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/alpha.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/hue-horizontal.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/hue.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/colorpicker/img/saturation.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/_all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/aero.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/aero.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/aero@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/blue.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/blue.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/blue@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/flat.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/flat.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/flat@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/green.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/green.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/green@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/grey.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/grey.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/grey@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/orange.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/orange.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/orange@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/pink.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/pink.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/pink@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/purple.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/purple.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/purple@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/red.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/red.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/red@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/yellow.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/yellow.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/yellow@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/futurico/futurico.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/futurico/futurico.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/futurico/futurico@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/icheck.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/_all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/aero.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/blue.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/green.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/grey.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/line.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/line.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/line@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/orange.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/pink.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/purple.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/red.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/yellow.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/_all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/aero.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/aero.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/aero@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/blue.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/blue.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/blue@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/green.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/green.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/green@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/grey.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/grey.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/grey@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/minimal.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/minimal.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/minimal@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/orange.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/orange.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/orange@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/pink.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/pink.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/pink@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/purple.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/purple.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/purple@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/red.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/red.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/red@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/yellow.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/yellow.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/yellow@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/polaris/polaris.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/polaris/polaris.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/polaris/polaris@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/_all.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/aero.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/aero.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/aero@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/blue.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/blue.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/blue@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/green.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/green.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/green@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/grey.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/grey.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/grey@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/orange.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/orange.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/orange@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/pink.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/pink.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/pink@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/purple.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/purple.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/purple@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/red.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/red.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/red@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/square.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/square.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/square@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/yellow.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/yellow.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/yellow@2x.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/input-mask/jquery.inputmask.bundle.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/phone-be.json
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/phone-codes.json
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/readme.txt
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/img/sprite-skin-flat.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/img/sprite-skin-nice.png
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.skinFlat.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.skinNice.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/jQuery/jQuery-2.1.4.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ar.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/az.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/bg.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ca.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/cs.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/da.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/de.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/el.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/en.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/es.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/et.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/eu.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fa.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fi.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fr.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/gl.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/he.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hi.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hr.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hu.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/id.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/is.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/it.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ja.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/km.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ko.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/lt.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/lv.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/mk.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ms.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/nb.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/nl.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pl.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pt-BR.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pt.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ro.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ru.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sk.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sr-Cyrl.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sr.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sv.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/th.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/tr.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/uk.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/vi.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/zh-CN.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/zh-TW.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/select2.full.min.js
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/select2/select2.min.css
create mode 100644 public/vendor/laravel-admin/AdminLTE/plugins/slimScroll/jquery.slimscroll.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-duallistbox/dist/bootstrap-duallistbox.min.css
create mode 100644 public/vendor/laravel-admin/bootstrap-duallistbox/dist/jquery.bootstrap-duallistbox.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/css/fileinput.min.css
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/img/loading-sm.gif
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/img/loading.gif
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/fileinput.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/canvas-to-blob.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/canvas-to-blob.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/piexif.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/piexif.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/purify.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/purify.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/sortable.js
create mode 100644 public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/sortable.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css
create mode 100644 public/vendor/laravel-admin/bootstrap-switch/dist/js/bootstrap-switch.min.js
create mode 100644 public/vendor/laravel-admin/bootstrap3-editable/css/bootstrap-editable.css
create mode 100644 public/vendor/laravel-admin/bootstrap3-editable/img/clear.png
create mode 100644 public/vendor/laravel-admin/bootstrap3-editable/img/loading.gif
create mode 100644 public/vendor/laravel-admin/bootstrap3-editable/js/bootstrap-editable.min.js
create mode 100644 public/vendor/laravel-admin/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css
create mode 100644 public/vendor/laravel-admin/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js
create mode 100644 public/vendor/laravel-admin/font-awesome/css/font-awesome.min.css
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/FontAwesome.otf
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.eot
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.svg
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.ttf
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.woff
create mode 100644 public/vendor/laravel-admin/font-awesome/fonts/fontawesome-webfont.woff2
create mode 100644 public/vendor/laravel-admin/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.min.css
create mode 100644 public/vendor/laravel-admin/fontawesome-iconpicker/dist/js/fontawesome-iconpicker.min.js
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts.css
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Bold.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Bold.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Bold.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Italic.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Italic.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Italic.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light-Italic.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Light.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold-Italic.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold-Italic.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold-Italic.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro-Semibold.woff2
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.eot
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.svg
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.ttf
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.woff
create mode 100644 public/vendor/laravel-admin/google-fonts/fonts/Source-Sans-Pro.woff2
create mode 100644 public/vendor/laravel-admin/jquery-pjax/jquery.pjax.js
create mode 100644 public/vendor/laravel-admin/laravel-admin/laravel-admin.css
create mode 100644 public/vendor/laravel-admin/laravel-admin/laravel-admin.js
create mode 100644 public/vendor/laravel-admin/moment/min/moment-with-locales.min.js
create mode 100644 public/vendor/laravel-admin/nestable/jquery.nestable.js
create mode 100644 public/vendor/laravel-admin/nestable/nestable.css
create mode 100644 public/vendor/laravel-admin/nprogress/nprogress.css
create mode 100644 public/vendor/laravel-admin/nprogress/nprogress.js
create mode 100644 public/vendor/laravel-admin/number-input/bootstrap-number-input.js
create mode 100644 public/vendor/laravel-admin/sweetalert2/dist/sweetalert2.css
create mode 100644 public/vendor/laravel-admin/sweetalert2/dist/sweetalert2.min.js
create mode 100644 public/vendor/laravel-admin/toastr/build/toastr.min.css
create mode 100644 public/vendor/laravel-admin/toastr/build/toastr.min.js
create mode 100644 public/vendor/ueditor/dialogs/anchor/anchor.html
create mode 100644 public/vendor/ueditor/dialogs/attachment/attachment.css
create mode 100644 public/vendor/ueditor/dialogs/attachment/attachment.html
create mode 100644 public/vendor/ueditor/dialogs/attachment/attachment.js
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_default.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/alignicon.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/alignicon.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/bg.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/file-icons.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/file-icons.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/icons.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/icons.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/image.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/progress.png
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/success.gif
create mode 100644 public/vendor/ueditor/dialogs/attachment/images/success.png
create mode 100644 public/vendor/ueditor/dialogs/background/background.css
create mode 100644 public/vendor/ueditor/dialogs/background/background.html
create mode 100644 public/vendor/ueditor/dialogs/background/background.js
create mode 100644 public/vendor/ueditor/dialogs/background/images/bg.png
create mode 100644 public/vendor/ueditor/dialogs/background/images/success.png
create mode 100644 public/vendor/ueditor/dialogs/charts/chart.config.js
create mode 100644 public/vendor/ueditor/dialogs/charts/charts.css
create mode 100644 public/vendor/ueditor/dialogs/charts/charts.html
create mode 100644 public/vendor/ueditor/dialogs/charts/charts.js
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts0.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts1.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts2.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts3.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts4.png
create mode 100644 public/vendor/ueditor/dialogs/charts/images/charts5.png
create mode 100644 public/vendor/ueditor/dialogs/emotion/emotion.css
create mode 100644 public/vendor/ueditor/dialogs/emotion/emotion.html
create mode 100644 public/vendor/ueditor/dialogs/emotion/emotion.js
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/0.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/bface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/cface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/fface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/jxface2.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/neweditor-tab-bg.png
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/tface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/wface.gif
create mode 100644 public/vendor/ueditor/dialogs/emotion/images/yface.gif
create mode 100644 public/vendor/ueditor/dialogs/gmap/gmap.html
create mode 100644 public/vendor/ueditor/dialogs/help/help.css
create mode 100644 public/vendor/ueditor/dialogs/help/help.html
create mode 100644 public/vendor/ueditor/dialogs/help/help.js
create mode 100644 public/vendor/ueditor/dialogs/image/image.css
create mode 100644 public/vendor/ueditor/dialogs/image/image.html
create mode 100644 public/vendor/ueditor/dialogs/image/image.js
create mode 100644 public/vendor/ueditor/dialogs/image/images/alignicon.jpg
create mode 100644 public/vendor/ueditor/dialogs/image/images/bg.png
create mode 100644 public/vendor/ueditor/dialogs/image/images/icons.gif
create mode 100644 public/vendor/ueditor/dialogs/image/images/icons.png
create mode 100644 public/vendor/ueditor/dialogs/image/images/image.png
create mode 100644 public/vendor/ueditor/dialogs/image/images/progress.png
create mode 100644 public/vendor/ueditor/dialogs/image/images/success.gif
create mode 100644 public/vendor/ueditor/dialogs/image/images/success.png
create mode 100644 public/vendor/ueditor/dialogs/insertframe/insertframe.html
create mode 100644 public/vendor/ueditor/dialogs/internal.js
create mode 100644 public/vendor/ueditor/dialogs/link/link.html
create mode 100644 public/vendor/ueditor/dialogs/map/map.html
create mode 100644 public/vendor/ueditor/dialogs/map/show.html
create mode 100644 public/vendor/ueditor/dialogs/music/music.css
create mode 100644 public/vendor/ueditor/dialogs/music/music.html
create mode 100644 public/vendor/ueditor/dialogs/music/music.js
create mode 100644 public/vendor/ueditor/dialogs/preview/preview.html
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/addimg.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/brush.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/delimg.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/delimgH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/empty.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/emptyH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/eraser.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/redo.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/redoH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/scale.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/scaleH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/size.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/undo.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/images/undoH.png
create mode 100644 public/vendor/ueditor/dialogs/scrawl/scrawl.css
create mode 100644 public/vendor/ueditor/dialogs/scrawl/scrawl.html
create mode 100644 public/vendor/ueditor/dialogs/scrawl/scrawl.js
create mode 100644 public/vendor/ueditor/dialogs/searchreplace/searchreplace.html
create mode 100644 public/vendor/ueditor/dialogs/searchreplace/searchreplace.js
create mode 100644 public/vendor/ueditor/dialogs/snapscreen/snapscreen.html
create mode 100644 public/vendor/ueditor/dialogs/spechars/spechars.html
create mode 100644 public/vendor/ueditor/dialogs/spechars/spechars.js
create mode 100644 public/vendor/ueditor/dialogs/table/dragicon.png
create mode 100644 public/vendor/ueditor/dialogs/table/edittable.css
create mode 100644 public/vendor/ueditor/dialogs/table/edittable.html
create mode 100644 public/vendor/ueditor/dialogs/table/edittable.js
create mode 100644 public/vendor/ueditor/dialogs/table/edittd.html
create mode 100644 public/vendor/ueditor/dialogs/table/edittip.html
create mode 100644 public/vendor/ueditor/dialogs/template/config.js
create mode 100644 public/vendor/ueditor/dialogs/template/images/bg.gif
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre0.png
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre1.png
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre2.png
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre3.png
create mode 100644 public/vendor/ueditor/dialogs/template/images/pre4.png
create mode 100644 public/vendor/ueditor/dialogs/template/template.css
create mode 100644 public/vendor/ueditor/dialogs/template/template.html
create mode 100644 public/vendor/ueditor/dialogs/template/template.js
create mode 100644 public/vendor/ueditor/dialogs/video/images/bg.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/center_focus.jpg
create mode 100644 public/vendor/ueditor/dialogs/video/images/file-icons.gif
create mode 100644 public/vendor/ueditor/dialogs/video/images/file-icons.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/icons.gif
create mode 100644 public/vendor/ueditor/dialogs/video/images/icons.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/image.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/left_focus.jpg
create mode 100644 public/vendor/ueditor/dialogs/video/images/none_focus.jpg
create mode 100644 public/vendor/ueditor/dialogs/video/images/progress.png
create mode 100644 public/vendor/ueditor/dialogs/video/images/right_focus.jpg
create mode 100644 public/vendor/ueditor/dialogs/video/images/success.gif
create mode 100644 public/vendor/ueditor/dialogs/video/images/success.png
create mode 100644 public/vendor/ueditor/dialogs/video/video.css
create mode 100644 public/vendor/ueditor/dialogs/video/video.html
create mode 100644 public/vendor/ueditor/dialogs/video/video.js
create mode 100644 public/vendor/ueditor/dialogs/webapp/webapp.html
create mode 100644 public/vendor/ueditor/dialogs/wordimage/fClipboard_ueditor.swf
create mode 100644 public/vendor/ueditor/dialogs/wordimage/imageUploader.swf
create mode 100644 public/vendor/ueditor/dialogs/wordimage/tangram.js
create mode 100644 public/vendor/ueditor/dialogs/wordimage/wordimage.html
create mode 100644 public/vendor/ueditor/dialogs/wordimage/wordimage.js
create mode 100644 public/vendor/ueditor/index.html
create mode 100644 public/vendor/ueditor/lang/en/en.js
create mode 100644 public/vendor/ueditor/lang/en/images/addimage.png
create mode 100644 public/vendor/ueditor/lang/en/images/alldeletebtnhoverskin.png
create mode 100644 public/vendor/ueditor/lang/en/images/alldeletebtnupskin.png
create mode 100644 public/vendor/ueditor/lang/en/images/background.png
create mode 100644 public/vendor/ueditor/lang/en/images/button.png
create mode 100644 public/vendor/ueditor/lang/en/images/copy.png
create mode 100644 public/vendor/ueditor/lang/en/images/deletedisable.png
create mode 100644 public/vendor/ueditor/lang/en/images/deleteenable.png
create mode 100644 public/vendor/ueditor/lang/en/images/listbackground.png
create mode 100644 public/vendor/ueditor/lang/en/images/localimage.png
create mode 100644 public/vendor/ueditor/lang/en/images/music.png
create mode 100644 public/vendor/ueditor/lang/en/images/rotateleftdisable.png
create mode 100644 public/vendor/ueditor/lang/en/images/rotateleftenable.png
create mode 100644 public/vendor/ueditor/lang/en/images/rotaterightdisable.png
create mode 100644 public/vendor/ueditor/lang/en/images/rotaterightenable.png
create mode 100644 public/vendor/ueditor/lang/en/images/upload.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/images/copy.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/images/localimage.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/images/music.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/images/upload.png
create mode 100644 public/vendor/ueditor/lang/zh-cn/zh-cn.js
create mode 100644 public/vendor/ueditor/themes/default/css/ueditor.css
create mode 100644 public/vendor/ueditor/themes/default/css/ueditor.min.css
create mode 100644 public/vendor/ueditor/themes/default/dialogbase.css
create mode 100644 public/vendor/ueditor/themes/default/images/anchor.gif
create mode 100644 public/vendor/ueditor/themes/default/images/arrow.png
create mode 100644 public/vendor/ueditor/themes/default/images/arrow_down.png
create mode 100644 public/vendor/ueditor/themes/default/images/arrow_up.png
create mode 100644 public/vendor/ueditor/themes/default/images/button-bg.gif
create mode 100644 public/vendor/ueditor/themes/default/images/cancelbutton.gif
create mode 100644 public/vendor/ueditor/themes/default/images/charts.png
create mode 100644 public/vendor/ueditor/themes/default/images/cursor_h.gif
create mode 100644 public/vendor/ueditor/themes/default/images/cursor_h.png
create mode 100644 public/vendor/ueditor/themes/default/images/cursor_v.gif
create mode 100644 public/vendor/ueditor/themes/default/images/cursor_v.png
create mode 100644 public/vendor/ueditor/themes/default/images/dialog-title-bg.png
create mode 100644 public/vendor/ueditor/themes/default/images/filescan.png
create mode 100644 public/vendor/ueditor/themes/default/images/highlighted.gif
create mode 100644 public/vendor/ueditor/themes/default/images/icons-all.gif
create mode 100644 public/vendor/ueditor/themes/default/images/icons.gif
create mode 100644 public/vendor/ueditor/themes/default/images/icons.png
create mode 100644 public/vendor/ueditor/themes/default/images/loaderror.png
create mode 100644 public/vendor/ueditor/themes/default/images/loading.gif
create mode 100644 public/vendor/ueditor/themes/default/images/lock.gif
create mode 100644 public/vendor/ueditor/themes/default/images/neweditor-tab-bg.png
create mode 100644 public/vendor/ueditor/themes/default/images/pagebreak.gif
create mode 100644 public/vendor/ueditor/themes/default/images/scale.png
create mode 100644 public/vendor/ueditor/themes/default/images/sortable.png
create mode 100644 public/vendor/ueditor/themes/default/images/spacer.gif
create mode 100644 public/vendor/ueditor/themes/default/images/sparator_v.png
create mode 100644 public/vendor/ueditor/themes/default/images/table-cell-align.png
create mode 100644 public/vendor/ueditor/themes/default/images/tangram-colorpicker.png
create mode 100644 public/vendor/ueditor/themes/default/images/toolbar_bg.png
create mode 100644 public/vendor/ueditor/themes/default/images/unhighlighted.gif
create mode 100644 public/vendor/ueditor/themes/default/images/upload.png
create mode 100644 public/vendor/ueditor/themes/default/images/videologo.gif
create mode 100644 public/vendor/ueditor/themes/default/images/word.gif
create mode 100644 public/vendor/ueditor/themes/default/images/wordpaste.png
create mode 100644 public/vendor/ueditor/themes/iframe.css
create mode 100644 public/vendor/ueditor/third-party/SyntaxHighlighter/shCore.js
create mode 100644 public/vendor/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css
create mode 100644 public/vendor/ueditor/third-party/codemirror/codemirror.css
create mode 100644 public/vendor/ueditor/third-party/codemirror/codemirror.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/mootools-adapter.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/mootools-adapter.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/prototype-adapter.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/prototype-adapter.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/standalone-framework.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/adapters/standalone-framework.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/highcharts-more.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/highcharts-more.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/highcharts.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/highcharts.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/annotations.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/annotations.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/canvas-tools.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/canvas-tools.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/data.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/data.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/drilldown.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/drilldown.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/exporting.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/exporting.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/funnel.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/funnel.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/heatmap.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/heatmap.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/map.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/map.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/no-data-to-display.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/modules/no-data-to-display.src.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/dark-blue.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/dark-green.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/gray.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/grid.js
create mode 100644 public/vendor/ueditor/third-party/highcharts/themes/skies.js
create mode 100644 public/vendor/ueditor/third-party/jquery-1.10.2.js
create mode 100644 public/vendor/ueditor/third-party/jquery-1.10.2.min.js
create mode 100644 public/vendor/ueditor/third-party/jquery-1.10.2.min.map
create mode 100644 public/vendor/ueditor/third-party/snapscreen/UEditorSnapscreen.exe
create mode 100644 public/vendor/ueditor/third-party/video-js/font/vjs.eot
create mode 100644 public/vendor/ueditor/third-party/video-js/font/vjs.svg
create mode 100644 public/vendor/ueditor/third-party/video-js/font/vjs.ttf
create mode 100644 public/vendor/ueditor/third-party/video-js/font/vjs.woff
create mode 100644 public/vendor/ueditor/third-party/video-js/video-js.css
create mode 100644 public/vendor/ueditor/third-party/video-js/video-js.min.css
create mode 100644 public/vendor/ueditor/third-party/video-js/video-js.swf
create mode 100644 public/vendor/ueditor/third-party/video-js/video.dev.js
create mode 100644 public/vendor/ueditor/third-party/video-js/video.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/Uploader.swf
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.css
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.custom.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.custom.min.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.flashonly.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.flashonly.min.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.html5only.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.html5only.min.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.min.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.withoutimage.js
create mode 100644 public/vendor/ueditor/third-party/webuploader/webuploader.withoutimage.min.js
create mode 100644 public/vendor/ueditor/third-party/zeroclipboard/ZeroClipboard.js
create mode 100644 public/vendor/ueditor/third-party/zeroclipboard/ZeroClipboard.min.js
create mode 100644 public/vendor/ueditor/third-party/zeroclipboard/ZeroClipboard.swf
create mode 100644 public/vendor/ueditor/ueditor.all.js
create mode 100644 public/vendor/ueditor/ueditor.all.min.js
create mode 100644 public/vendor/ueditor/ueditor.config.js
create mode 100644 public/vendor/ueditor/ueditor.parse.js
create mode 100644 public/vendor/ueditor/ueditor.parse.min.js
create mode 100644 public/web.config
create mode 100644 resources/js/app.js
create mode 100644 resources/js/bootstrap.js
create mode 100644 resources/lang/ar/admin.php
create mode 100644 resources/lang/az/admin.php
create mode 100644 resources/lang/en/admin.php
create mode 100644 resources/lang/en/auth.php
create mode 100644 resources/lang/en/pagination.php
create mode 100644 resources/lang/en/passwords.php
create mode 100644 resources/lang/en/validation.php
create mode 100644 resources/lang/es/admin.php
create mode 100644 resources/lang/fa/admin.php
create mode 100644 resources/lang/fr/admin.php
create mode 100644 resources/lang/he/admin.php
create mode 100644 resources/lang/id/admin.php
create mode 100644 resources/lang/ja/admin.php
create mode 100644 resources/lang/ko/admin.php
create mode 100644 resources/lang/ms/admin.php
create mode 100644 resources/lang/nl/admin.php
create mode 100644 resources/lang/pl/admin.php
create mode 100644 resources/lang/pt-BR/admin.php
create mode 100644 resources/lang/pt/admin.php
create mode 100644 resources/lang/ru/admin.php
create mode 100644 resources/lang/tr/admin.php
create mode 100644 resources/lang/uk/admin.php
create mode 100644 resources/lang/ur/admin.php
create mode 100644 resources/lang/vendor/ueditor/en/upload.php
create mode 100644 resources/lang/vendor/ueditor/zh-CN/upload.php
create mode 100644 resources/lang/vendor/ueditor/zh-TW/upload.php
create mode 100644 resources/lang/zh-CN/admin.php
create mode 100644 resources/lang/zh-TW/admin.php
create mode 100644 resources/sass/app.scss
create mode 100644 resources/views/article/show.blade.php
create mode 100644 resources/views/category/show.blade.php
create mode 100644 resources/views/index/index.blade.php
create mode 100644 resources/views/layouts/app.blade.php
create mode 100644 resources/views/layouts/pagination.blade.php
create mode 100644 resources/views/vendor/ueditor/assets.blade.php
create mode 100644 resources/views/welcome.blade.php
create mode 100644 routes/api.php
create mode 100644 routes/channels.php
create mode 100644 routes/console.php
create mode 100644 routes/web.php
create mode 100644 tests/CreatesApplication.php
create mode 100644 tests/Feature/ExampleTest.php
create mode 100644 tests/TestCase.php
create mode 100644 tests/Unit/ExampleTest.php
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0f40cee
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/storage
+/vendor
+/.idea
+/test
+.env
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..81f2f62
--- /dev/null
+++ b/README.md
@@ -0,0 +1,78 @@
+

+
+
+
+
+
+
+
+
+## About Laravel
+
+Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
+
+- [Simple, fast routing engine](https://laravel.com/docs/routing).
+- [Powerful dependency injection container](https://laravel.com/docs/container).
+- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
+- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
+- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
+- [Robust background job processing](https://laravel.com/docs/queues).
+- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
+
+Laravel is accessible, powerful, and provides tools required for large, robust applications.
+
+## Learning Laravel
+
+Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
+
+If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
+
+## Laravel Sponsors
+
+We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
+
+- **[Vehikl](https://vehikl.com/)**
+- **[Tighten Co.](https://tighten.co)**
+- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
+- **[64 Robots](https://64robots.com)**
+- **[Cubet Techno Labs](https://cubettech.com)**
+- **[Cyber-Duck](https://cyber-duck.co.uk)**
+- **[British Software Development](https://www.britishsoftware.co)**
+- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
+- **[DevSquad](https://devsquad.com)**
+- [UserInsights](https://userinsights.com)
+- [Fragrantica](https://www.fragrantica.com)
+- [SOFTonSOFA](https://softonsofa.com/)
+- [User10](https://user10.com)
+- [Soumettre.fr](https://soumettre.fr/)
+- [CodeBrisk](https://codebrisk.com)
+- [1Forge](https://1forge.com)
+- [TECPRESSO](https://tecpresso.co.jp/)
+- [Runtime Converter](http://runtimeconverter.com/)
+- [WebL'Agence](https://weblagence.com/)
+- [Invoice Ninja](https://www.invoiceninja.com)
+- [iMi digital](https://www.imi-digital.de/)
+- [Earthlink](https://www.earthlink.ro/)
+- [Steadfast Collective](https://steadfastcollective.com/)
+- [We Are The Robots Inc.](https://watr.mx/)
+- [Understand.io](https://www.understand.io/)
+- [Abdel Elrafa](https://abdelelrafa.com)
+- [Hyper Host](https://hyper.host)
+- [Appoly](https://www.appoly.co.uk)
+- [OP.GG](https://op.gg)
+
+## Contributing
+
+Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
+
+## Code of Conduct
+
+In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
+
+## Security Vulnerabilities
+
+If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
+
+## License
+
+The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
diff --git a/app/Admin/Controllers/Advert/IndexController.php b/app/Admin/Controllers/Advert/IndexController.php
new file mode 100644
index 0000000..4664171
--- /dev/null
+++ b/app/Admin/Controllers/Advert/IndexController.php
@@ -0,0 +1,81 @@
+actions(function ($actions) {
+ $actions->disableView();
+ });
+
+ $grid->filter(function ($filter) {
+ $filter->column(1 / 2, function ($filter) {
+ $filter->like('title', '广告名称');
+ $filter->like('category.id', '分类名称')->select(Category::selectOptions(function ($model) {
+ return $model->where('status', 1)->where('type', Category::TYPE_ADVERT);
+ }, '所有分类'));
+ });
+ $filter->disableIdFilter();
+ });
+
+ $grid->column('id');
+ $grid->column('cover', '图片')->image('', 60, 60);
+ $grid->column('category.title', '分类名称');
+ $grid->column('title', '广告名称');
+ $grid->column('url', '地址');
+ $grid->column('sort', '排序');
+
+ return $grid;
+ }
+
+ /**
+ * Make a form builder.
+ * @return Form
+ */
+ protected function form()
+ {
+ $form = new Form(new Advert);
+
+ $form->text('title', '广告名称')->required();
+ $form->select('category_id', '所属分类')
+ ->options(Category::selectOptions(function ($model) {
+ return $model->where('status', 1)->where('type', Category::TYPE_ADVERT);
+ }, '选择分类'))
+ ->rules('required|min:1', [
+ 'required' => '必须选择所属分类',
+ 'min' => '必须选择所属分类',
+ ]);
+ $form->image('cover', '封面图片')
+ ->rules(function ($form) {
+ if ($form->model()->cover != []) {
+ return 'nullable|image';
+ } else {
+ return 'required';
+ }
+ })
+ ->move('images/' . date('Y/m/d'))
+ ->removable()
+ ->uniqueName();
+ $form->text('url', '链接地址');
+ $form->number('sort', '排序')
+ ->default(1)
+ ->required()
+ ->help('数字越大越靠前');
+
+ return $form;
+ }
+
+}
diff --git a/app/Admin/Controllers/Article/IndexController.php b/app/Admin/Controllers/Article/IndexController.php
new file mode 100644
index 0000000..b301a1c
--- /dev/null
+++ b/app/Admin/Controllers/Article/IndexController.php
@@ -0,0 +1,65 @@
+model()->orderBy('id', 'desc');
+ $grid->filter(function ($filter) {
+ $filter->column(1 / 2, function ($filter) {
+ $filter->like('title', '文章标题');
+ $filter->like('category_id', '所属分类')->select(Category::selectOptions(function ($model) {
+ return $model->where('status', 1)->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]);
+ }, '所有分类'));
+ });
+
+ $filter->disableIdFilter();
+ });
+
+ $grid->column('id', '#ID#');
+ $grid->column('cover', '封面图片')->image('', 100);
+ $grid->column('category.title', '所属分类');
+ $grid->column('title', '文章标题');
+ $grid->column('sort', '序号');
+ $grid->column('created_at', '创建时间');
+
+ return $grid;
+ }
+
+ public function form()
+ {
+ $form = new Form(new Article);
+
+ $form->text('title', '文章标题')->rules('min:2');
+ $form->select('category_id', '所属分类')
+ ->options(Category::selectOptions(function ($model) {
+ return $model->where('status', 1)->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]);
+ }, '选择分类'))
+ ->rules('required|min:1', [
+ 'required' => '必须选择所属分类',
+ 'min' => '必须选择所属分类',
+ ]);
+ $form->textarea('description', '内容简介');
+ $form->image('cover', '封面')
+ ->move('images/' . date('Y/m/d'))
+ ->removable()
+ ->uniqueName();
+ $form->ueditor('content', '文章内容')->rules('required', ['required' => '详情不能为空']);
+ $form->number('sort', '序号')->default(0)->rules('required', ['required' => '序号必须填写'])->help('倒序优先');
+
+ return $form;
+ }
+
+}
diff --git a/app/Admin/Controllers/AuthController.php b/app/Admin/Controllers/AuthController.php
new file mode 100644
index 0000000..3488577
--- /dev/null
+++ b/app/Admin/Controllers/AuthController.php
@@ -0,0 +1,10 @@
+column(6, $this->treeView());
+
+ $row->column(6, function (Column $column) {
+ $form = new WidgetsForm();
+
+ $form->select('parent_id', '上级分类')->options(Category::selectOptions(function ($model) {
+ return $model->where('status', 1);
+ }, '一级分类'));
+ $form->text('title', '分类名称')->rules('required');
+ $form->select('type', '分类类型')
+ ->options(Category::TYPES)
+ ->required();
+ $form->textarea('description', '分类简介')
+ ->rules('nullable');
+ $form->image('cover', 'Logo')
+ ->move('images/' . date('Y/m/d'))
+ ->removable()
+ ->uniqueName();
+ $form->number('order', '排序')->default(0);
+ $form->switch('status', '显示')->states()->default(1);
+ $form->action(admin_url('categories'));
+
+ $column->append((new Box('新增分类', $form))->style('success'));
+ });
+ };
+ }
+
+ /**
+ * @return Tree
+ */
+ protected function treeView()
+ {
+ return Category::tree(function (Tree $tree) {
+ $tree->disableCreate();
+
+ $tree->branch(function ($branch) {
+ if ($branch['status'] == 1) {
+ $payload = " ";
+ } else {
+ $payload = " ";
+ }
+ $payload .= " [ID:{$branch['id']}] - ";
+ $payload .= " {$branch['title']} ";
+ $payload .= " {$branch['type']} ";
+ $payload .= " {$branch['description']}";
+
+ return $payload;
+ });
+ });
+ }
+
+ /**
+ * Make a form builder.
+ * @return Form
+ */
+ protected function form()
+ {
+ $form = new Form(new Category);
+
+ $form->select('parent_id', '上级分类')->options(Category::selectOptions(function ($model) {
+ return $model->where('status', 1);
+ }, '一级分类'));
+ $form->text('title', '分类名称')->rules('required');
+ $form->select('type', '分类类型')
+ ->options(Category::TYPES)
+ ->required()
+ ->rules('required');
+ $form->textarea('description', '分类简介')->rows(4)->rules('nullable');
+ $form->image('cover', 'Logo')
+ ->move('images/' . date('Y/m/d'))
+ ->removable()
+ ->uniqueName();
+ $form->number('order', '排序')->default(0);
+ $form->select('article_id', '关联文章')
+ ->options(function ($option, $info) {
+ $category = $this;
+ if ($category) {
+ return Article::where('category_id', $category->id)->pluck('title', 'id');
+ } else {
+ return [0 => '没有数据'];
+ }
+ })->help('当分类类型是文章详情的时候需要选择关联文章');
+
+ $form->switch('status', '显示')->states()->default(1);
+ $form->saving(function (Form $form) {
+
+ if (request()->has('title')) {
+ if (request()->type == Category::TYPE_SHOW && empty(request()->article_id)) {
+ $error = new MessageBag([
+ 'title' => '错误',
+ 'message' => '文章类型是文章详情的时候需要选择关联文章',
+ ]);
+
+ return back()->withInput()->with(compact('error'));
+ }
+ }
+
+ });
+
+ return $form;
+ }
+
+ public function destroy($id)
+ {
+ return $this->form()->destroy($id);
+ }
+
+}
diff --git a/app/Admin/Controllers/ExampleController.php b/app/Admin/Controllers/ExampleController.php
new file mode 100644
index 0000000..b45a92c
--- /dev/null
+++ b/app/Admin/Controllers/ExampleController.php
@@ -0,0 +1,67 @@
+column('id', __('ID'))->sortable();
+ $grid->column('created_at', __('Created at'));
+ $grid->column('updated_at', __('Updated at'));
+
+ return $grid;
+ }
+
+ /**
+ * Make a show builder.
+ *
+ * @param mixed $id
+ * @return Show
+ */
+ protected function detail($id)
+ {
+ $show = new Show(ExampleModel::findOrFail($id));
+
+ $show->field('id', __('ID'));
+ $show->field('created_at', __('Created at'));
+ $show->field('updated_at', __('Updated at'));
+
+ return $show;
+ }
+
+ /**
+ * Make a form builder.
+ *
+ * @return Form
+ */
+ protected function form()
+ {
+ $form = new Form(new ExampleModel);
+
+ $form->display('id', __('ID'));
+ $form->display('created_at', __('Created At'));
+ $form->display('updated_at', __('Updated At'));
+
+ return $form;
+ }
+}
diff --git a/app/Admin/Controllers/HomeController.php b/app/Admin/Controllers/HomeController.php
new file mode 100644
index 0000000..12b80f3
--- /dev/null
+++ b/app/Admin/Controllers/HomeController.php
@@ -0,0 +1,34 @@
+title('Dashboard')
+ ->description('Description...')
+ ->row(Dashboard::title())
+ ->row(function (Row $row) {
+
+ $row->column(4, function (Column $column) {
+ $column->append(Dashboard::environment());
+ });
+
+ $row->column(4, function (Column $column) {
+ $column->append(Dashboard::extensions());
+ });
+
+ $row->column(4, function (Column $column) {
+ $column->append(Dashboard::dependencies());
+ });
+ });
+ }
+}
diff --git a/app/Admin/Controllers/Link/IndexController.php b/app/Admin/Controllers/Link/IndexController.php
new file mode 100644
index 0000000..91814fe
--- /dev/null
+++ b/app/Admin/Controllers/Link/IndexController.php
@@ -0,0 +1,37 @@
+column('id', '#ID#');
+ $grid->column('title', '标题');
+ $grid->column('url', '地址');
+ $grid->column('created_at', '创建时间');
+
+ return $grid;
+ }
+
+ public function form()
+ {
+ $form = new Form(new Link);
+
+ $form->text('title', '标题')->required();
+ $form->text('url', '地址')->required();
+
+ return $form;
+ }
+
+}
diff --git a/app/Admin/Routes/advert.php b/app/Admin/Routes/advert.php
new file mode 100644
index 0000000..db2a0b4
--- /dev/null
+++ b/app/Admin/Routes/advert.php
@@ -0,0 +1,12 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace') . '\\Advert',
+ 'middleware' => config('admin.route.middleware'),
+], function (Router $router) {
+ $router->resource('adverts', 'IndexController');
+
+});
diff --git a/app/Admin/Routes/article.php b/app/Admin/Routes/article.php
new file mode 100644
index 0000000..7fe5f11
--- /dev/null
+++ b/app/Admin/Routes/article.php
@@ -0,0 +1,12 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace') . '\\Article',
+ 'middleware' => config('admin.route.middleware'),
+], function (Router $router) {
+ $router->resource('articles', 'IndexController');
+
+});
diff --git a/app/Admin/Routes/category.php b/app/Admin/Routes/category.php
new file mode 100644
index 0000000..2f4c852
--- /dev/null
+++ b/app/Admin/Routes/category.php
@@ -0,0 +1,12 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace') . '\\Category',
+ 'middleware' => config('admin.route.middleware'),
+], function (Router $router) {
+ $router->resource('categories', 'IndexController');
+
+});
diff --git a/app/Admin/Routes/link.php b/app/Admin/Routes/link.php
new file mode 100644
index 0000000..001dd73
--- /dev/null
+++ b/app/Admin/Routes/link.php
@@ -0,0 +1,12 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace') . '\\Link',
+ 'middleware' => config('admin.route.middleware'),
+], function (Router $router) {
+ $router->resource('links', 'IndexController');
+
+});
diff --git a/app/Admin/bootstrap.php b/app/Admin/bootstrap.php
new file mode 100644
index 0000000..f3c4742
--- /dev/null
+++ b/app/Admin/bootstrap.php
@@ -0,0 +1,29 @@
+disableEditingCheck();
+ $form->disableCreatingCheck();
+ $form->disableViewCheck();
+ $form->tools(function (Form\Tools $tools) {
+ $tools->disableDelete();
+ $tools->disableView();
+ $tools->disableList();
+ });
+});
+
+Grid::init(function (Grid $grid) {
+ $grid->disableExport();
+ $grid->actions(function (Grid\Displayers\Actions $actions) {
+ $actions->disableView();
+ });
+ $grid->disableBatchActions();
+ $grid->filter(function ($filter) {
+ $filter->disableIdFilter();
+ });
+ // $grid->expandFilter();
+});
diff --git a/app/Admin/routes.php b/app/Admin/routes.php
new file mode 100644
index 0000000..5f8cc68
--- /dev/null
+++ b/app/Admin/routes.php
@@ -0,0 +1,21 @@
+ config('admin.route.prefix'),
+ 'namespace' => config('admin.route.namespace'),
+ 'middleware' => config('admin.route.middleware'),
+ 'as' => config('admin.route.prefix') . '.',
+], function (Router $router) {
+
+ $router->get('/', 'HomeController@index')->name('home');
+
+});
+
+require __DIR__ . '/Routes/article.php';
+require __DIR__ . '/Routes/category.php';
+require __DIR__ . '/Routes/link.php';
+require __DIR__ . '/Routes/advert.php';
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
new file mode 100644
index 0000000..a8c5158
--- /dev/null
+++ b/app/Console/Kernel.php
@@ -0,0 +1,42 @@
+command('inspire')
+ // ->hourly();
+ }
+
+ /**
+ * Register the commands for the application.
+ *
+ * @return void
+ */
+ protected function commands()
+ {
+ $this->load(__DIR__.'/Commands');
+
+ require base_path('routes/console.php');
+ }
+}
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
new file mode 100644
index 0000000..8a912c1
--- /dev/null
+++ b/app/Exceptions/Handler.php
@@ -0,0 +1,57 @@
+category;
+ if ($category->childrens->isEmpty()) {
+ $parent = $category->parent;
+ }
+ $advert = Advert::where('category_id',73)->first();
+
+ return view('article.show', compact('article', 'parent', 'category','advert'));
+
+ }
+
+}
diff --git a/app/Http/Controllers/Auth/ConfirmPasswordController.php b/app/Http/Controllers/Auth/ConfirmPasswordController.php
new file mode 100644
index 0000000..138c1f0
--- /dev/null
+++ b/app/Http/Controllers/Auth/ConfirmPasswordController.php
@@ -0,0 +1,40 @@
+middleware('auth');
+ }
+}
diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php
new file mode 100644
index 0000000..465c39c
--- /dev/null
+++ b/app/Http/Controllers/Auth/ForgotPasswordController.php
@@ -0,0 +1,22 @@
+middleware('guest')->except('logout');
+ }
+}
diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php
new file mode 100644
index 0000000..c6a6de6
--- /dev/null
+++ b/app/Http/Controllers/Auth/RegisterController.php
@@ -0,0 +1,73 @@
+middleware('guest');
+ }
+
+ /**
+ * Get a validator for an incoming registration request.
+ *
+ * @param array $data
+ * @return \Illuminate\Contracts\Validation\Validator
+ */
+ protected function validator(array $data)
+ {
+ return Validator::make($data, [
+ 'name' => ['required', 'string', 'max:255'],
+ 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
+ 'password' => ['required', 'string', 'min:8', 'confirmed'],
+ ]);
+ }
+
+ /**
+ * Create a new user instance after a valid registration.
+ *
+ * @param array $data
+ * @return \App\User
+ */
+ protected function create(array $data)
+ {
+ return User::create([
+ 'name' => $data['name'],
+ 'email' => $data['email'],
+ 'password' => Hash::make($data['password']),
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php
new file mode 100644
index 0000000..b1726a3
--- /dev/null
+++ b/app/Http/Controllers/Auth/ResetPasswordController.php
@@ -0,0 +1,30 @@
+middleware('auth');
+ $this->middleware('signed')->only('verify');
+ $this->middleware('throttle:6,1')->only('verify', 'resend');
+ }
+}
diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php
new file mode 100644
index 0000000..7525eef
--- /dev/null
+++ b/app/Http/Controllers/CategoryController.php
@@ -0,0 +1,33 @@
+type == Category::TYPE_SHOW && $category->article_id) {
+ return redirect("articles/" . $category->article_id);
+ } else {
+ $articles = $category->relations(Category::TYPE_ARTICLE)->paginate();
+ $parent = $category;
+ if ($category->childrens->isEmpty()) {
+ $parent = $category->parent;
+ }
+
+ $advert = Advert::where('category_id',73)->first();
+
+ return view('category.show', compact('articles', 'category', 'parent','advert'));
+ }
+ }
+
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
new file mode 100644
index 0000000..8c8ea3c
--- /dev/null
+++ b/app/Http/Controllers/Controller.php
@@ -0,0 +1,37 @@
+whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW])
+ ->where('top_show', 1)
+ ->orderBy('order', 'desc')
+ ->select('id', 'title')
+ ->get();
+
+ //地步友情链接
+ if (url()->current() == route('index.index')) {
+ $adverts = Advert::where('category_id', 26)->get();
+ View::share('adverts', $adverts);
+
+ }
+ View::share('all_categorys', $categorys);
+ }
+
+}
diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php
new file mode 100644
index 0000000..65db35e
--- /dev/null
+++ b/app/Http/Controllers/IndexController.php
@@ -0,0 +1,40 @@
+getArticle([6], 9); //分院动态
+ $kydt = $this->getArticle([9], 9); //科研动态
+ $ldbz = $this->getArticle([3], 4); //领导班子
+ $kycg = $this->getArticle([10], 8); //科研成果
+ $rctd = $this->getArticle([4], 9); //人才团队介绍
+ $info = Article::where('category_id', 2)->first(); //院所介绍
+ $links = Link::get();
+
+ return view('index.index', compact('links', 'fydt', 'kydt', 'ldbz', 'kycg', 'rctd', 'info'));
+ }
+
+ //通用获取文章
+ public function getArticle($category_ids, $take = 3)
+ {
+ return Article::whereIn('category_id', $category_ids)
+ ->select('id', 'description', 'title', 'created_at', 'cover', 'content')
+ ->latest('sort')
+ ->latest()
+ ->take($take)
+ ->get();
+ }
+
+}
diff --git a/app/Http/Controllers/TestController.php b/app/Http/Controllers/TestController.php
new file mode 100644
index 0000000..1924f34
--- /dev/null
+++ b/app/Http/Controllers/TestController.php
@@ -0,0 +1,197 @@
+get();
+ // $i=1;
+ // foreach ($lists as $info){
+ // $old = DedeArctype::select('id', 'reid as parent_id', 'typename as title', 'content')->find($info->oldid);
+ // $cate = Category::where('oldid',$old->parent_id)->first();
+ // $info->parent_id = $cate->id;
+ // $info->save();
+ // $i++;
+ // }
+
+ // dd($i);
+ // dump(count($lists));
+ // dd();
+ $cateids = Category::where('oldid', '>', 0)->pluck('oldid');
+ $oldids = DedeArctype::where('ishidden', 0)->pluck('id');
+ $diffids = array_diff($oldids->toArray(), $cateids->toArray());
+ dump(count($cateids));
+ dump(count($oldids));
+ dump($diffids);
+
+ foreach ($diffids as $diffid) {
+ $info = DedeArctype::where('id', $diffid)->where('ishidden', 0)->select('id', 'reid as parent_id', 'typename as title', 'content')->first();
+ $data = $this->getData($info);
+ Category::create($data);
+ }
+ }
+
+ public function setCateArticle()
+ {
+ $article = [];
+ $lists = Category::where('content', '<>', '')->where('type', 'article')->get();
+ if ($lists->isEmpty()) {
+ dd('没有数据');
+ }
+ foreach ($lists as $key => $cate) {
+ if ($cate->content != ' ') {
+ $data = [
+ 'oldid' => 0,
+ 'title' => $cate->title,
+ 'category_id' => $cate->id,
+ 'writer' => 'admin',
+ 'source' => '未知',
+ 'keywords' => '',
+ 'status' => 1,
+ 'description' => $cate->description,
+ 'content' => $cate->content,
+ 'created_at' => $cate->created_at,
+ ];
+
+ $info = Article::create($data);
+ $cate->article_id = $info->id;
+ $cate->type = Category::TYPE_SHOW;
+ $cate->save();
+ $article[] = $info->id;
+ }
+
+ }
+ dump(count($article));
+ }
+
+ public function checkArticle()
+ {
+ // $lists = Article::where('category_id', 0)->get();
+ // foreach ($lists as $list) {
+ // $old = DedeArchive::find($list->oldid);
+ // $cate = Category::where('oldid', $old->typeid)->first();
+ // $list->category_id = $cate->id;
+ // $list->save();
+ // }
+ // dd();
+ $articleids = Article::where('oldid', '>', 0)->pluck('oldid');
+ $oldids = DedeArchive::pluck('id');
+ $diffids = array_diff($oldids->toArray(), $articleids->toArray());
+ dump(count($articleids));
+ dump(count($oldids));
+ dump($diffids);
+ die();
+ $map = [
+ 'id' => ['in', $diffids],
+ ];
+ $list = DedeArchive::whereIn('id', $diffids)->get();
+ foreach ($list as $key => $article) {
+ $data = [
+ 'oldid' => $article->id,
+ 'title' => $article->title,
+ 'category_id' => $category->id ?? '0',
+ 'writer' => $article->writer,
+ 'cover' => $article->litpic,
+ 'source' => $article->source,
+ 'keywords' => $article->keywords,
+ 'description' => $article->description,
+ 'status' => 1,
+ 'content' => $article->info->body ?? '',
+ 'created_at' => date('Y-m-d H:i:s', $article->pubdate),
+ ];
+ Article::create($data);
+ }
+ }
+
+ //导入文章
+ public function set_article()
+ {
+ $articles = Article::get();
+ if ($articles->count() > 4) {
+ dd('已经导入过数据');
+ }
+ $categorys = Category::get();
+ $error = $success = [];
+ DedeArchive::whereNotNull('litpic')->chunk(200, function ($articles) use ($categorys) {
+
+ foreach ($articles as $article) {
+
+ $category = $categorys->where('oldid', $article->typeid)->first();
+ $data = [
+ 'oldid' => $article->id,
+ 'title' => $article->title,
+ 'category_id' => $category->id ?? '0',
+ 'writer' => $article->writer,
+ 'source' => $article->source,
+ 'cover' => $article->litpic,
+ 'keywords' => $article->keywords,
+ 'description' => $article->description,
+ 'status' => 1,
+ 'content' => $article->info->body ?? '',
+ 'created_at' => date('Y-m-d H:i:s', $article->pubdate),
+ ];
+
+ $res = Article::create($data);
+ if (!$res) {
+ $error[] = $article->id;
+ } else {
+ $success[] = $article->id;
+ }
+ }
+ });
+
+ dump($error);
+ dump($success);
+ }
+
+ //导入分类
+ public function set_category()
+ {
+ $categorys = Category::get();
+ if ($categorys->count() > 1) {
+ dd('已经导入过数据');
+ }
+ $lists = DedeArctype::where('ishidden', 0)->select('id', 'reid as parent_id', 'typename as title', 'content')->get();
+ $list = Tree::list2tree($lists->toArray(), 'id', 'parent_id', 'children', 0);
+
+ foreach ($list as $key => $value) {
+ $info = Category::create($this->getData($value));
+ if (isset($value['children']) && count($value['children']) > 0) {
+ foreach ($value['children'] as $key => $children) {
+ $info->children()->create($this->getData($children));
+ }
+ }
+ }
+ }
+
+ //格式化分类数据
+ public function getData($category)
+ {
+ $data = [
+ 'oldid' => $category['id'],
+ 'parent_id' => $category['parent_id'],
+ 'title' => $category['title'],
+ 'content' => $category['content'],
+ 'status' => 1,
+ ];
+ return $data;
+ }
+
+}
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
new file mode 100644
index 0000000..deb65e8
--- /dev/null
+++ b/app/Http/Kernel.php
@@ -0,0 +1,82 @@
+ [
+ \App\Http\Middleware\EncryptCookies::class,
+ \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
+ \Illuminate\Session\Middleware\StartSession::class,
+ // \Illuminate\Session\Middleware\AuthenticateSession::class,
+ \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+ \App\Http\Middleware\VerifyCsrfToken::class,
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ ],
+
+ 'api' => [
+ 'throttle:60,1',
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ ],
+ ];
+
+ /**
+ * The application's route middleware.
+ *
+ * These middleware may be assigned to groups or used individually.
+ *
+ * @var array
+ */
+ protected $routeMiddleware = [
+ 'auth' => \App\Http\Middleware\Authenticate::class,
+ 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+ 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
+ 'can' => \Illuminate\Auth\Middleware\Authorize::class,
+ 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+ 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
+ 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
+ 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+ 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
+ ];
+
+ /**
+ * The priority-sorted list of middleware.
+ *
+ * This forces non-global middleware to always be in the given order.
+ *
+ * @var array
+ */
+ protected $middlewarePriority = [
+ \Illuminate\Session\Middleware\StartSession::class,
+ \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+ \App\Http\Middleware\Authenticate::class,
+ \Illuminate\Routing\Middleware\ThrottleRequests::class,
+ \Illuminate\Session\Middleware\AuthenticateSession::class,
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ \Illuminate\Auth\Middleware\Authorize::class,
+ ];
+}
diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php
new file mode 100644
index 0000000..704089a
--- /dev/null
+++ b/app/Http/Middleware/Authenticate.php
@@ -0,0 +1,21 @@
+expectsJson()) {
+ return route('login');
+ }
+ }
+}
diff --git a/app/Http/Middleware/CheckForMaintenanceMode.php b/app/Http/Middleware/CheckForMaintenanceMode.php
new file mode 100644
index 0000000..35b9824
--- /dev/null
+++ b/app/Http/Middleware/CheckForMaintenanceMode.php
@@ -0,0 +1,17 @@
+check()) {
+ return redirect(RouteServiceProvider::HOME);
+ }
+
+ return $next($request);
+ }
+}
diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php
new file mode 100644
index 0000000..5a50e7b
--- /dev/null
+++ b/app/Http/Middleware/TrimStrings.php
@@ -0,0 +1,18 @@
+].*?>/isU", str_ireplace("\\", "", $this->content), $matches);
+
+ if (isset($matches[1])) {
+ return $matches[1];
+ } else {
+ return '';
+ }
+ }
+
+ /**
+ * Notes: 获取一个默认图片
+ * @Author: 玄尘
+ * @Date : 2020/6/3 16:29
+ * @return mixed|string
+ */
+ public function get_one_cover()
+ {
+ if ($this->cover_path) {
+ $path = $this->cover_path;
+ } else {
+ $path = $this->get_content_cover();
+ // if ($path) {
+ // $this->cover = str_replace("/storage", "", $path);
+ // $this->save();
+ // }
+ $path = config('app.url') . $path;
+
+ }
+ return $path;
+
+ }
+
+}
diff --git a/app/Models/Category.php b/app/Models/Category.php
new file mode 100644
index 0000000..3ebf982
--- /dev/null
+++ b/app/Models/Category.php
@@ -0,0 +1,72 @@
+ '文章列表',
+ 'show' => '文章详情',
+ 'advert' => '广告',
+ ];
+
+ public const TYPE_SHOW = 'show';
+ public const TYPE_ARTICLE = 'article';
+ public const TYPE_ADVERT = 'advert';
+
+ /**
+ * 关联的数据
+ * @return [type] [description]
+ */
+ public function relations()
+ {
+ switch ($this->type) {
+ case self::TYPE_SHOW:
+ return $this->belongsTo(Article::class);
+ break;
+ case self::TYPE_ARTICLE:
+ return $this->hasMany(Article::class);
+ break;
+ case self::TYPE_ADVERT:
+ return $this->hasMany(Advert::class);
+ break;
+ default:
+ return null;
+ }
+ }
+
+ public function childrens()
+ {
+ return $this->hasMany(self::class,'parent_id');
+ }
+
+ public function parent()
+ {
+ return $this->hasOne(self::class,'id','parent_id');
+ }
+
+ public function article()
+ {
+ return $this->belongsTo(Article::class);
+ }
+
+ /**
+ * Notes: 获取当前分类及子分类ID
+ * @Author:
+ * @Date : 2020/4/6 3:12 下午
+ * @return array
+ */
+ public function getAllChildrenId()
+ {
+ $ids = array_keys($this->buildSelectOptions([], $this->id));
+ array_unshift($ids, $this->id);
+
+ return $ids;
+ }
+
+}
diff --git a/app/Models/DedeAddonarticle.php b/app/Models/DedeAddonarticle.php
new file mode 100644
index 0000000..07d16f0
--- /dev/null
+++ b/app/Models/DedeAddonarticle.php
@@ -0,0 +1,7 @@
+hasOne(DedeAddonarticle::class, 'aid');
+ }
+}
diff --git a/app/Models/DedeArctype.php b/app/Models/DedeArctype.php
new file mode 100644
index 0000000..01baa1c
--- /dev/null
+++ b/app/Models/DedeArctype.php
@@ -0,0 +1,11 @@
+format($this->dateFormat ?: 'Y-m-d H:i:s');
+ }
+
+}
diff --git a/app/Models/Traits/BelongsToCategory.php b/app/Models/Traits/BelongsToCategory.php
new file mode 100644
index 0000000..0e1e70e
--- /dev/null
+++ b/app/Models/Traits/BelongsToCategory.php
@@ -0,0 +1,21 @@
+belongsTo(Category::class)->withDefault();
+ }
+
+}
diff --git a/app/Models/Traits/HasOneCover.php b/app/Models/Traits/HasOneCover.php
new file mode 100644
index 0000000..e1d1818
--- /dev/null
+++ b/app/Models/Traits/HasOneCover.php
@@ -0,0 +1,24 @@
+cover) {
+ return Storage::url($this->cover);
+ } else {
+ return '';
+ }
+ }
+
+}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
new file mode 100644
index 0000000..5189a0f
--- /dev/null
+++ b/app/Providers/AppServiceProvider.php
@@ -0,0 +1,34 @@
+ 'App\Policies\ModelPolicy',
+ ];
+
+ /**
+ * Register any authentication / authorization services.
+ *
+ * @return void
+ */
+ public function boot()
+ {
+ $this->registerPolicies();
+
+ //
+ }
+}
diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php
new file mode 100644
index 0000000..395c518
--- /dev/null
+++ b/app/Providers/BroadcastServiceProvider.php
@@ -0,0 +1,21 @@
+ [
+ SendEmailVerificationNotification::class,
+ ],
+ ];
+
+ /**
+ * Register any events for your application.
+ *
+ * @return void
+ */
+ public function boot()
+ {
+ parent::boot();
+
+ //
+ }
+}
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
new file mode 100644
index 0000000..527eee3
--- /dev/null
+++ b/app/Providers/RouteServiceProvider.php
@@ -0,0 +1,80 @@
+mapApiRoutes();
+
+ $this->mapWebRoutes();
+
+ //
+ }
+
+ /**
+ * Define the "web" routes for the application.
+ *
+ * These routes all receive session state, CSRF protection, etc.
+ *
+ * @return void
+ */
+ protected function mapWebRoutes()
+ {
+ Route::middleware('web')
+ ->namespace($this->namespace)
+ ->group(base_path('routes/web.php'));
+ }
+
+ /**
+ * Define the "api" routes for the application.
+ *
+ * These routes are typically stateless.
+ *
+ * @return void
+ */
+ protected function mapApiRoutes()
+ {
+ Route::prefix('api')
+ ->middleware('api')
+ ->namespace($this->namespace)
+ ->group(base_path('routes/api.php'));
+ }
+}
diff --git a/app/Traits/Tree.php b/app/Traits/Tree.php
new file mode 100644
index 0000000..163799a
--- /dev/null
+++ b/app/Traits/Tree.php
@@ -0,0 +1,90 @@
+ |
+// +------------------------------------------------+
+namespace App\Traits;
+
+/**
+ * 生成多层树状下拉选框的工具
+ */
+trait Tree
+{
+
+ /**
+ * 用于树型数组完成递归格式的全局变量
+ */
+ private static $formatTree;
+
+ /**
+ * 生成多层树,供下拉选框使用
+ */
+ public static function toFormatTree($list, $title = 'title', $pk = 'id', $pid = 'pid', $root = 0)
+ {
+ $list = self::list2tree($list, $pk, $pid, '_child', $root);
+
+ self::$formatTree = [];
+ self::_toFormatTree($list, 0, $title);
+ return self::$formatTree;
+ }
+
+ /**
+ * 把数据集转换成Tree
+ * @param array $list 要转换的数据集
+ * @param string $pk [description]
+ * @param string $pid [description]
+ * @param string $child [description]
+ * @param integer $root [description]
+ * @return array
+ */
+ public static function list2tree($list, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0)
+ {
+ $tree = [];
+ if (is_array($list)) {
+ $refer = [];
+ foreach ($list as $key => $data) {
+ $refer[$data[$pk]] = &$list[$key];
+ }
+ foreach ($list as $key => $data) {
+ $parentId = $data[$pid];
+ if ($root == $parentId) {
+ $tree[] = &$list[$key];
+ } else {
+ if (isset($refer[$parentId])) {
+ $parent = &$refer[$parentId];
+ $parent[$child][] = &$list[$key];
+ }
+ }
+ }
+ }
+ return $tree;
+ }
+
+ /**
+ * 将格式数组转换为树
+ * @param array $list
+ * @param integer $level 进行递归时传递用的参数
+ * @author 小陈叔叔
+ */
+ private static function _toFormatTree($list, $level = 0, $title = 'title')
+ {
+ foreach ($list as $key => $val) {
+ $tmp_str = str_repeat(" ", $level * 4);
+ $tmp_str .= "└ ";
+ $val['level'] = $level;
+ $val['title_show'] = $level == 0 ? $val[$title] . " " : $tmp_str . $val[$title];
+ if (!array_key_exists('_child', $val)) {
+ array_push(self::$formatTree, $val);
+ } else {
+ $tmp_ary = $val['_child'];
+ unset($val['_child']);
+ array_push(self::$formatTree, $val);
+ self::_toFormatTree($tmp_ary, $level + 1, $title); //进行下一层递归
+ }
+ }
+ return;
+ }
+}
diff --git a/app/User.php b/app/User.php
new file mode 100644
index 0000000..e79dab7
--- /dev/null
+++ b/app/User.php
@@ -0,0 +1,39 @@
+ 'datetime',
+ ];
+}
diff --git a/artisan b/artisan
new file mode 100644
index 0000000..5c23e2e
--- /dev/null
+++ b/artisan
@@ -0,0 +1,53 @@
+#!/usr/bin/env php
+make(Illuminate\Contracts\Console\Kernel::class);
+
+$status = $kernel->handle(
+ $input = new Symfony\Component\Console\Input\ArgvInput,
+ new Symfony\Component\Console\Output\ConsoleOutput
+);
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running, we will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$kernel->terminate($input, $status);
+
+exit($status);
diff --git a/bootstrap/app.php b/bootstrap/app.php
new file mode 100644
index 0000000..037e17d
--- /dev/null
+++ b/bootstrap/app.php
@@ -0,0 +1,55 @@
+singleton(
+ Illuminate\Contracts\Http\Kernel::class,
+ App\Http\Kernel::class
+);
+
+$app->singleton(
+ Illuminate\Contracts\Console\Kernel::class,
+ App\Console\Kernel::class
+);
+
+$app->singleton(
+ Illuminate\Contracts\Debug\ExceptionHandler::class,
+ App\Exceptions\Handler::class
+);
+
+/*
+|--------------------------------------------------------------------------
+| Return The Application
+|--------------------------------------------------------------------------
+|
+| This script returns the application instance. The instance is given to
+| the calling script so we can separate the building of the instances
+| from the actual running of the application and sending responses.
+|
+*/
+
+return $app;
diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/bootstrap/cache/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..50c9653
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,64 @@
+{
+ "name": "laravel/laravel",
+ "type": "project",
+ "description": "The Laravel Framework.",
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
+ "license": "MIT",
+ "require": {
+ "php": "^7.2",
+ "codingyu/ueditor": "^3.0",
+ "encore/laravel-admin": "^1.8",
+ "fideloper/proxy": "^4.0",
+ "laravel-admin-ext/config": "^1.1",
+ "laravel/framework": "^7.0",
+ "laravel/tinker": "^2.0"
+ },
+ "require-dev": {
+ "facade/ignition": "^2.0",
+ "fzaninotto/faker": "^1.9.1",
+ "mockery/mockery": "^1.0",
+ "nunomaduro/collision": "^4.1",
+ "phpunit/phpunit": "^8.5"
+ },
+ "config": {
+ "optimize-autoloader": true,
+ "preferred-install": "dist",
+ "sort-packages": true
+ },
+ "extra": {
+ "laravel": {
+ "dont-discover": []
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/"
+ },
+ "classmap": [
+ "database/seeds",
+ "database/factories"
+ ]
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/"
+ }
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "scripts": {
+ "post-autoload-dump": [
+ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+ "@php artisan package:discover --ansi"
+ ],
+ "post-root-package-install": [
+ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
+ ],
+ "post-create-project-cmd": [
+ "@php artisan key:generate --ansi"
+ ]
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..065207f
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,6627 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "aeacf51f830126e28cd15a04993c81f6",
+ "packages": [
+ {
+ "name": "brick/math",
+ "version": "0.8.15",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/math.git",
+ "reference": "9b08d412b9da9455b210459ff71414de7e6241cd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/brick/math/zipball/9b08d412b9da9455b210459ff71414de7e6241cd",
+ "reference": "9b08d412b9da9455b210459ff71414de7e6241cd",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^7.5.15|^8.5",
+ "vimeo/psalm": "^3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Brick\\Math\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Arbitrary-precision arithmetic library",
+ "keywords": [
+ "Arbitrary-precision",
+ "BigInteger",
+ "BigRational",
+ "arithmetic",
+ "bigdecimal",
+ "bignum",
+ "brick",
+ "math"
+ ],
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/brick/math",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-15T15:59:35+00:00"
+ },
+ {
+ "name": "codingyu/laravel-ueditor",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/codingyu/laravel-ueditor.git",
+ "reference": "aec2ab21426cb7fe580ca6d78ba785c436f27ac5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/codingyu/laravel-ueditor/zipball/aec2ab21426cb7fe580ca6d78ba785c436f27ac5",
+ "reference": "aec2ab21426cb7fe580ca6d78ba785c436f27ac5",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "laravel/framework": "~5.5|~6.0|~7.0"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "^1.10"
+ },
+ "suggest": {
+ "overtrue/laravel-filesystem-qiniu": "如果你想要使用七牛云存储,也许你需要安装它哦~"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Codingyu\\LaravelUEditor\\UEditorServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Codingyu\\LaravelUEditor\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "codingyu",
+ "email": "everceyu@gmail.com"
+ }
+ ],
+ "description": "UEditor integration for Laravel.",
+ "time": "2020-03-05T13:10:58+00:00"
+ },
+ {
+ "name": "codingyu/ueditor",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel-admin-extensions/UEditor.git",
+ "reference": "9ba2d209317b1f396a846a6b202e7a0fdd722c12"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel-admin-extensions/UEditor/zipball/9ba2d209317b1f396a846a6b202e7a0fdd722c12",
+ "reference": "9ba2d209317b1f396a846a6b202e7a0fdd722c12",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "codingyu/laravel-ueditor": "~2.0",
+ "encore/laravel-admin": "~1.6",
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Codingyu\\Ueditor\\UeditorServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Codingyu\\Ueditor\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "codingyu",
+ "email": "everceyu@gmail.com"
+ }
+ ],
+ "description": "UEditor extension for laravel-admin",
+ "homepage": "https://github.com/codingyu/UEditor",
+ "keywords": [
+ "extension",
+ "laravel-admin",
+ "ueditor"
+ ],
+ "time": "2019-10-02T14:48:14+00:00"
+ },
+ {
+ "name": "dnoegel/php-xdg-base-dir",
+ "version": "v0.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "XdgBaseDir\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "implementation of xdg base directory specification for php",
+ "time": "2019-12-04T15:06:13+00:00"
+ },
+ {
+ "name": "doctrine/cache",
+ "version": "1.10.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/cache.git",
+ "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
+ "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "~7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/common": ">2.2,<2.4"
+ },
+ "require-dev": {
+ "alcaeus/mongo-php-adapter": "^1.1",
+ "doctrine/coding-standard": "^6.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.9.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
+ "homepage": "https://www.doctrine-project.org/projects/cache.html",
+ "keywords": [
+ "abstraction",
+ "apcu",
+ "cache",
+ "caching",
+ "couchdb",
+ "memcached",
+ "php",
+ "redis",
+ "xcache"
+ ],
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-27T16:24:54+00:00"
+ },
+ {
+ "name": "doctrine/dbal",
+ "version": "2.10.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/dbal.git",
+ "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/aab745e7b6b2de3b47019da81e7225e14dcfdac8",
+ "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/cache": "^1.0",
+ "doctrine/event-manager": "^1.0",
+ "ext-pdo": "*",
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "jetbrains/phpstorm-stubs": "^2019.1",
+ "nikic/php-parser": "^4.4",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^8.4.1",
+ "symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
+ "vimeo/psalm": "^3.11"
+ },
+ "suggest": {
+ "symfony/console": "For helpful console commands such as SQL execution and import of files."
+ },
+ "bin": [
+ "bin/doctrine-dbal"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.10.x-dev",
+ "dev-develop": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ }
+ ],
+ "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",
+ "db2",
+ "dbal",
+ "mariadb",
+ "mssql",
+ "mysql",
+ "oci8",
+ "oracle",
+ "pdo",
+ "pgsql",
+ "postgresql",
+ "queryobject",
+ "sasql",
+ "sql",
+ "sqlanywhere",
+ "sqlite",
+ "sqlserver",
+ "sqlsrv"
+ ],
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-20T17:19:26+00:00"
+ },
+ {
+ "name": "doctrine/event-manager",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/event-manager.git",
+ "reference": "629572819973f13486371cb611386eb17851e85c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c",
+ "reference": "629572819973f13486371cb611386eb17851e85c",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "conflict": {
+ "doctrine/common": "<2.9@dev"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.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": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
+ "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
+ "keywords": [
+ "event",
+ "event dispatcher",
+ "event manager",
+ "event system",
+ "events"
+ ],
+ "time": "2019-11-10T09:48:07+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "3fc171224a316569faad2df6b18a1fd8cce5a56d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/3fc171224a316569faad2df6b18a1fd8cce5a56d",
+ "reference": "3fc171224a316569faad2df6b18a1fd8cce5a56d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^7.0",
+ "phpstan/phpstan": "^0.11",
+ "phpstan/phpstan-phpunit": "^0.11",
+ "phpstan/phpstan-strict-rules": "^0.11",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-25T20:08:47+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
+ "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "phpstan/phpstan": "^0.11.8",
+ "phpunit/phpunit": "^8.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-25T17:44:05+00:00"
+ },
+ {
+ "name": "dragonmantank/cron-expression",
+ "version": "v2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dragonmantank/cron-expression.git",
+ "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/72b6fbf76adb3cf5bc0db68559b33d41219aba27",
+ "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.4|^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Chris Tankersley",
+ "email": "chris@ctankersley.com",
+ "homepage": "https://github.com/dragonmantank"
+ }
+ ],
+ "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
+ "keywords": [
+ "cron",
+ "schedule"
+ ],
+ "time": "2019-03-31T00:38:28+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "2.1.17",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "ade6887fd9bd74177769645ab5c474824f8a418a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a",
+ "reference": "ade6887fd9bd74177769645ab5c474824f8a418a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/lexer": "^1.0.1",
+ "php": ">=5.5",
+ "symfony/polyfill-intl-idn": "^1.10"
+ },
+ "require-dev": {
+ "dominicsayers/isemail": "^3.0.7",
+ "phpunit/phpunit": "^4.8.36|^7.5.15",
+ "satooshi/php-coveralls": "^1.0.1"
+ },
+ "suggest": {
+ "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Egulias\\EmailValidator\\": "EmailValidator"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eduardo Gulias Davis"
+ }
+ ],
+ "description": "A library for validating emails against several RFCs",
+ "homepage": "https://github.com/egulias/EmailValidator",
+ "keywords": [
+ "email",
+ "emailvalidation",
+ "emailvalidator",
+ "validation",
+ "validator"
+ ],
+ "time": "2020-02-13T22:36:52+00:00"
+ },
+ {
+ "name": "encore/laravel-admin",
+ "version": "v1.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/z-song/laravel-admin.git",
+ "reference": "86e937333c1a593c5384d31836534e79a499edc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/z-song/laravel-admin/zipball/86e937333c1a593c5384d31836534e79a499edc4",
+ "reference": "86e937333c1a593c5384d31836534e79a499edc4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/dbal": "2.*",
+ "laravel/framework": ">=5.5",
+ "php": ">=7.0.0",
+ "symfony/dom-crawler": "~3.1|~4.0|~5.0"
+ },
+ "require-dev": {
+ "fzaninotto/faker": "~1.4",
+ "intervention/image": "~2.3",
+ "laravel/browser-kit-testing": "^6.0",
+ "laravel/laravel": ">=5.5"
+ },
+ "suggest": {
+ "intervention/image": "Required to handling and manipulation upload images (~2.3).",
+ "spatie/eloquent-sortable": "Required to built orderable gird."
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Encore\\Admin\\AdminServiceProvider"
+ ],
+ "aliases": {
+ "Admin": "Encore\\Admin\\Facades\\Admin"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Encore\\Admin\\": "src/"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "zsong",
+ "email": "zosong@126.com"
+ }
+ ],
+ "description": "laravel admin",
+ "homepage": "https://github.com/z-song/laravel-admin",
+ "keywords": [
+ "admin",
+ "form",
+ "grid",
+ "laravel"
+ ],
+ "time": "2020-05-28T02:24:56+00:00"
+ },
+ {
+ "name": "fideloper/proxy",
+ "version": "4.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fideloper/TrustedProxy.git",
+ "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a",
+ "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "illuminate/http": "^5.0|^6.0|^7.0|^8.0",
+ "mockery/mockery": "^1.0",
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Fideloper\\Proxy\\TrustedProxyServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Fideloper\\Proxy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Fidao",
+ "email": "fideloper@gmail.com"
+ }
+ ],
+ "description": "Set trusted proxies for Laravel",
+ "keywords": [
+ "load balancing",
+ "proxy",
+ "trusted proxy"
+ ],
+ "time": "2020-02-22T01:51:47+00:00"
+ },
+ {
+ "name": "laravel-admin-ext/config",
+ "version": "v1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel-admin-extensions/config.git",
+ "reference": "5fe99f56758adfd8436ac5d02e83e72a6388dfc2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel-admin-extensions/config/zipball/5fe99f56758adfd8436ac5d02e83e72a6388dfc2",
+ "reference": "5fe99f56758adfd8436ac5d02e83e72a6388dfc2",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "encore/laravel-admin": ">=1.6",
+ "laravel/framework": ">=5.5",
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "laravel/laravel": "~5.5",
+ "phpunit/phpunit": "~6.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Encore\\Admin\\Config\\ConfigServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Encore\\Admin\\Config\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "z-song",
+ "email": "zosong@126.com"
+ }
+ ],
+ "description": "Config extension for laravel-admin",
+ "homepage": "https://github.com/laravel-admin-extensions/config",
+ "keywords": [
+ "laravel-admin",
+ "setting"
+ ],
+ "time": "2019-12-11T02:31:22+00:00"
+ },
+ {
+ "name": "laravel/framework",
+ "version": "v7.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/framework.git",
+ "reference": "6fa69bfbd57744a5bbec5538ce483919b3fd625f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/6fa69bfbd57744a5bbec5538ce483919b3fd625f",
+ "reference": "6fa69bfbd57744a5bbec5538ce483919b3fd625f",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/inflector": "^1.4|^2.0",
+ "dragonmantank/cron-expression": "^2.0",
+ "egulias/email-validator": "^2.1.10",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-openssl": "*",
+ "league/commonmark": "^1.3",
+ "league/flysystem": "^1.0.8",
+ "monolog/monolog": "^2.0",
+ "nesbot/carbon": "^2.17",
+ "opis/closure": "^3.1",
+ "php": "^7.2.5",
+ "psr/container": "^1.0",
+ "psr/simple-cache": "^1.0",
+ "ramsey/uuid": "^3.7|^4.0",
+ "swiftmailer/swiftmailer": "^6.0",
+ "symfony/console": "^5.0",
+ "symfony/error-handler": "^5.0",
+ "symfony/finder": "^5.0",
+ "symfony/http-foundation": "^5.0",
+ "symfony/http-kernel": "^5.0",
+ "symfony/mime": "^5.0",
+ "symfony/polyfill-php73": "^1.17",
+ "symfony/process": "^5.0",
+ "symfony/routing": "^5.0",
+ "symfony/var-dumper": "^5.0",
+ "tijsverkoyen/css-to-inline-styles": "^2.2.2",
+ "vlucas/phpdotenv": "^4.0",
+ "voku/portable-ascii": "^1.4.8"
+ },
+ "conflict": {
+ "tightenco/collect": "<5.5.33"
+ },
+ "replace": {
+ "illuminate/auth": "self.version",
+ "illuminate/broadcasting": "self.version",
+ "illuminate/bus": "self.version",
+ "illuminate/cache": "self.version",
+ "illuminate/config": "self.version",
+ "illuminate/console": "self.version",
+ "illuminate/container": "self.version",
+ "illuminate/contracts": "self.version",
+ "illuminate/cookie": "self.version",
+ "illuminate/database": "self.version",
+ "illuminate/encryption": "self.version",
+ "illuminate/events": "self.version",
+ "illuminate/filesystem": "self.version",
+ "illuminate/hashing": "self.version",
+ "illuminate/http": "self.version",
+ "illuminate/log": "self.version",
+ "illuminate/mail": "self.version",
+ "illuminate/notifications": "self.version",
+ "illuminate/pagination": "self.version",
+ "illuminate/pipeline": "self.version",
+ "illuminate/queue": "self.version",
+ "illuminate/redis": "self.version",
+ "illuminate/routing": "self.version",
+ "illuminate/session": "self.version",
+ "illuminate/support": "self.version",
+ "illuminate/testing": "self.version",
+ "illuminate/translation": "self.version",
+ "illuminate/validation": "self.version",
+ "illuminate/view": "self.version"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^3.0",
+ "doctrine/dbal": "^2.6",
+ "filp/whoops": "^2.4",
+ "guzzlehttp/guzzle": "^6.3.1|^7.0",
+ "league/flysystem-cached-adapter": "^1.0",
+ "mockery/mockery": "^1.3.1",
+ "moontoast/math": "^1.1",
+ "orchestra/testbench-core": "^5.0",
+ "pda/pheanstalk": "^4.0",
+ "phpunit/phpunit": "^8.4|^9.0",
+ "predis/predis": "^1.1.1",
+ "symfony/cache": "^5.0"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.0).",
+ "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).",
+ "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
+ "ext-memcached": "Required to use the memcache cache driver.",
+ "ext-pcntl": "Required to use all features of the queue worker.",
+ "ext-posix": "Required to use all features of the queue worker.",
+ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
+ "filp/whoops": "Required for friendly error pages in development (^2.4).",
+ "fzaninotto/faker": "Required to use the eloquent factory builder (^1.9.1).",
+ "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.3.1|^7.0).",
+ "laravel/tinker": "Required to use the tinker console command (^2.0).",
+ "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
+ "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).",
+ "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).",
+ "mockery/mockery": "Required to use mocking (^1.3.1).",
+ "moontoast/math": "Required to use ordered UUIDs (^1.1).",
+ "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
+ "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^8.4|^9.0).",
+ "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
+ "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^5.0).",
+ "symfony/filesystem": "Required to create relative storage directory symbolic links (^5.0).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).",
+ "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Support/helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\": "src/Illuminate/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Laravel Framework.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
+ "time": "2020-05-26T14:32:43+00:00"
+ },
+ {
+ "name": "laravel/tinker",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/tinker.git",
+ "reference": "cde90a7335a2130a4488beb68f4b2141869241db"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/cde90a7335a2130a4488beb68f4b2141869241db",
+ "reference": "cde90a7335a2130a4488beb68f4b2141869241db",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "illuminate/console": "^6.0|^7.0|^8.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0",
+ "illuminate/support": "^6.0|^7.0|^8.0",
+ "php": "^7.2",
+ "psy/psysh": "^0.10.3",
+ "symfony/var-dumper": "^4.3|^5.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.3.1",
+ "phpunit/phpunit": "^8.4|^9.0"
+ },
+ "suggest": {
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Tinker\\TinkerServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Tinker\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Powerful REPL for the Laravel framework.",
+ "keywords": [
+ "REPL",
+ "Tinker",
+ "laravel",
+ "psysh"
+ ],
+ "time": "2020-04-07T15:01:31+00:00"
+ },
+ {
+ "name": "league/commonmark",
+ "version": "1.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/commonmark.git",
+ "reference": "412639f7cfbc0b31ad2455b2fe965095f66ae505"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/412639f7cfbc0b31ad2455b2fe965095f66ae505",
+ "reference": "412639f7cfbc0b31ad2455b2fe965095f66ae505",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^7.1"
+ },
+ "conflict": {
+ "scrutinizer/ocular": "1.7.*"
+ },
+ "require-dev": {
+ "cebe/markdown": "~1.0",
+ "commonmark/commonmark.js": "0.29.1",
+ "erusev/parsedown": "~1.0",
+ "ext-json": "*",
+ "github/gfm": "0.29.0",
+ "michelf/php-markdown": "~1.4",
+ "mikehaertl/php-shellcommand": "^1.4",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^7.5",
+ "scrutinizer/ocular": "^1.5",
+ "symfony/finder": "^4.2"
+ },
+ "bin": [
+ "bin/commonmark"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\CommonMark\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)",
+ "homepage": "https://commonmark.thephpleague.com",
+ "keywords": [
+ "commonmark",
+ "flavored",
+ "gfm",
+ "github",
+ "github-flavored",
+ "markdown",
+ "md",
+ "parser"
+ ],
+ "funding": [
+ {
+ "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/colinodell",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-04T22:15:21+00:00"
+ },
+ {
+ "name": "league/flysystem",
+ "version": "1.0.69",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "7106f78428a344bc4f643c233a94e48795f10967"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/7106f78428a344bc4f643c233a94e48795f10967",
+ "reference": "7106f78428a344bc4f643c233a94e48795f10967",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": ">=5.5.9"
+ },
+ "conflict": {
+ "league/flysystem-sftp": "<1.0.6"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^3.4",
+ "phpunit/phpunit": "^5.7.26"
+ },
+ "suggest": {
+ "ext-fileinfo": "Required for MimeType",
+ "ext-ftp": "Allows you to use FTP server storage",
+ "ext-openssl": "Allows you to use FTPS server storage",
+ "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
+ "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
+ "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
+ "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
+ "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
+ "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
+ "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
+ "league/flysystem-webdav": "Allows you to use WebDAV storage",
+ "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
+ "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
+ "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frenky.net"
+ }
+ ],
+ "description": "Filesystem abstraction: Many filesystems, one API.",
+ "keywords": [
+ "Cloud Files",
+ "WebDAV",
+ "abstraction",
+ "aws",
+ "cloud",
+ "copy.com",
+ "dropbox",
+ "file systems",
+ "files",
+ "filesystem",
+ "filesystems",
+ "ftp",
+ "rackspace",
+ "remote",
+ "s3",
+ "sftp",
+ "storage"
+ ],
+ "funding": [
+ {
+ "url": "https://offset.earth/frankdejonge",
+ "type": "other"
+ }
+ ],
+ "time": "2020-05-18T15:13:39+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "38914429aac460e8e4616c8cb486ecb40ec90bb1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/38914429aac460e8e4616c8cb486ecb40ec90bb1",
+ "reference": "38914429aac460e8e4616c8cb486ecb40ec90bb1",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/log": "^1.0.1"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^6.0",
+ "graylog2/gelf-php": "^1.4.2",
+ "php-amqplib/php-amqplib": "~2.4",
+ "php-console/php-console": "^3.1.3",
+ "php-parallel-lint/php-parallel-lint": "^1.0",
+ "phpspec/prophecy": "^1.6.1",
+ "phpunit/phpunit": "^8.5",
+ "predis/predis": "^1.1",
+ "rollbar/rollbar": "^1.3",
+ "ruflin/elastica": ">=0.90 <3.0",
+ "swiftmailer/swiftmailer": "^5.3|^6.0"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "php-console/php-console": "Allow sending log messages to Google Chrome",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "http://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-22T08:12:19+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.35.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "4b9bd835261ef23d36397a46a76b496a458305e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4b9bd835261ef23d36397a46a76b496a458305e5",
+ "reference": "4b9bd835261ef23d36397a46a76b496a458305e5",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.1.8 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/translation": "^3.4 || ^4.0 || ^5.0"
+ },
+ "require-dev": {
+ "doctrine/orm": "^2.7",
+ "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
+ "kylekatarnls/multi-tester": "^1.1",
+ "phpmd/phpmd": "^2.8",
+ "phpstan/phpstan": "^0.11",
+ "phpunit/phpunit": "^7.5 || ^8.0",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "bin": [
+ "bin/carbon"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev",
+ "dev-3.x": "3.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Carbon\\": "src/Carbon/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "http://nesbot.com"
+ },
+ {
+ "name": "kylekatarnls",
+ "homepage": "http://github.com/kylekatarnls"
+ }
+ ],
+ "description": "An API extension for DateTime that supports 281 different languages.",
+ "homepage": "http://carbon.nesbot.com",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "funding": [
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-24T18:27:52+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120",
+ "reference": "bd43ec7152eaaab3bd8c6d0aa95ceeb1df8ee120",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "0.0.5",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "time": "2020-04-10T16:34:50+00:00"
+ },
+ {
+ "name": "opis/closure",
+ "version": "3.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/opis/closure.git",
+ "reference": "cac47092144043d5d676e2e7cf8d0d2f83fc89ca"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/opis/closure/zipball/cac47092144043d5d676e2e7cf8d0d2f83fc89ca",
+ "reference": "cac47092144043d5d676e2e7cf8d0d2f83fc89ca",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.4 || ^7.0"
+ },
+ "require-dev": {
+ "jeremeamia/superclosure": "^2.0",
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Opis\\Closure\\": "src/"
+ },
+ "files": [
+ "functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marius Sarca",
+ "email": "marius.sarca@gmail.com"
+ },
+ {
+ "name": "Sorin Sarca",
+ "email": "sarca_sorin@hotmail.com"
+ }
+ ],
+ "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
+ "homepage": "https://opis.io/closure",
+ "keywords": [
+ "anonymous functions",
+ "closure",
+ "function",
+ "serializable",
+ "serialization",
+ "serialize"
+ ],
+ "time": "2020-05-25T09:32:45+00:00"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.7.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/4acfd6a4b33a509d8c88f50e5222f734b6aeebae",
+ "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.3",
+ "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpOption\\": "src/PhpOption/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "time": "2020-03-21T18:07:53+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "time": "2017-02-14T16:28:37+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "time": "2020-03-23T09:12:05+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "time": "2017-10-23T01:57:42+00:00"
+ },
+ {
+ "name": "psy/psysh",
+ "version": "v0.10.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "a8aec1b2981ab66882a01cce36a49b6317dc3560"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/a8aec1b2981ab66882a01cce36a49b6317dc3560",
+ "reference": "a8aec1b2981ab66882a01cce36a49b6317dc3560",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "dnoegel/php-xdg-base-dir": "0.1.*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "~4.0|~3.0|~2.0|~1.3",
+ "php": "^8.0 || ^7.0 || ^5.5.9",
+ "symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10",
+ "symfony/var-dumper": "~5.0|~4.0|~3.0|~2.7"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2",
+ "hoa/console": "3.17.*"
+ },
+ "suggest": {
+ "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
+ "ext-pdo-sqlite": "The doc command requires SQLite to work.",
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
+ "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
+ "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
+ },
+ "bin": [
+ "bin/psysh"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.10.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Psy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Justin Hileman",
+ "email": "justin@justinhileman.info",
+ "homepage": "http://justinhileman.com"
+ }
+ ],
+ "description": "An interactive shell for modern PHP.",
+ "homepage": "http://psysh.org",
+ "keywords": [
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
+ ],
+ "time": "2020-05-03T19:32:03+00:00"
+ },
+ {
+ "name": "ramsey/collection",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/collection.git",
+ "reference": "925ad8cf55ba7a3fc92e332c58fd0478ace3e1ca"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/925ad8cf55ba7a3fc92e332c58fd0478ace3e1ca",
+ "reference": "925ad8cf55ba7a3fc92e332c58fd0478ace3e1ca",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
+ "fzaninotto/faker": "^1.5",
+ "jakub-onderka/php-parallel-lint": "^1",
+ "jangregor/phpstan-prophecy": "^0.6",
+ "mockery/mockery": "^1.3",
+ "phpstan/extension-installer": "^1",
+ "phpstan/phpdoc-parser": "0.4.1",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-mockery": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^8.5",
+ "slevomat/coding-standard": "^6.0",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Collection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ben Ramsey",
+ "email": "ben@benramsey.com",
+ "homepage": "https://benramsey.com"
+ }
+ ],
+ "description": "A PHP 7.2+ library for representing and manipulating collections.",
+ "homepage": "https://github.com/ramsey/collection",
+ "keywords": [
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
+ ],
+ "time": "2020-01-05T00:22:59+00:00"
+ },
+ {
+ "name": "ramsey/uuid",
+ "version": "4.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/uuid.git",
+ "reference": "ba8fff1d3abb8bb4d35a135ed22a31c6ef3ede3d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/ba8fff1d3abb8bb4d35a135ed22a31c6ef3ede3d",
+ "reference": "ba8fff1d3abb8bb4d35a135ed22a31c6ef3ede3d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "brick/math": "^0.8",
+ "ext-json": "*",
+ "php": "^7.2 || ^8",
+ "ramsey/collection": "^1.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "replace": {
+ "rhumsaa/uuid": "self.version"
+ },
+ "require-dev": {
+ "codeception/aspect-mock": "^3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2",
+ "doctrine/annotations": "^1.8",
+ "goaop/framework": "^2",
+ "mockery/mockery": "^1.3",
+ "moontoast/math": "^1.1",
+ "paragonie/random-lib": "^2",
+ "php-mock/php-mock-mockery": "^1.3",
+ "php-mock/php-mock-phpunit": "^2.5",
+ "php-parallel-lint/php-parallel-lint": "^1.1",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpdoc-parser": "0.4.3",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-mockery": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^8.5",
+ "psy/psysh": "^0.10.0",
+ "slevomat/coding-standard": "^6.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "3.9.4"
+ },
+ "suggest": {
+ "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-ctype": "Enables faster processing of character classification using ctype functions.",
+ "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
+ "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
+ "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
+ "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Uuid\\": "src/"
+ },
+ "files": [
+ "src/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
+ "homepage": "https://github.com/ramsey/uuid",
+ "keywords": [
+ "guid",
+ "identifier",
+ "uuid"
+ ],
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ }
+ ],
+ "time": "2020-03-29T20:13:32+00:00"
+ },
+ {
+ "name": "swiftmailer/swiftmailer",
+ "version": "v6.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/swiftmailer/swiftmailer.git",
+ "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
+ "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "egulias/email-validator": "~2.0",
+ "php": ">=7.0.0",
+ "symfony/polyfill-iconv": "^1.0",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~0.9.1",
+ "symfony/phpunit-bridge": "^3.4.19|^4.1.8"
+ },
+ "suggest": {
+ "ext-intl": "Needed to support internationalized email addresses",
+ "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "6.2-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/swift_required.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Corbyn"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Swiftmailer, free feature-rich PHP mailer",
+ "homepage": "https://swiftmailer.symfony.com",
+ "keywords": [
+ "email",
+ "mail",
+ "mailer"
+ ],
+ "time": "2019-11-12T09:31:26+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/5fa1caadc8cdaa17bcfb25219f3b53fe294a9935",
+ "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.8",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^4.4|^5.0",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Console Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-30T11:42:42+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "5f8d5271303dad260692ba73dfa21777d38e124e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/5f8d5271303dad260692ba73dfa21777d38e124e",
+ "reference": "5f8d5271303dad260692ba73dfa21777d38e124e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony CssSelector Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-27T16:56:45+00:00"
+ },
+ {
+ "name": "symfony/dom-crawler",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "892311d23066844a267ac1a903d8a9d79968a1a7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/892311d23066844a267ac1a903d8a9d79968a1a7",
+ "reference": "892311d23066844a267ac1a903d8a9d79968a1a7",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "masterminds/html5": "<2.6"
+ },
+ "require-dev": {
+ "masterminds/html5": "^2.6",
+ "symfony/css-selector": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/css-selector": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DomCrawler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony DomCrawler Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-30T11:42:42+00:00"
+ },
+ {
+ "name": "symfony/error-handler",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "949ffc17c3ac3a9f8e6232220e2da33913c04ea4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/949ffc17c3ac3a9f8e6232220e2da33913c04ea4",
+ "reference": "949ffc17c3ac3a9f8e6232220e2da33913c04ea4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "psr/log": "^1.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "require-dev": {
+ "symfony/http-kernel": "^4.4|^5.0",
+ "symfony/serializer": "^4.4|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ErrorHandler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony ErrorHandler Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-30T14:14:32+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "24f40d95385774ed5c71dbf014edd047e2f2f3dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/24f40d95385774ed5c71dbf014edd047e2f2f3dc",
+ "reference": "24f40d95385774ed5c71dbf014edd047e2f2f3dc",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/event-dispatcher-contracts": "^2"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/stopwatch": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony EventDispatcher Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-27T16:56:45+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "405952c4e90941a17e52ef7489a2bd94870bb290"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/405952c4e90941a17e52ef7489a2bd94870bb290",
+ "reference": "405952c4e90941a17e52ef7489a2bd94870bb290",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/event-dispatcher": "^1"
+ },
+ "suggest": {
+ "symfony/event-dispatcher-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-20T17:43:50+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/600a52c29afc0d1caa74acbec8d3095ca7e9910d",
+ "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Finder Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-03-27T16:56:45+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "e47fdf8b24edc12022ba52923150ec6484d7f57d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e47fdf8b24edc12022ba52923150ec6484d7f57d",
+ "reference": "e47fdf8b24edc12022ba52923150ec6484d7f57d",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/mime": "^4.4|^5.0",
+ "symfony/polyfill-mbstring": "~1.1"
+ },
+ "require-dev": {
+ "predis/predis": "~1.0",
+ "symfony/expression-language": "^4.4|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony HttpFoundation Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-18T20:50:06+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "3565e51eecd06106304baba5ccb7ba89db2d7d2b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3565e51eecd06106304baba5ccb7ba89db2d7d2b",
+ "reference": "3565e51eecd06106304baba5ccb7ba89db2d7d2b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "psr/log": "~1.0",
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-php73": "^1.9"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<4.4",
+ "symfony/cache": "<5.0",
+ "symfony/config": "<5.0",
+ "symfony/console": "<4.4",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/doctrine-bridge": "<5.0",
+ "symfony/form": "<5.0",
+ "symfony/http-client": "<5.0",
+ "symfony/mailer": "<5.0",
+ "symfony/messenger": "<5.0",
+ "symfony/translation": "<5.0",
+ "symfony/twig-bridge": "<5.0",
+ "symfony/validator": "<5.0",
+ "twig/twig": "<2.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/cache": "~1.0",
+ "symfony/browser-kit": "^4.4|^5.0",
+ "symfony/config": "^5.0",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/css-selector": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/dom-crawler": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/routing": "^4.4|^5.0",
+ "symfony/stopwatch": "^4.4|^5.0",
+ "symfony/translation": "^4.4|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "twig/twig": "^2.4|^3.0"
+ },
+ "suggest": {
+ "symfony/browser-kit": "",
+ "symfony/config": "",
+ "symfony/console": "",
+ "symfony/dependency-injection": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony HttpKernel Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-28T18:53:25+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/5d6c81c39225a750f3f43bee15f03093fb9aaa0b",
+ "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "conflict": {
+ "symfony/mailer": "<4.4"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10",
+ "symfony/dependency-injection": "^4.4|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A library to manipulate MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-17T03:29:44+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9",
+ "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:14:59+00:00"
+ },
+ {
+ "name": "symfony/polyfill-iconv",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-iconv.git",
+ "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c4de7601eefbf25f9d47190abe07f79fe0a27424",
+ "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-iconv": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Iconv\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Iconv extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "iconv",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a",
+ "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/polyfill-mbstring": "^1.3",
+ "symfony/polyfill-php72": "^1.10"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "fa79b11539418b02fc5e1897267673ba2c19419c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c",
+ "reference": "fa79b11539418b02fc5e1897267673ba2c19419c",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php72",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php72.git",
+ "reference": "f048e612a3905f34931127360bdd2def19a5e582"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582",
+ "reference": "f048e612a3905f34931127360bdd2def19a5e582",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php72\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a760d8964ff79ab9bf057613a5808284ec852ccc",
+ "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.17-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-12T16:47:27+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "3179f68dff5bad14d38c4114a1dab98030801fd7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/3179f68dff5bad14d38c4114a1dab98030801fd7",
+ "reference": "3179f68dff5bad14d38c4114a1dab98030801fd7",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Process Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-15T15:59:10+00:00"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "9b18480a6e101f8d9ab7c483ace7c19441be5111"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/9b18480a6e101f8d9ab7c483ace7c19441be5111",
+ "reference": "9b18480a6e101f8d9ab7c483ace7c19441be5111",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5"
+ },
+ "conflict": {
+ "symfony/config": "<5.0",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/yaml": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "~1.2",
+ "psr/log": "~1.0",
+ "symfony/config": "^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/yaml": "^4.4|^5.0"
+ },
+ "suggest": {
+ "doctrine/annotations": "For using the annotation loader",
+ "symfony/config": "For using the all-in-one router or any loader",
+ "symfony/expression-language": "For using expression matching",
+ "symfony/http-foundation": "For using a Symfony Request object",
+ "symfony/yaml": "For using the YAML loader"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Routing Component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-21T21:02:50+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "66a8f0957a3ca54e4f724e49028ab19d75a8918b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/66a8f0957a3ca54e4f724e49028ab19d75a8918b",
+ "reference": "66a8f0957a3ca54e4f724e49028ab19d75a8918b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.0"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-20T17:43:50+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "c3879db7a68fe3e12b41263b05879412c87b27fd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/c3879db7a68fe3e12b41263b05879412c87b27fd",
+ "reference": "c3879db7a68fe3e12b41263b05879412c87b27fd",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^2"
+ },
+ "conflict": {
+ "symfony/config": "<4.4",
+ "symfony/dependency-injection": "<5.0",
+ "symfony/http-kernel": "<5.0",
+ "symfony/twig-bundle": "<5.0",
+ "symfony/yaml": "<4.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "2.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/dependency-injection": "^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/http-kernel": "^5.0",
+ "symfony/intl": "^4.4|^5.0",
+ "symfony/service-contracts": "^1.1.2|^2",
+ "symfony/yaml": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log-implementation": "To use logging capability in translator",
+ "symfony/config": "",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Translation Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-12T16:45:47+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "e5ca07c8f817f865f618aa072c2fe8e0e637340e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e5ca07c8f817f865f618aa072c2fe8e0e637340e",
+ "reference": "e5ca07c8f817f865f618aa072c2fe8e0e637340e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/translation-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-20T17:43:50+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "09de28632f16f81058a85fcf318397218272a07b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/09de28632f16f81058a85fcf318397218272a07b",
+ "reference": "09de28632f16f81058a85fcf318397218272a07b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2.5",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<5.4.3",
+ "symfony/console": "<4.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "twig/twig": "^2.4|^3.0"
+ },
+ "suggest": {
+ "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+ "ext-intl": "To show region name in time zone dump",
+ "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony mechanism for exploring and dumping PHP variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-12T16:45:47+00:00"
+ },
+ {
+ "name": "tijsverkoyen/css-to-inline-styles",
+ "version": "2.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
+ "reference": "dda2ee426acd6d801d5b7fd1001cde9b5f790e15"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/dda2ee426acd6d801d5b7fd1001cde9b5f790e15",
+ "reference": "dda2ee426acd6d801d5b7fd1001cde9b5f790e15",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": "^5.5 || ^7.0",
+ "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "TijsVerkoyen\\CssToInlineStyles\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Tijs Verkoyen",
+ "email": "css_to_inline_styles@verkoyen.eu",
+ "role": "Developer"
+ }
+ ],
+ "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
+ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
+ "time": "2019-10-24T08:53:34+00:00"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v4.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "0b32505d67c1abbfa829283c86bfc0642a661bf6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/0b32505d67c1abbfa829283c86bfc0642a661bf6",
+ "reference": "0b32505d67c1abbfa829283c86bfc0642a661bf6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0",
+ "phpoption/phpoption": "^1.7.2",
+ "symfony/polyfill-ctype": "^1.9"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.3",
+ "ext-filter": "*",
+ "ext-pcre": "*",
+ "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "ext-filter": "Required to use the boolean validator.",
+ "ext-pcre": "Required to use most of the library."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dotenv\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com",
+ "homepage": "https://gjcampbell.co.uk/"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://vancelucas.com/"
+ }
+ ],
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-23T09:43:32+00:00"
+ },
+ {
+ "name": "voku/portable-ascii",
+ "version": "1.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/voku/portable-ascii.git",
+ "reference": "e7f9bd5deff09a57318f9b900ab33a05acfcf4d3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/e7f9bd5deff09a57318f9b900ab33a05acfcf4d3",
+ "reference": "e7f9bd5deff09a57318f9b900ab33a05acfcf4d3",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0 || ~7.0"
+ },
+ "suggest": {
+ "ext-intl": "Use Intl for transliterator_transliterate() support"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "voku\\": "src/voku/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Lars Moelleken",
+ "homepage": "http://www.moelleken.org/"
+ }
+ ],
+ "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+ "homepage": "https://github.com/voku/portable-ascii",
+ "keywords": [
+ "ascii",
+ "clean",
+ "php"
+ ],
+ "funding": [
+ {
+ "url": "https://www.paypal.me/moelleken",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/voku",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/voku",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-26T06:40:44+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "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.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.com/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "time": "2019-10-21T16:45:58+00:00"
+ },
+ {
+ "name": "facade/flare-client-php",
+ "version": "1.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/facade/flare-client-php.git",
+ "reference": "db1e03426e7f9472c9ecd1092aff00f56aa6c004"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/facade/flare-client-php/zipball/db1e03426e7f9472c9ecd1092aff00f56aa6c004",
+ "reference": "db1e03426e7f9472c9ecd1092aff00f56aa6c004",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "facade/ignition-contracts": "~1.0",
+ "illuminate/pipeline": "^5.5|^6.0|^7.0",
+ "php": "^7.1",
+ "symfony/http-foundation": "^3.3|^4.1|^5.0",
+ "symfony/var-dumper": "^3.4|^4.0|^5.0"
+ },
+ "require-dev": {
+ "larapack/dd": "^1.1",
+ "phpunit/phpunit": "^7.5.16",
+ "spatie/phpunit-snapshot-assertions": "^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Facade\\FlareClient\\": "src"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Send PHP errors to Flare",
+ "homepage": "https://github.com/facade/flare-client-php",
+ "keywords": [
+ "exception",
+ "facade",
+ "flare",
+ "reporting"
+ ],
+ "funding": [
+ {
+ "url": "https://www.patreon.com/spatie",
+ "type": "patreon"
+ }
+ ],
+ "time": "2020-03-02T15:52:04+00:00"
+ },
+ {
+ "name": "facade/ignition",
+ "version": "2.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/facade/ignition.git",
+ "reference": "38e1b180544bfefebe37e0f65980792ea78a534a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/facade/ignition/zipball/38e1b180544bfefebe37e0f65980792ea78a534a",
+ "reference": "38e1b180544bfefebe37e0f65980792ea78a534a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "facade/flare-client-php": "^1.0",
+ "facade/ignition-contracts": "^1.0",
+ "filp/whoops": "^2.4",
+ "illuminate/support": "^7.0|^8.0",
+ "monolog/monolog": "^2.0",
+ "php": "^7.2.5",
+ "scrivo/highlight.php": "^9.15",
+ "symfony/console": "^5.0",
+ "symfony/var-dumper": "^5.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.14",
+ "mockery/mockery": "^1.3",
+ "orchestra/testbench": "5.0"
+ },
+ "suggest": {
+ "laravel/telescope": "^3.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Facade\\Ignition\\IgnitionServiceProvider"
+ ],
+ "aliases": {
+ "Flare": "Facade\\Ignition\\Facades\\Flare"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Facade\\Ignition\\": "src"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A beautiful error page for Laravel applications.",
+ "homepage": "https://github.com/facade/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "time": "2020-05-28T22:49:07+00:00"
+ },
+ {
+ "name": "facade/ignition-contracts",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/facade/ignition-contracts.git",
+ "reference": "f445db0fb86f48e205787b2592840dd9c80ded28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/f445db0fb86f48e205787b2592840dd9c80ded28",
+ "reference": "f445db0fb86f48e205787b2592840dd9c80ded28",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Facade\\IgnitionContracts\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://flareapp.io",
+ "role": "Developer"
+ }
+ ],
+ "description": "Solution contracts for Ignition",
+ "homepage": "https://github.com/facade/ignition-contracts",
+ "keywords": [
+ "contracts",
+ "flare",
+ "ignition"
+ ],
+ "time": "2019-08-30T14:06:08+00:00"
+ },
+ {
+ "name": "filp/whoops",
+ "version": "2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/filp/whoops.git",
+ "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/17d0d3f266c8f925ebd035cd36f83cf802b47d4a",
+ "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0",
+ "psr/log": "^1.0.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9 || ^1.0",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0",
+ "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "suggest": {
+ "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
+ "whoops/soap": "Formats errors as SOAP responses"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Whoops\\": "src/Whoops/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Filipe Dobreira",
+ "homepage": "https://github.com/filp",
+ "role": "Developer"
+ }
+ ],
+ "description": "php error handling for cool kids",
+ "homepage": "https://filp.github.io/whoops/",
+ "keywords": [
+ "error",
+ "exception",
+ "handling",
+ "library",
+ "throwable",
+ "whoops"
+ ],
+ "time": "2020-05-05T12:28:07+00:00"
+ },
+ {
+ "name": "fzaninotto/faker",
+ "version": "v1.9.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fzaninotto/Faker.git",
+ "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f",
+ "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0"
+ },
+ "require-dev": {
+ "ext-intl": "*",
+ "phpunit/phpunit": "^4.8.35 || ^5.7",
+ "squizlabs/php_codesniffer": "^2.9.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Faker\\": "src/Faker/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "François Zaninotto"
+ }
+ ],
+ "description": "Faker is a PHP library that generates fake data for you.",
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
+ "time": "2019-12-12T13:22:17+00:00"
+ },
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad",
+ "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.3|^7.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpunit/php-file-iterator": "1.3.3",
+ "phpunit/phpunit": "~4.0",
+ "satooshi/php-coveralls": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "time": "2016-01-20T08:20:44+00:00"
+ },
+ {
+ "name": "mockery/mockery",
+ "version": "1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "6c6a7c533469873deacf998237e7649fc6b36223"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/6c6a7c533469873deacf998237e7649fc6b36223",
+ "reference": "6c6a7c533469873deacf998237e7649fc6b36223",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "hamcrest/hamcrest-php": "~2.0",
+ "lib-pcre": ">=7.0",
+ "php": "^7.3.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.0.0 || ^9.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Mockery": "library/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "http://blog.astrumfutura.com"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "http://davedevelopment.co.uk"
+ }
+ ],
+ "description": "Mockery is a simple yet flexible PHP mock object framework",
+ "homepage": "https://github.com/mockery/mockery",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "library",
+ "mock",
+ "mock objects",
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
+ ],
+ "time": "2020-05-19T14:25:16+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.9.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
+ "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "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": "2020-01-17T21:11:47+00:00"
+ },
+ {
+ "name": "nunomaduro/collision",
+ "version": "v4.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/collision.git",
+ "reference": "d50490417eded97be300a92cd7df7badc37a9018"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/d50490417eded97be300a92cd7df7badc37a9018",
+ "reference": "d50490417eded97be300a92cd7df7badc37a9018",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "facade/ignition-contracts": "^1.0",
+ "filp/whoops": "^2.4",
+ "php": "^7.2.5",
+ "symfony/console": "^5.0"
+ },
+ "require-dev": {
+ "facade/ignition": "^2.0",
+ "fideloper/proxy": "^4.2",
+ "friendsofphp/php-cs-fixer": "^2.16",
+ "fruitcake/laravel-cors": "^1.0",
+ "laravel/framework": "^7.0",
+ "laravel/tinker": "^2.0",
+ "nunomaduro/larastan": "^0.5",
+ "orchestra/testbench": "^5.0",
+ "phpstan/phpstan": "^0.12.3",
+ "phpunit/phpunit": "^8.5.1 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "NunoMaduro\\Collision\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Cli error handling for console/command-line PHP applications.",
+ "keywords": [
+ "artisan",
+ "cli",
+ "command-line",
+ "console",
+ "error",
+ "handling",
+ "laravel",
+ "laravel-zero",
+ "php",
+ "symfony"
+ ],
+ "funding": [
+ {
+ "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2020-04-04T19:56:08+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "phar-io/version": "^2.0",
+ "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": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "time": "2018-07-08T19:23:20+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.6 || ^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"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "time": "2018-07-08T19:19:57+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b",
+ "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "time": "2020-04-27T09:25:28+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e",
+ "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-filter": "^7.1",
+ "php": "^7.2",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpdocumentor/type-resolver": "^1.0",
+ "webmozart/assert": "^1"
+ },
+ "require-dev": {
+ "doctrine/instantiator": "^1",
+ "mockery/mockery": "^1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "time": "2020-02-22T12:28:44+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "7462d5f123dfc080dfdf26897032a6513644fc95"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95",
+ "reference": "7462d5f123dfc080dfdf26897032a6513644fc95",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2",
+ "phpdocumentor/reflection-common": "^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "^7.2",
+ "mockery/mockery": "~1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "time": "2020-02-18T18:59:58+00:00"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "v1.10.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "451c3cd1418cf640de218914901e51b064abb093"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
+ "reference": "451c3cd1418cf640de218914901e51b064abb093",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": "^5.3|^7.0",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
+ "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^2.5 || ^3.2",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Prophecy\\": "src/Prophecy"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "time": "2020-03-05T15:02:03+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "7.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf",
+ "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2",
+ "phpunit/php-file-iterator": "^2.0.2",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-token-stream": "^3.1.1",
+ "sebastian/code-unit-reverse-lookup": "^1.0.1",
+ "sebastian/environment": "^4.2.2",
+ "sebastian/version": "^2.0.1",
+ "theseer/tokenizer": "^1.1.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.2.2"
+ },
+ "suggest": {
+ "ext-xdebug": "^2.7.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "time": "2019-11-20T13:55:58+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "050bedf145a257b1ff02746c31894800e5122946"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
+ "reference": "050bedf145a257b1ff02746c31894800e5122946",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "time": "2018-09-13T20:33:42+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "time": "2015-06-21T13:50:34+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "1038454804406b0b5f5f520358e78c1c2f71501e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e",
+ "reference": "1038454804406b0b5f5f520358e78c1c2f71501e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "time": "2019-06-07T04:22:29+00:00"
+ },
+ {
+ "name": "phpunit/php-token-stream",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+ "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff",
+ "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Wrapper around PHP's tokenizer extension.",
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "keywords": [
+ "tokenizer"
+ ],
+ "time": "2019-09-17T06:23:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "8.5.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "63dda3b212a0025d380a745f91bdb4d8c985adb7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/63dda3b212a0025d380a745f91bdb4d8c985adb7",
+ "reference": "63dda3b212a0025d380a745f91bdb4d8c985adb7",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "doctrine/instantiator": "^1.2.0",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.9.1",
+ "phar-io/manifest": "^1.0.3",
+ "phar-io/version": "^2.0.1",
+ "php": "^7.2",
+ "phpspec/prophecy": "^1.8.1",
+ "phpunit/php-code-coverage": "^7.0.7",
+ "phpunit/php-file-iterator": "^2.0.2",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-timer": "^2.1.2",
+ "sebastian/comparator": "^3.0.2",
+ "sebastian/diff": "^3.0.2",
+ "sebastian/environment": "^4.2.2",
+ "sebastian/exporter": "^3.1.1",
+ "sebastian/global-state": "^3.0.0",
+ "sebastian/object-enumerator": "^3.0.3",
+ "sebastian/resource-operations": "^2.0.1",
+ "sebastian/type": "^1.1.3",
+ "sebastian/version": "^2.0.1"
+ },
+ "require-dev": {
+ "ext-pdo": "*"
+ },
+ "suggest": {
+ "ext-soap": "*",
+ "ext-xdebug": "*",
+ "phpunit/php-invoker": "^2.0.0"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "8.5-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "funding": [
+ {
+ "url": "https://phpunit.de/donate.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-05-22T13:51:52+00:00"
+ },
+ {
+ "name": "scrivo/highlight.php",
+ "version": "v9.18.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/scrivo/highlight.php.git",
+ "reference": "52fc21c99fd888e33aed4879e55a3646f8d40558"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/52fc21c99fd888e33aed4879e55a3646f8d40558",
+ "reference": "52fc21c99fd888e33aed4879e55a3646f8d40558",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": ">=5.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8|^5.7",
+ "sabberworm/php-css-parser": "^8.3",
+ "symfony/finder": "^2.8|^3.4",
+ "symfony/var-dumper": "^2.8|^3.4"
+ },
+ "suggest": {
+ "ext-dom": "Needed to make use of the features in the utilities namespace"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "Highlight\\": "",
+ "HighlightUtilities\\": ""
+ },
+ "files": [
+ "HighlightUtilities/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Geert Bergman",
+ "homepage": "http://www.scrivo.org/",
+ "role": "Project Author"
+ },
+ {
+ "name": "Vladimir Jimenez",
+ "homepage": "https://allejo.io",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Martin Folkers",
+ "homepage": "https://twobrain.io",
+ "role": "Contributor"
+ }
+ ],
+ "description": "Server side syntax highlighter that supports 185 languages. It's a PHP port of highlight.js",
+ "keywords": [
+ "code",
+ "highlight",
+ "highlight.js",
+ "highlight.php",
+ "syntax"
+ ],
+ "funding": [
+ {
+ "url": "https://github.com/allejo",
+ "type": "github"
+ }
+ ],
+ "time": "2020-03-02T05:59:21+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7 || ^6.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": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "time": "2017-03-04T06:30:41+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1",
+ "sebastian/diff": "^3.0",
+ "sebastian/exporter": "^3.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "time": "2018-07-12T15:12:46+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
+ "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5 || ^8.0",
+ "symfony/process": "^2 || ^3.3 || ^4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "time": "2019-02-04T06:01:07+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "4.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
+ "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "time": "2019-11-20T08:46:58+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "3.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e",
+ "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "time": "2019-09-14T09:02:43+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4",
+ "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2",
+ "sebastian/object-reflector": "^1.1.1",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^8.0"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "time": "2019-02-01T05:30:01+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/object-reflector": "^1.1.1",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "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": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "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": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "time": "2017-03-03T06:23:57+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
+ "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "time": "2018-10-04T04:07:39+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3",
+ "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.2"
+ },
+ "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",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "time": "2019-07-02T08:10:15+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "time": "2016-10-03T07:35:21+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
+ "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "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": "2019-06-13T22:48:21+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozart/assert.git",
+ "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
+ "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "vimeo/psalm": "<3.9.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.36 || ^7.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "time": "2020-04-18T12:12:48+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": [],
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^7.2"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "1.1.0"
+}
diff --git a/config/admin.php b/config/admin.php
new file mode 100644
index 0000000..6b215a5
--- /dev/null
+++ b/config/admin.php
@@ -0,0 +1,409 @@
+ '大庆分院',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin logo
+ |--------------------------------------------------------------------------
+ |
+ | The logo of all admin pages. You can also set it as an image by using a
+ | `img` tag, eg '
'.
+ |
+ */
+ 'logo' => '大庆分院',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin mini logo
+ |--------------------------------------------------------------------------
+ |
+ | The logo of all admin pages when the sidebar menu is collapsed. You can
+ | also set it as an image by using a `img` tag, eg
+ | '
'.
+ |
+ */
+ 'logo-mini' => 'dqb',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin bootstrap setting
+ |--------------------------------------------------------------------------
+ |
+ | This value is the path of laravel-admin bootstrap file.
+ |
+ */
+ 'bootstrap' => app_path('Admin/bootstrap.php'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin route settings
+ |--------------------------------------------------------------------------
+ |
+ | The routing configuration of the admin page, including the path prefix,
+ | the controller namespace, and the default middleware. If you want to
+ | access through the root path, just set the prefix to empty string.
+ |
+ */
+ 'route' => [
+
+ 'prefix' => env('ADMIN_ROUTE_PREFIX', 'admin'),
+
+ 'namespace' => 'App\\Admin\\Controllers',
+
+ 'middleware' => ['web', 'admin'],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin install directory
+ |--------------------------------------------------------------------------
+ |
+ | The installation directory of the controller and routing configuration
+ | files of the administration page. The default is `app/Admin`, which must
+ | be set before running `artisan admin::install` to take effect.
+ |
+ */
+ 'directory' => app_path('Admin'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin html title
+ |--------------------------------------------------------------------------
+ |
+ | Html title for all pages.
+ |
+ */
+ 'title' => '管理平台',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Access via `https`
+ |--------------------------------------------------------------------------
+ |
+ | If your page is going to be accessed via https, set it to `true`.
+ |
+ */
+ 'https' => env('ADMIN_HTTPS', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin auth setting
+ |--------------------------------------------------------------------------
+ |
+ | Authentication settings for all admin pages. Include an authentication
+ | guard and a user provider setting of authentication driver.
+ |
+ | You can specify a controller for `login` `logout` and other auth routes.
+ |
+ */
+ 'auth' => [
+
+ 'controller' => App\Admin\Controllers\AuthController::class,
+
+ 'guard' => 'admin',
+
+ 'guards' => [
+ 'admin' => [
+ 'driver' => 'session',
+ 'provider' => 'admin',
+ ],
+ ],
+
+ 'providers' => [
+ 'admin' => [
+ 'driver' => 'eloquent',
+ 'model' => Encore\Admin\Auth\Database\Administrator::class,
+ ],
+ ],
+
+ // Add "remember me" to login form
+ 'remember' => true,
+
+ // Redirect to the specified URI when user is not authorized.
+ 'redirect_to' => 'auth/login',
+
+ // The URIs that should be excluded from authorization.
+ 'excepts' => [
+ 'auth/login',
+ 'auth/logout',
+ '_handle_action_',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin upload setting
+ |--------------------------------------------------------------------------
+ |
+ | File system configuration for form upload files and images, including
+ | disk and upload path.
+ |
+ */
+ 'upload' => [
+
+ // Disk in `config/filesystem.php`.
+ 'disk' => 'admin',
+
+ // Image and file upload path under the disk above.
+ 'directory' => [
+ 'image' => 'images',
+ 'file' => 'files',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Laravel-admin database settings
+ |--------------------------------------------------------------------------
+ |
+ | Here are database settings for laravel-admin builtin model & tables.
+ |
+ */
+ 'database' => [
+
+ // Database connection for following tables.
+ 'connection' => '',
+
+ // User tables and model.
+ 'users_table' => 'admin_users',
+ 'users_model' => Encore\Admin\Auth\Database\Administrator::class,
+
+ // Role table and model.
+ 'roles_table' => 'admin_roles',
+ 'roles_model' => Encore\Admin\Auth\Database\Role::class,
+
+ // Permission table and model.
+ 'permissions_table' => 'admin_permissions',
+ 'permissions_model' => Encore\Admin\Auth\Database\Permission::class,
+
+ // Menu table and model.
+ 'menu_table' => 'admin_menu',
+ 'menu_model' => Encore\Admin\Auth\Database\Menu::class,
+
+ // Pivot table for table above.
+ 'operation_log_table' => 'admin_operation_log',
+ 'user_permissions_table' => 'admin_user_permissions',
+ 'role_users_table' => 'admin_role_users',
+ 'role_permissions_table' => 'admin_role_permissions',
+ 'role_menu_table' => 'admin_role_menu',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | User operation log setting
+ |--------------------------------------------------------------------------
+ |
+ | By setting this option to open or close operation log in laravel-admin.
+ |
+ */
+ 'operation_log' => [
+
+ 'enable' => true,
+
+ /*
+ * Only logging allowed methods in the list
+ */
+ 'allowed_methods' => ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'],
+
+ /*
+ * Routes that will not log to database.
+ *
+ * All method to path like: admin/auth/logs
+ * or specific method to path like: get:admin/auth/logs.
+ */
+ 'except' => [
+ 'admin/auth/logs*',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Indicates whether to check route permission.
+ |--------------------------------------------------------------------------
+ */
+ 'check_route_permission' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Indicates whether to check menu roles.
+ |--------------------------------------------------------------------------
+ */
+ 'check_menu_roles' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | User default avatar
+ |--------------------------------------------------------------------------
+ |
+ | Set a default avatar for newly created users.
+ |
+ */
+ 'default_avatar' => '/vendor/laravel-admin/AdminLTE/dist/img/user2-160x160.jpg',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Admin map field provider
+ |--------------------------------------------------------------------------
+ |
+ | Supported: "tencent", "google", "yandex".
+ |
+ */
+ 'map_provider' => 'google',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Skin
+ |--------------------------------------------------------------------------
+ |
+ | This value is the skin of admin pages.
+ | @see https://adminlte.io/docs/2.4/layout
+ |
+ | Supported:
+ | "skin-blue", "skin-blue-light", "skin-yellow", "skin-yellow-light",
+ | "skin-green", "skin-green-light", "skin-purple", "skin-purple-light",
+ | "skin-red", "skin-red-light", "skin-black", "skin-black-light".
+ |
+ */
+ 'skin' => 'skin-blue-light',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application layout
+ |--------------------------------------------------------------------------
+ |
+ | This value is the layout of admin pages.
+ | @see https://adminlte.io/docs/2.4/layout
+ |
+ | Supported: "fixed", "layout-boxed", "layout-top-nav", "sidebar-collapse",
+ | "sidebar-mini".
+ |
+ */
+ 'layout' => ['fixed', 'sidebar-mini'],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Login page background image
+ |--------------------------------------------------------------------------
+ |
+ | This value is used to set the background image of login page.
+ |
+ */
+ 'login_background_image' => '',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Show version at footer
+ |--------------------------------------------------------------------------
+ |
+ | Whether to display the version number of laravel-admin at the footer of
+ | each page
+ |
+ */
+ 'show_version' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Show environment at footer
+ |--------------------------------------------------------------------------
+ |
+ | Whether to display the environment at the footer of each page
+ |
+ */
+ 'show_environment' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Menu bind to permission
+ |--------------------------------------------------------------------------
+ |
+ | whether enable menu bind to a permission
+ */
+ 'menu_bind_permission' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable default breadcrumb
+ |--------------------------------------------------------------------------
+ |
+ | Whether enable default breadcrumb for every page content.
+ */
+ 'enable_default_breadcrumb' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable/Disable assets minify
+ |--------------------------------------------------------------------------
+ */
+ 'minify_assets' => [
+
+ // Assets will not be minified.
+ 'excepts' => [
+
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Enable/Disable sidebar menu search
+ |--------------------------------------------------------------------------
+ */
+ 'enable_menu_search' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Alert message that will displayed on top of the page.
+ |--------------------------------------------------------------------------
+ */
+ 'top_alert' => '',
+
+ /*
+ |--------------------------------------------------------------------------
+ | The global Grid action display class.
+ |--------------------------------------------------------------------------
+ */
+ 'grid_action_class' => \Encore\Admin\Grid\Displayers\DropdownActions::class,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Extension Directory
+ |--------------------------------------------------------------------------
+ |
+ | When you use command `php artisan admin:extend` to generate extensions,
+ | the extension files will be generated in this directory.
+ */
+ 'extension_dir' => app_path('Admin/Extensions'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Settings for extensions.
+ |--------------------------------------------------------------------------
+ |
+ | You can find all available extensions here
+ | https://github.com/laravel-admin-extensions.
+ |
+ */
+ 'extensions' => [
+ 'ueditor' => [
+ // 如果要关掉这个扩展,设置为false
+ 'enable' => true,
+ // 编辑器的前端配置 参考:http://fex.baidu.com/ueditor/#start-config
+ 'config' => [
+ 'initialFrameHeight' => 400, // 例如初始化高度
+ ],
+ 'field_type' => 'ueditor',
+ ],
+ ],
+];
diff --git a/config/app.php b/config/app.php
new file mode 100644
index 0000000..3fe2039
--- /dev/null
+++ b/config/app.php
@@ -0,0 +1,231 @@
+ env('APP_NAME', 'Laravel'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Environment
+ |--------------------------------------------------------------------------
+ |
+ | This value determines the "environment" your application is currently
+ | running in. This may determine how you prefer to configure various
+ | services the application utilizes. Set this in your ".env" file.
+ |
+ */
+
+ 'env' => env('APP_ENV', 'production'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Debug Mode
+ |--------------------------------------------------------------------------
+ |
+ | When your application is in debug mode, detailed error messages with
+ | stack traces will be shown on every error that occurs within your
+ | application. If disabled, a simple generic error page is shown.
+ |
+ */
+
+ 'debug' => (bool) env('APP_DEBUG', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application URL
+ |--------------------------------------------------------------------------
+ |
+ | This URL is used by the console to properly generate URLs when using
+ | the Artisan command line tool. You should set this to the root of
+ | your application so that it is used when running Artisan tasks.
+ |
+ */
+
+ 'url' => env('APP_URL', 'http://localhost'),
+
+ 'asset_url' => env('ASSET_URL', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Timezone
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the default timezone for your application, which
+ | will be used by the PHP date and date-time functions. We have gone
+ | ahead and set this to a sensible default for you out of the box.
+ |
+ */
+
+ 'timezone' => 'PRC',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Locale Configuration
+ |--------------------------------------------------------------------------
+ |
+ | The application locale determines the default locale that will be used
+ | by the translation service provider. You are free to set this value
+ | to any of the locales which will be supported by the application.
+ |
+ */
+
+ 'locale' => 'zh-CN',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Fallback Locale
+ |--------------------------------------------------------------------------
+ |
+ | The fallback locale determines the locale to use when the current one
+ | is not available. You may change the value to correspond to any of
+ | the language folders that are provided through your application.
+ |
+ */
+
+ 'fallback_locale' => 'en',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Faker Locale
+ |--------------------------------------------------------------------------
+ |
+ | This locale will be used by the Faker PHP library when generating fake
+ | data for your database seeds. For example, this will be used to get
+ | localized telephone numbers, street address information and more.
+ |
+ */
+
+ 'faker_locale' => 'en_US',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Encryption Key
+ |--------------------------------------------------------------------------
+ |
+ | This key is used by the Illuminate encrypter service and should be set
+ | to a random, 32 character string, otherwise these encrypted strings
+ | will not be safe. Please do this before deploying an application!
+ |
+ */
+
+ 'key' => env('APP_KEY'),
+
+ 'cipher' => 'AES-256-CBC',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Autoloaded Service Providers
+ |--------------------------------------------------------------------------
+ |
+ | The service providers listed here will be automatically loaded on the
+ | request to your application. Feel free to add your own services to
+ | this array to grant expanded functionality to your applications.
+ |
+ */
+
+ 'providers' => [
+
+ /*
+ * Laravel Framework Service Providers...
+ */
+ Illuminate\Auth\AuthServiceProvider::class,
+ Illuminate\Broadcasting\BroadcastServiceProvider::class,
+ Illuminate\Bus\BusServiceProvider::class,
+ Illuminate\Cache\CacheServiceProvider::class,
+ Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
+ Illuminate\Cookie\CookieServiceProvider::class,
+ Illuminate\Database\DatabaseServiceProvider::class,
+ Illuminate\Encryption\EncryptionServiceProvider::class,
+ Illuminate\Filesystem\FilesystemServiceProvider::class,
+ Illuminate\Foundation\Providers\FoundationServiceProvider::class,
+ Illuminate\Hashing\HashServiceProvider::class,
+ Illuminate\Mail\MailServiceProvider::class,
+ Illuminate\Notifications\NotificationServiceProvider::class,
+ Illuminate\Pagination\PaginationServiceProvider::class,
+ Illuminate\Pipeline\PipelineServiceProvider::class,
+ Illuminate\Queue\QueueServiceProvider::class,
+ Illuminate\Redis\RedisServiceProvider::class,
+ Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
+ Illuminate\Session\SessionServiceProvider::class,
+ Illuminate\Translation\TranslationServiceProvider::class,
+ Illuminate\Validation\ValidationServiceProvider::class,
+ Illuminate\View\ViewServiceProvider::class,
+
+ /*
+ * Package Service Providers...
+ */
+
+ /*
+ * Application Service Providers...
+ */
+ App\Providers\AppServiceProvider::class,
+ App\Providers\AuthServiceProvider::class,
+ // App\Providers\BroadcastServiceProvider::class,
+ App\Providers\EventServiceProvider::class,
+ App\Providers\RouteServiceProvider::class,
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Class Aliases
+ |--------------------------------------------------------------------------
+ |
+ | This array of class aliases will be registered when this application
+ | is started. However, feel free to register as many as you wish as
+ | the aliases are "lazy" loaded so they don't hinder performance.
+ |
+ */
+
+ 'aliases' => [
+
+ 'App' => Illuminate\Support\Facades\App::class,
+ 'Arr' => Illuminate\Support\Arr::class,
+ 'Artisan' => Illuminate\Support\Facades\Artisan::class,
+ 'Auth' => Illuminate\Support\Facades\Auth::class,
+ 'Blade' => Illuminate\Support\Facades\Blade::class,
+ 'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
+ 'Bus' => Illuminate\Support\Facades\Bus::class,
+ 'Cache' => Illuminate\Support\Facades\Cache::class,
+ 'Config' => Illuminate\Support\Facades\Config::class,
+ 'Cookie' => Illuminate\Support\Facades\Cookie::class,
+ 'Crypt' => Illuminate\Support\Facades\Crypt::class,
+ 'DB' => Illuminate\Support\Facades\DB::class,
+ 'Eloquent' => Illuminate\Database\Eloquent\Model::class,
+ 'Event' => Illuminate\Support\Facades\Event::class,
+ 'File' => Illuminate\Support\Facades\File::class,
+ 'Gate' => Illuminate\Support\Facades\Gate::class,
+ 'Hash' => Illuminate\Support\Facades\Hash::class,
+ 'Lang' => Illuminate\Support\Facades\Lang::class,
+ 'Log' => Illuminate\Support\Facades\Log::class,
+ 'Mail' => Illuminate\Support\Facades\Mail::class,
+ 'Notification' => Illuminate\Support\Facades\Notification::class,
+ 'Password' => Illuminate\Support\Facades\Password::class,
+ 'Queue' => Illuminate\Support\Facades\Queue::class,
+ 'Redirect' => Illuminate\Support\Facades\Redirect::class,
+ 'Redis' => Illuminate\Support\Facades\Redis::class,
+ 'Request' => Illuminate\Support\Facades\Request::class,
+ 'Response' => Illuminate\Support\Facades\Response::class,
+ 'Route' => Illuminate\Support\Facades\Route::class,
+ 'Schema' => Illuminate\Support\Facades\Schema::class,
+ 'Session' => Illuminate\Support\Facades\Session::class,
+ 'Storage' => Illuminate\Support\Facades\Storage::class,
+ 'Str' => Illuminate\Support\Str::class,
+ 'URL' => Illuminate\Support\Facades\URL::class,
+ 'Validator' => Illuminate\Support\Facades\Validator::class,
+ 'View' => Illuminate\Support\Facades\View::class,
+
+ ],
+
+];
diff --git a/config/auth.php b/config/auth.php
new file mode 100644
index 0000000..aaf982b
--- /dev/null
+++ b/config/auth.php
@@ -0,0 +1,117 @@
+ [
+ 'guard' => 'web',
+ 'passwords' => 'users',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Guards
+ |--------------------------------------------------------------------------
+ |
+ | Next, you may define every authentication guard for your application.
+ | Of course, a great default configuration has been defined for you
+ | here which uses session storage and the Eloquent user provider.
+ |
+ | All authentication drivers have a user provider. This defines how the
+ | users are actually retrieved out of your database or other storage
+ | mechanisms used by this application to persist your user's data.
+ |
+ | Supported: "session", "token"
+ |
+ */
+
+ 'guards' => [
+ 'web' => [
+ 'driver' => 'session',
+ 'provider' => 'users',
+ ],
+
+ 'api' => [
+ 'driver' => 'token',
+ 'provider' => 'users',
+ 'hash' => false,
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | User Providers
+ |--------------------------------------------------------------------------
+ |
+ | All authentication drivers have a user provider. This defines how the
+ | users are actually retrieved out of your database or other storage
+ | mechanisms used by this application to persist your user's data.
+ |
+ | If you have multiple user tables or models you may configure multiple
+ | sources which represent each model / table. These sources may then
+ | be assigned to any extra authentication guards you have defined.
+ |
+ | Supported: "database", "eloquent"
+ |
+ */
+
+ 'providers' => [
+ 'users' => [
+ 'driver' => 'eloquent',
+ 'model' => App\User::class,
+ ],
+
+ // 'users' => [
+ // 'driver' => 'database',
+ // 'table' => 'users',
+ // ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Resetting Passwords
+ |--------------------------------------------------------------------------
+ |
+ | You may specify multiple password reset configurations if you have more
+ | than one user table or model in the application and you want to have
+ | separate password reset settings based on the specific user types.
+ |
+ | The expire time is the number of minutes that the reset token should be
+ | considered valid. This security feature keeps tokens short-lived so
+ | they have less time to be guessed. You may change this as needed.
+ |
+ */
+
+ 'passwords' => [
+ 'users' => [
+ 'provider' => 'users',
+ 'table' => 'password_resets',
+ 'expire' => 60,
+ 'throttle' => 60,
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Password Confirmation Timeout
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the amount of seconds before a password confirmation
+ | times out and the user is prompted to re-enter their password via the
+ | confirmation screen. By default, the timeout lasts for three hours.
+ |
+ */
+
+ 'password_timeout' => 10800,
+
+];
diff --git a/config/broadcasting.php b/config/broadcasting.php
new file mode 100644
index 0000000..3bba110
--- /dev/null
+++ b/config/broadcasting.php
@@ -0,0 +1,59 @@
+ env('BROADCAST_DRIVER', 'null'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Broadcast Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define all of the broadcast connections that will be used
+ | to broadcast events to other systems or over websockets. Samples of
+ | each available type of connection are provided inside this array.
+ |
+ */
+
+ 'connections' => [
+
+ 'pusher' => [
+ 'driver' => 'pusher',
+ 'key' => env('PUSHER_APP_KEY'),
+ 'secret' => env('PUSHER_APP_SECRET'),
+ 'app_id' => env('PUSHER_APP_ID'),
+ 'options' => [
+ 'cluster' => env('PUSHER_APP_CLUSTER'),
+ 'useTLS' => true,
+ ],
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ ],
+
+ 'log' => [
+ 'driver' => 'log',
+ ],
+
+ 'null' => [
+ 'driver' => 'null',
+ ],
+
+ ],
+
+];
diff --git a/config/cache.php b/config/cache.php
new file mode 100644
index 0000000..46751e6
--- /dev/null
+++ b/config/cache.php
@@ -0,0 +1,103 @@
+ env('CACHE_DRIVER', 'file'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Stores
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define all of the cache "stores" for your application as
+ | well as their drivers. You may even define multiple stores for the
+ | same cache driver to group types of items stored in your caches.
+ |
+ */
+
+ 'stores' => [
+
+ 'apc' => [
+ 'driver' => 'apc',
+ ],
+
+ 'array' => [
+ 'driver' => 'array',
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'cache',
+ 'connection' => null,
+ ],
+
+ 'file' => [
+ 'driver' => 'file',
+ 'path' => storage_path('framework/cache/data'),
+ ],
+
+ 'memcached' => [
+ 'driver' => 'memcached',
+ 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
+ 'sasl' => [
+ env('MEMCACHED_USERNAME'),
+ env('MEMCACHED_PASSWORD'),
+ ],
+ 'options' => [
+ // Memcached::OPT_CONNECT_TIMEOUT => 2000,
+ ],
+ 'servers' => [
+ [
+ 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
+ 'port' => env('MEMCACHED_PORT', 11211),
+ 'weight' => 100,
+ ],
+ ],
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'cache',
+ ],
+
+ 'dynamodb' => [
+ 'driver' => 'dynamodb',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
+ 'endpoint' => env('DYNAMODB_ENDPOINT'),
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Key Prefix
+ |--------------------------------------------------------------------------
+ |
+ | When utilizing a RAM based store such as APC or Memcached, there might
+ | be other applications utilizing the same cache. So, we'll specify a
+ | value to get prefixed to all our keys so we can avoid collisions.
+ |
+ */
+
+ 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
+
+];
diff --git a/config/database.php b/config/database.php
new file mode 100644
index 0000000..b42d9b3
--- /dev/null
+++ b/config/database.php
@@ -0,0 +1,147 @@
+ env('DB_CONNECTION', 'mysql'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Database Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here are each of the database connections setup for your application.
+ | Of course, examples of configuring each database platform that is
+ | supported by Laravel is shown below to make development simple.
+ |
+ |
+ | All database work in Laravel is done through the PHP PDO facilities
+ | so make sure you have the driver for your particular database of
+ | choice installed on your machine before you begin development.
+ |
+ */
+
+ 'connections' => [
+
+ 'sqlite' => [
+ 'driver' => 'sqlite',
+ 'url' => env('DATABASE_URL'),
+ 'database' => env('DB_DATABASE', database_path('database.sqlite')),
+ 'prefix' => '',
+ 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
+ ],
+
+ 'mysql' => [
+ 'driver' => 'mysql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '3306'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'unix_socket' => env('DB_SOCKET', ''),
+ 'charset' => 'utf8mb4',
+ 'collation' => 'utf8mb4_unicode_ci',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'strict' => true,
+ 'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+ ]) : [],
+ ],
+
+ 'pgsql' => [
+ 'driver' => 'pgsql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '5432'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'schema' => 'public',
+ 'sslmode' => 'prefer',
+ ],
+
+ 'sqlsrv' => [
+ 'driver' => 'sqlsrv',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', 'localhost'),
+ 'port' => env('DB_PORT', '1433'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Migration Repository Table
+ |--------------------------------------------------------------------------
+ |
+ | This table keeps track of all the migrations that have already run for
+ | your application. Using this information, we can determine which of
+ | the migrations on disk haven't actually been run in the database.
+ |
+ */
+
+ 'migrations' => 'migrations',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Redis Databases
+ |--------------------------------------------------------------------------
+ |
+ | Redis is an open source, fast, and advanced key-value store that also
+ | provides a richer body of commands than a typical key-value system
+ | such as APC or Memcached. Laravel makes it easy to dig right in.
+ |
+ */
+
+ 'redis' => [
+
+ 'client' => env('REDIS_CLIENT', 'phpredis'),
+
+ 'options' => [
+ 'cluster' => env('REDIS_CLUSTER', 'redis'),
+ 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
+ ],
+
+ 'default' => [
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'password' => env('REDIS_PASSWORD', null),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_DB', '0'),
+ ],
+
+ 'cache' => [
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'password' => env('REDIS_PASSWORD', null),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_CACHE_DB', '1'),
+ ],
+
+ ],
+
+];
diff --git a/config/filesystems.php b/config/filesystems.php
new file mode 100644
index 0000000..c6e2ff6
--- /dev/null
+++ b/config/filesystems.php
@@ -0,0 +1,77 @@
+ env('FILESYSTEM_DRIVER', 'local'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Default Cloud Filesystem Disk
+ |--------------------------------------------------------------------------
+ |
+ | Many applications store files both locally and in the cloud. For this
+ | reason, you may specify a default "cloud" driver here. This driver
+ | will be bound as the Cloud disk implementation in the container.
+ |
+ */
+
+ 'cloud' => env('FILESYSTEM_CLOUD', 's3'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Filesystem Disks
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure as many filesystem "disks" as you wish, and you
+ | may even configure multiple disks of the same driver. Defaults have
+ | been setup for each driver as an example of the required options.
+ |
+ | Supported Drivers: "local", "ftp", "sftp", "s3"
+ |
+ */
+
+ 'disks' => [
+
+ 'admin' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app/public'),
+ 'url' => env('APP_URL') . '/storage',
+ 'visibility' => 'public',
+ ],
+
+ 'local' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app'),
+ ],
+
+ 'public' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app/public'),
+ 'url' => env('APP_URL') . '/storage',
+ 'visibility' => 'public',
+ ],
+
+ 's3' => [
+ 'driver' => 's3',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION'),
+ 'bucket' => env('AWS_BUCKET'),
+ 'url' => env('AWS_URL'),
+ 'endpoint' => env('AWS_ENDPOINT'),
+ ],
+
+ ],
+
+];
diff --git a/config/hashing.php b/config/hashing.php
new file mode 100644
index 0000000..8425770
--- /dev/null
+++ b/config/hashing.php
@@ -0,0 +1,52 @@
+ 'bcrypt',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Bcrypt Options
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the configuration options that should be used when
+ | passwords are hashed using the Bcrypt algorithm. This will allow you
+ | to control the amount of time it takes to hash the given password.
+ |
+ */
+
+ 'bcrypt' => [
+ 'rounds' => env('BCRYPT_ROUNDS', 10),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Argon Options
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the configuration options that should be used when
+ | passwords are hashed using the Argon algorithm. These will allow you
+ | to control the amount of time it takes to hash the given password.
+ |
+ */
+
+ 'argon' => [
+ 'memory' => 1024,
+ 'threads' => 2,
+ 'time' => 2,
+ ],
+
+];
diff --git a/config/logging.php b/config/logging.php
new file mode 100644
index 0000000..088c204
--- /dev/null
+++ b/config/logging.php
@@ -0,0 +1,104 @@
+ env('LOG_CHANNEL', 'stack'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Channels
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the log channels for your application. Out of
+ | the box, Laravel uses the Monolog PHP logging library. This gives
+ | you a variety of powerful log handlers / formatters to utilize.
+ |
+ | Available Drivers: "single", "daily", "slack", "syslog",
+ | "errorlog", "monolog",
+ | "custom", "stack"
+ |
+ */
+
+ 'channels' => [
+ 'stack' => [
+ 'driver' => 'stack',
+ 'channels' => ['single'],
+ 'ignore_exceptions' => false,
+ ],
+
+ 'single' => [
+ 'driver' => 'single',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => 'debug',
+ ],
+
+ 'daily' => [
+ 'driver' => 'daily',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => 'debug',
+ 'days' => 14,
+ ],
+
+ 'slack' => [
+ 'driver' => 'slack',
+ 'url' => env('LOG_SLACK_WEBHOOK_URL'),
+ 'username' => 'Laravel Log',
+ 'emoji' => ':boom:',
+ 'level' => 'critical',
+ ],
+
+ 'papertrail' => [
+ 'driver' => 'monolog',
+ 'level' => 'debug',
+ 'handler' => SyslogUdpHandler::class,
+ 'handler_with' => [
+ 'host' => env('PAPERTRAIL_URL'),
+ 'port' => env('PAPERTRAIL_PORT'),
+ ],
+ ],
+
+ 'stderr' => [
+ 'driver' => 'monolog',
+ 'handler' => StreamHandler::class,
+ 'formatter' => env('LOG_STDERR_FORMATTER'),
+ 'with' => [
+ 'stream' => 'php://stderr',
+ ],
+ ],
+
+ 'syslog' => [
+ 'driver' => 'syslog',
+ 'level' => 'debug',
+ ],
+
+ 'errorlog' => [
+ 'driver' => 'errorlog',
+ 'level' => 'debug',
+ ],
+
+ 'null' => [
+ 'driver' => 'monolog',
+ 'handler' => NullHandler::class,
+ ],
+
+ 'emergency' => [
+ 'path' => storage_path('logs/laravel.log'),
+ ],
+ ],
+
+];
diff --git a/config/mail.php b/config/mail.php
new file mode 100644
index 0000000..3c65eb3
--- /dev/null
+++ b/config/mail.php
@@ -0,0 +1,136 @@
+ env('MAIL_DRIVER', 'smtp'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | SMTP Host Address
+ |--------------------------------------------------------------------------
+ |
+ | Here you may provide the host address of the SMTP server used by your
+ | applications. A default option is provided that is compatible with
+ | the Mailgun mail service which will provide reliable deliveries.
+ |
+ */
+
+ 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | SMTP Host Port
+ |--------------------------------------------------------------------------
+ |
+ | This is the SMTP port used by your application to deliver e-mails to
+ | users of the application. Like the host we have set this value to
+ | stay compatible with the Mailgun e-mail application by default.
+ |
+ */
+
+ 'port' => env('MAIL_PORT', 587),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Global "From" Address
+ |--------------------------------------------------------------------------
+ |
+ | You may wish for all e-mails sent by your application to be sent from
+ | the same address. Here, you may specify a name and address that is
+ | used globally for all e-mails that are sent by your application.
+ |
+ */
+
+ 'from' => [
+ 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
+ 'name' => env('MAIL_FROM_NAME', 'Example'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | E-Mail Encryption Protocol
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the encryption protocol that should be used when
+ | the application send e-mail messages. A sensible default using the
+ | transport layer security protocol should provide great security.
+ |
+ */
+
+ 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | SMTP Server Username
+ |--------------------------------------------------------------------------
+ |
+ | If your SMTP server requires a username for authentication, you should
+ | set it here. This will get used to authenticate with your server on
+ | connection. You may also set the "password" value below this one.
+ |
+ */
+
+ 'username' => env('MAIL_USERNAME'),
+
+ 'password' => env('MAIL_PASSWORD'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Sendmail System Path
+ |--------------------------------------------------------------------------
+ |
+ | When using the "sendmail" driver to send e-mails, we will need to know
+ | the path to where Sendmail lives on this server. A default path has
+ | been provided here, which will work well on most of your systems.
+ |
+ */
+
+ 'sendmail' => '/usr/sbin/sendmail -bs',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Markdown Mail Settings
+ |--------------------------------------------------------------------------
+ |
+ | If you are using Markdown based email rendering, you may configure your
+ | theme and component paths here, allowing you to customize the design
+ | of the emails. Or, you may simply stick with the Laravel defaults!
+ |
+ */
+
+ 'markdown' => [
+ 'theme' => 'default',
+
+ 'paths' => [
+ resource_path('views/vendor/mail'),
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Channel
+ |--------------------------------------------------------------------------
+ |
+ | If you are using the "log" driver, you may specify the logging channel
+ | if you prefer to keep mail messages separate from other log entries
+ | for simpler reading. Otherwise, the default channel will be used.
+ |
+ */
+
+ 'log_channel' => env('MAIL_LOG_CHANNEL'),
+
+];
diff --git a/config/queue.php b/config/queue.php
new file mode 100644
index 0000000..3a30d6c
--- /dev/null
+++ b/config/queue.php
@@ -0,0 +1,88 @@
+ env('QUEUE_CONNECTION', 'sync'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Queue Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the connection information for each server that
+ | is used by your application. A default configuration has been added
+ | for each back-end shipped with Laravel. You are free to add more.
+ |
+ | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
+ |
+ */
+
+ 'connections' => [
+
+ 'sync' => [
+ 'driver' => 'sync',
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'jobs',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ ],
+
+ 'beanstalkd' => [
+ 'driver' => 'beanstalkd',
+ 'host' => 'localhost',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ 'block_for' => 0,
+ ],
+
+ 'sqs' => [
+ 'driver' => 'sqs',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
+ 'queue' => env('SQS_QUEUE', 'your-queue-name'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ 'queue' => env('REDIS_QUEUE', 'default'),
+ 'retry_after' => 90,
+ 'block_for' => null,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Failed Queue Jobs
+ |--------------------------------------------------------------------------
+ |
+ | These options configure the behavior of failed queue job logging so you
+ | can control which database and table are used to store the jobs that
+ | have failed. You may change them to any database / table you wish.
+ |
+ */
+
+ 'failed' => [
+ 'driver' => env('QUEUE_FAILED_DRIVER', 'database'),
+ 'database' => env('DB_CONNECTION', 'mysql'),
+ 'table' => 'failed_jobs',
+ ],
+
+];
diff --git a/config/services.php b/config/services.php
new file mode 100644
index 0000000..2a1d616
--- /dev/null
+++ b/config/services.php
@@ -0,0 +1,33 @@
+ [
+ 'domain' => env('MAILGUN_DOMAIN'),
+ 'secret' => env('MAILGUN_SECRET'),
+ 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
+ ],
+
+ 'postmark' => [
+ 'token' => env('POSTMARK_TOKEN'),
+ ],
+
+ 'ses' => [
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ ],
+
+];
diff --git a/config/session.php b/config/session.php
new file mode 100644
index 0000000..175ac49
--- /dev/null
+++ b/config/session.php
@@ -0,0 +1,199 @@
+ env('SESSION_DRIVER', 'file'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Lifetime
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the number of minutes that you wish the session
+ | to be allowed to remain idle before it expires. If you want them
+ | to immediately expire on the browser closing, set that option.
+ |
+ */
+
+ 'lifetime' => env('SESSION_LIFETIME', 120),
+
+ 'expire_on_close' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Encryption
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to easily specify that all of your session data
+ | should be encrypted before it is stored. All encryption will be run
+ | automatically by Laravel and you can use the Session like normal.
+ |
+ */
+
+ 'encrypt' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session File Location
+ |--------------------------------------------------------------------------
+ |
+ | When using the native session driver, we need a location where session
+ | files may be stored. A default has been set for you but a different
+ | location may be specified. This is only needed for file sessions.
+ |
+ */
+
+ 'files' => storage_path('framework/sessions'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Connection
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" or "redis" session drivers, you may specify a
+ | connection that should be used to manage these sessions. This should
+ | correspond to a connection in your database configuration options.
+ |
+ */
+
+ 'connection' => env('SESSION_CONNECTION', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Table
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" session driver, you may specify the table we
+ | should use to manage the sessions. Of course, a sensible default is
+ | provided for you; however, you are free to change this as needed.
+ |
+ */
+
+ 'table' => 'sessions',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cache Store
+ |--------------------------------------------------------------------------
+ |
+ | When using the "apc", "memcached", or "dynamodb" session drivers you may
+ | list a cache store that should be used for these sessions. This value
+ | must match with one of the application's configured cache "stores".
+ |
+ */
+
+ 'store' => env('SESSION_STORE', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Sweeping Lottery
+ |--------------------------------------------------------------------------
+ |
+ | Some session drivers must manually sweep their storage location to get
+ | rid of old sessions from storage. Here are the chances that it will
+ | happen on a given request. By default, the odds are 2 out of 100.
+ |
+ */
+
+ 'lottery' => [2, 100],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Name
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the name of the cookie used to identify a session
+ | instance by ID. The name specified here will get used every time a
+ | new session cookie is created by the framework for every driver.
+ |
+ */
+
+ 'cookie' => env(
+ 'SESSION_COOKIE',
+ Str::slug(env('APP_NAME', 'laravel'), '_') . '_session'
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Path
+ |--------------------------------------------------------------------------
+ |
+ | The session cookie path determines the path for which the cookie will
+ | be regarded as available. Typically, this will be the root path of
+ | your application but you are free to change this when necessary.
+ |
+ */
+
+ 'path' => '/',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Domain
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the domain of the cookie used to identify a session
+ | in your application. This will determine which domains the cookie is
+ | available to in your application. A sensible default has been set.
+ |
+ */
+
+ 'domain' => env('SESSION_DOMAIN', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTPS Only Cookies
+ |--------------------------------------------------------------------------
+ |
+ | By setting this option to true, session cookies will only be sent back
+ | to the server if the browser has a HTTPS connection. This will keep
+ | the cookie from being sent to you if it can not be done securely.
+ |
+ */
+
+ 'secure' => env('SESSION_SECURE_COOKIE', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTP Access Only
+ |--------------------------------------------------------------------------
+ |
+ | Setting this value to true will prevent JavaScript from accessing the
+ | value of the cookie and the cookie will only be accessible through
+ | the HTTP protocol. You are free to modify this option if needed.
+ |
+ */
+
+ 'http_only' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Same-Site Cookies
+ |--------------------------------------------------------------------------
+ |
+ | This option determines how your cookies behave when cross-site requests
+ | take place, and can be used to mitigate CSRF attacks. By default, we
+ | do not enable this as other CSRF protection services are in place.
+ |
+ | Supported: "lax", "strict", "none"
+ |
+ */
+
+ 'same_site' => 'lax',
+
+];
diff --git a/config/ueditor.php b/config/ueditor.php
new file mode 100644
index 0000000..8411b9c
--- /dev/null
+++ b/config/ueditor.php
@@ -0,0 +1,116 @@
+
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+return [
+ // 存储引擎: config/filesystem.php 中 disks, public 或 qiniu
+ 'disk' => 'public',
+ 'route' => [
+ 'name' => '/ueditor/server',
+ 'options' => [
+ // middleware => 'auth',
+ ],
+ ],
+
+ // 上传 配置
+ 'upload' => [
+ /* 前后端通信相关的配置,注释只允许使用多行方式 */
+ /* 上传图片配置项 */
+ 'imageActionName' => 'upload-image', /* 执行上传图片的action名称 */
+ 'imageFieldName' => 'upfile', /* 提交的图片表单名称 */
+ 'imageMaxSize' => 2 * 1024 * 1024, /* 上传大小限制,单位B */
+ 'imageAllowFiles' => ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], /* 上传图片格式显示 */
+ 'imageCompressEnable' => true, /* 是否压缩图片,默认是true */
+ 'imageCompressBorder' => 1600, /* 图片压缩最长边限制 */
+ 'imageInsertAlign' => 'none', /* 插入的图片浮动方式 */
+ 'imageUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'imagePathFormat' => '/uploads/image/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
+ /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
+ /* {time} 会替换成时间戳 */
+ /* {yyyy} 会替换成四位年份 */
+ /* {yy} 会替换成两位年份 */
+ /* {mm} 会替换成两位月份 */
+ /* {dd} 会替换成两位日期 */
+ /* {hh} 会替换成两位小时 */
+ /* {ii} 会替换成两位分钟 */
+ /* {ss} 会替换成两位秒 */
+ /* 非法字符 \ => * ? " < > | */
+ /* 具请体看线上文档 => fex.baidu.com/assets/#use-format_upload_filename */
+
+ /* 涂鸦图片上传配置项 */
+ 'scrawlActionName' => 'upload-scrawl', /* 执行上传涂鸦的action名称 */
+ 'scrawlFieldName' => 'upfile', /* 提交的图片表单名称 */
+ 'scrawlPathFormat' => '/uploads/image/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'scrawlMaxSize' => 2048000, /* 上传大小限制,单位B */
+ 'scrawlUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'scrawlInsertAlign' => 'none',
+
+ /* 截图工具上传 */
+ 'snapscreenActionName' => 'upload-image', /* 执行上传截图的action名称 */
+ 'snapscreenPathFormat' => '/uploads/image/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'snapscreenUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'snapscreenInsertAlign' => 'none', /* 插入的图片浮动方式 */
+
+ /* 抓取远程图片配置 */
+ 'catcherLocalDomain' => ['127.0.0.1', 'localhost', 'img.baidu.com'],
+ 'catcherActionName' => 'catch-image', /* 执行抓取远程图片的action名称 */
+ 'catcherFieldName' => 'source', /* 提交的图片列表表单名称 */
+ 'catcherPathFormat' => '/uploads/image/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'catcherUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'catcherMaxSize' => 2048000, /* 上传大小限制,单位B */
+ 'catcherAllowFiles' => ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], /* 抓取图片格式显示 */
+
+ /* 上传视频配置 */
+ 'videoActionName' => 'upload-video', /* 执行上传视频的action名称 */
+ 'videoFieldName' => 'upfile', /* 提交的视频表单名称 */
+ 'videoPathFormat' => '/uploads/video/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'videoUrlPrefix' => '', /* 视频访问路径前缀 */
+ 'videoMaxSize' => 102400000, /* 上传大小限制,单位B,默认100MB */
+ 'videoAllowFiles' => [
+ '.flv', '.swf', '.mkv', '.avi', '.rm', '.rmvb', '.mpeg', '.mpg',
+ '.ogg', '.ogv', '.mov', '.wmv', '.mp4', '.webm', '.mp3', '.wav', '.mid', ], /* 上传视频格式显示 */
+
+ /* 上传文件配置 */
+ 'fileActionName' => 'upload-file', /* controller里,执行上传视频的action名称 */
+ 'fileFieldName' => 'upfile', /* 提交的文件表单名称 */
+ 'filePathFormat' => '/uploads/file/{yyyy}/{mm}/{dd}/', /* 上传保存路径,可以自定义保存路径和文件名格式 */
+ 'fileUrlPrefix' => '', /* 文件访问路径前缀 */
+ 'fileMaxSize' => 51200000, /* 上传大小限制,单位B,默认50MB */
+ 'fileAllowFiles' => [
+ '.png', '.jpg', '.jpeg', '.gif', '.bmp',
+ '.flv', '.swf', '.mkv', '.avi', '.rm', '.rmvb', '.mpeg', '.mpg',
+ '.ogg', '.ogv', '.mov', '.wmv', '.mp4', '.webm', '.mp3', '.wav', '.mid',
+ '.rar', '.zip', '.tar', '.gz', '.7z', '.bz2', '.cab', '.iso',
+ '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf', '.txt', '.md', '.xml',
+ ], /* 上传文件格式显示 */
+
+ /* 列出指定目录下的图片 */
+ 'imageManagerActionName' => 'list-image', /* 执行图片管理的action名称 */
+ 'imageManagerListPath' => '/uploads/image/', /* 指定要列出图片的目录 */
+ 'imageManagerListSize' => 20, /* 每次列出文件数量 */
+ 'imageManagerUrlPrefix' => '', /* 图片访问路径前缀 */
+ 'imageManagerInsertAlign' => 'none', /* 插入的图片浮动方式 */
+ 'imageManagerAllowFiles' => ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], /* 列出的文件类型 */
+
+ /* 列出指定目录下的文件 */
+ 'fileManagerActionName' => 'list-file', /* 执行文件管理的action名称 */
+ 'fileManagerListPath' => '/uploads/file/', /* 指定要列出文件的目录 */
+ 'fileManagerUrlPrefix' => '', /* 文件访问路径前缀 */
+ 'fileManagerListSize' => 20, /* 每次列出文件数量 */
+ 'fileManagerAllowFiles' => [
+ '.png', '.jpg', '.jpeg', '.gif', '.bmp',
+ '.flv', '.swf', '.mkv', '.avi', '.rm', '.rmvb', '.mpeg', '.mpg',
+ '.ogg', '.ogv', '.mov', '.wmv', '.mp4', '.webm', '.mp3', '.wav', '.mid',
+ '.rar', '.zip', '.tar', '.gz', '.7z', '.bz2', '.cab', '.iso',
+ '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf', '.txt', '.md', '.xml',
+ ], /* 列出的文件类型 */
+ ],
+];
diff --git a/config/view.php b/config/view.php
new file mode 100644
index 0000000..22b8a18
--- /dev/null
+++ b/config/view.php
@@ -0,0 +1,36 @@
+ [
+ resource_path('views'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Compiled View Path
+ |--------------------------------------------------------------------------
+ |
+ | This option determines where all the compiled Blade templates will be
+ | stored for your application. Typically, this is within the storage
+ | directory. However, as usual, you are free to change this value.
+ |
+ */
+
+ 'compiled' => env(
+ 'VIEW_COMPILED_PATH',
+ realpath(storage_path('framework/views'))
+ ),
+
+];
diff --git a/database/.gitignore b/database/.gitignore
new file mode 100644
index 0000000..97fc976
--- /dev/null
+++ b/database/.gitignore
@@ -0,0 +1,2 @@
+*.sqlite
+*.sqlite-journal
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
new file mode 100644
index 0000000..741edea
--- /dev/null
+++ b/database/factories/UserFactory.php
@@ -0,0 +1,28 @@
+define(User::class, function (Faker $faker) {
+ return [
+ 'name' => $faker->name,
+ 'email' => $faker->unique()->safeEmail,
+ 'email_verified_at' => now(),
+ 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
+ 'remember_token' => Str::random(10),
+ ];
+});
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
new file mode 100644
index 0000000..a91e1d3
--- /dev/null
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -0,0 +1,36 @@
+bigIncrements('id');
+ $table->string('name');
+ $table->string('email')->unique();
+ $table->timestamp('email_verified_at')->nullable();
+ $table->string('password');
+ $table->rememberToken();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('users');
+ }
+}
diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php
new file mode 100644
index 0000000..0ee0a36
--- /dev/null
+++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php
@@ -0,0 +1,32 @@
+string('email')->index();
+ $table->string('token');
+ $table->timestamp('created_at')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('password_resets');
+ }
+}
diff --git a/database/migrations/2016_01_04_173148_create_admin_tables.php b/database/migrations/2016_01_04_173148_create_admin_tables.php
new file mode 100644
index 0000000..450847e
--- /dev/null
+++ b/database/migrations/2016_01_04_173148_create_admin_tables.php
@@ -0,0 +1,119 @@
+increments('id');
+ $table->string('username', 190)->unique();
+ $table->string('password', 60);
+ $table->string('name');
+ $table->string('avatar')->nullable();
+ $table->string('remember_token', 100)->nullable();
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.roles_table'), function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('name', 50)->unique();
+ $table->string('slug', 50)->unique();
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.permissions_table'), function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('name', 50)->unique();
+ $table->string('slug', 50)->unique();
+ $table->string('http_method')->nullable();
+ $table->text('http_path')->nullable();
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.menu_table'), function (Blueprint $table) {
+ $table->increments('id');
+ $table->integer('parent_id')->default(0);
+ $table->integer('order')->default(0);
+ $table->string('title', 50);
+ $table->string('icon', 50);
+ $table->string('uri')->nullable();
+ $table->string('permission')->nullable();
+
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.role_users_table'), function (Blueprint $table) {
+ $table->integer('role_id');
+ $table->integer('user_id');
+ $table->index(['role_id', 'user_id']);
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.role_permissions_table'), function (Blueprint $table) {
+ $table->integer('role_id');
+ $table->integer('permission_id');
+ $table->index(['role_id', 'permission_id']);
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.user_permissions_table'), function (Blueprint $table) {
+ $table->integer('user_id');
+ $table->integer('permission_id');
+ $table->index(['user_id', 'permission_id']);
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.role_menu_table'), function (Blueprint $table) {
+ $table->integer('role_id');
+ $table->integer('menu_id');
+ $table->index(['role_id', 'menu_id']);
+ $table->timestamps();
+ });
+
+ Schema::create(config('admin.database.operation_log_table'), function (Blueprint $table) {
+ $table->increments('id');
+ $table->integer('user_id');
+ $table->string('path');
+ $table->string('method', 10);
+ $table->string('ip');
+ $table->text('input');
+ $table->index('user_id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists(config('admin.database.users_table'));
+ Schema::dropIfExists(config('admin.database.roles_table'));
+ Schema::dropIfExists(config('admin.database.permissions_table'));
+ Schema::dropIfExists(config('admin.database.menu_table'));
+ Schema::dropIfExists(config('admin.database.user_permissions_table'));
+ Schema::dropIfExists(config('admin.database.role_users_table'));
+ Schema::dropIfExists(config('admin.database.role_permissions_table'));
+ Schema::dropIfExists(config('admin.database.role_menu_table'));
+ Schema::dropIfExists(config('admin.database.operation_log_table'));
+ }
+}
diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
new file mode 100644
index 0000000..389bdf7
--- /dev/null
+++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
@@ -0,0 +1,35 @@
+bigIncrements('id');
+ $table->text('connection');
+ $table->text('queue');
+ $table->longText('payload');
+ $table->longText('exception');
+ $table->timestamp('failed_at')->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('failed_jobs');
+ }
+}
diff --git a/database/migrations/2020_05_28_153525_create_articles_table.php b/database/migrations/2020_05_28_153525_create_articles_table.php
new file mode 100644
index 0000000..fe889a9
--- /dev/null
+++ b/database/migrations/2020_05_28_153525_create_articles_table.php
@@ -0,0 +1,31 @@
+bigIncrements('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('articles');
+ }
+}
diff --git a/database/migrations/2020_05_28_153536_create_categories_table.php b/database/migrations/2020_05_28_153536_create_categories_table.php
new file mode 100644
index 0000000..3820dbd
--- /dev/null
+++ b/database/migrations/2020_05_28_153536_create_categories_table.php
@@ -0,0 +1,31 @@
+bigIncrements('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('categories');
+ }
+}
diff --git a/database/migrations/2020_05_28_163818_create_links_table.php b/database/migrations/2020_05_28_163818_create_links_table.php
new file mode 100644
index 0000000..ee8de29
--- /dev/null
+++ b/database/migrations/2020_05_28_163818_create_links_table.php
@@ -0,0 +1,31 @@
+bigIncrements('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('links');
+ }
+}
diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php
new file mode 100644
index 0000000..91cb6d1
--- /dev/null
+++ b/database/seeds/DatabaseSeeder.php
@@ -0,0 +1,16 @@
+call(UsersTableSeeder::class);
+ }
+}
diff --git a/public/.htaccess b/public/.htaccess
new file mode 100644
index 0000000..b75525b
--- /dev/null
+++ b/public/.htaccess
@@ -0,0 +1,21 @@
+
+
+ Options -MultiViews -Indexes
+
+
+ RewriteEngine On
+
+ # Handle Authorization Header
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ # Redirect Trailing Slashes If Not A Folder...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_URI} (.+)/$
+ RewriteRule ^ %1 [L,R=301]
+
+ # Handle Front Controller...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ index.php [L]
+
diff --git a/public/assets/index/css/style.css b/public/assets/index/css/style.css
new file mode 100644
index 0000000..ec51f25
--- /dev/null
+++ b/public/assets/index/css/style.css
@@ -0,0 +1,194 @@
+@charset "utf-8";
+/* CSS Document */
+*{ margin:0; padding:0}
+ul li{ list-style:none}
+img{ border:0; max-width:100%}
+a{ text-decoration:none; color:#333}
+.clear{ clear:both}
+body{ font-family:"微软雅黑"; width:100%; min-width:1200px;color: #333;font-size: 14px;}
+.ccsl{ display:block;overflow:hidden; white-space:nowrap;text-overflow:ellipsis;}
+p{text-align:justify}
+
+.main{ width:1200px; margin:0 auto;}
+
+
+.banner{ width:100%; min-width:1200px; /*height:400px;*/ overflow:hidden; position:relative;font-size:0; margin:0 auto;}
+.b-img{ /*height:400px;*/ position:absolute; left:0; top:0;}
+.b-img img{ display:block; /*height:400px;*/ float:left;}
+.b-list{ height:20px; /*padding-top:380px;*/ margin:0 auto;position:relative;z-index:1;}
+.b-list span{ display:block;cursor:pointer; width:10px; height:10px; border-radius:50%; background:#fff; float:left; margin:0 5px; _margin:0 3px;}
+.b-list .spcss{ background:#0580c8}
+
+.topbox{ width:100%; min-width:1200px; height:40px; line-height:40px; overflow:hidden;background:#ededed;}
+.topbox p{ width:1200px; margin:0 auto; font-size:14px; color:#333;}
+
+.logo{ width:1200px; margin:0 auto; overflow:hidden}
+.logo img{ display:block; width:1200px;}
+
+.nav{width:100%; min-width:1200px; overflow:hidden;background: #0580c8;height: 54px;}
+.nav ul{ overflow:hidden}
+.nav ul li{ float:left;width: 125px;height: 54px;text-align: center;line-height: 54px; overflow:hidden; margin-right:1px}
+.nav ul li a{color: #fff;font-size: 15px; display:block}
+.nav ul li:hover,.nav ul li.on{ background:rgb(74, 136, 207)}
+
+.part1{margin: 20px auto; width:1200px;color: #666;font-size: 14px;line-height: 28px; height:28px; overflow:hidden}
+.part1 span{ display:block; float:left; font-weight:bold;}
+.part1 .con{ float:left; max-width:1000px; overflow:hidden}
+.part1 .con a{ display:inline-block;color: #666; padding-right:5px}
+
+.part2{ width:100%; min-width:1200px;background:#F3F3F3; padding:20px 0}
+.part2 .titbox{width: 340px;margin: 20px auto;height: 65px;text-align: center; overflow:hidden}
+.part2 .titbox p{ text-align:center;color: #0580c8;font-weight:bold;font-size: 30px;}
+.part2 .titbox em{font-style:normal;text-transform: uppercase;color: #afb2af;font-size: 14px;font-family: arial;text-align: center;margin-left: 10px;}
+
+.part2 ul{ padding-bottom:20px; overflow:hidden}
+.part2 ul li{background: #fff;width: 285px;height: 324px;float: left;margin: 10px 20px 10px 0;overflow: hidden;}
+.part2 ul li:nth-child(4n){ margin-right:0}
+.part2 ul li img{margin: 10px 10px 0 10px;width: 265px;height: 265px;}
+.part2 ul li p{ text-align:center;line-height: 48px;color: #333; font-size: 16px;}
+.part2 ul li:hover p{color: #0580c8;}
+
+.part3{ padding-top:46px; width:1200px; margin:0 auto; overflow:hidden; padding-bottom:20px}
+.part3 .titbox{width: 600px;margin:0 auto;text-align: center;}
+.part3 .titbox p{padding-top: 18px; font-weight:bold;font-size: 28px;color: #000;text-align: center;}
+.part3 .titbox span{font-style:normal;text-transform: uppercase;color: #afb2af;font-size: 14px;font-family: arial;text-align: center;line-height: 34px;}
+.part3box{ padding-top:30px;}
+.part3box .p3L{border: 10px solid #eee;width: 315px;height: 216px;margin-right: 20px;float: left; overflow:hidden}
+.part3box .p3L img{width: 315px;height: 216px;}
+.part3box .p3R{width: 845px;float: left; padding-top: 10px;}
+.part3box .p3R .con{color: #666666;font-size: 14px;line-height: 2;margin-bottom: 10px; max-height:170px; overflow:hidden}
+.part3box .p3R a.more{border-radius: 20px;padding: 2px 10px;background: #0580c8;color: #fff;margin-top: 10px;display: inline-block;}
+.part3box .p3R a.more:hover{background: #ccc;color: #000;transition: all .5s;}
+.marqueeleft{width:1200px;overflow:hidden; padding-top:40px}
+.marqueeleft ul{float:left;}
+.marqueeleft li{float:left;display:inline;height:128px;overflow:hidden; padding-right:20px }
+
+
+.part4{width:100%; min-width:1200px; background:url(../images/bg.jpg) repeat;padding: 43px 0;margin: 20px auto;}
+.part4box{ float:left;width: 582px;overflow: hidden;}
+.part4box .titbox{ height:27px; overflow:hidden; line-height:27px;}
+.part4box .titbox h2{ float:left;color: #0580c8;font-size: 18px;font-weight: normal; max-width:450px; overflow:hidden;border-left: 4px solid #0580c8; padding-left: 10px;}
+.part4box .titbox a{ float:right;color: #333;font-size: 14px;}
+
+.part4box .cons{background: #fff;margin-top: 20px;padding: 10px;}
+.p4one{ height:147px; overflow:hidden}
+.p4one .p4oneL{width:183px; height:137px;float: left;margin-right: 10px;margin-bottom: 10px; overflow:hidden}
+.p4one .p4oneL img{width:183px; height:137px;}
+.p4one .p4oneR{width: 350px;height:137px;float: right; overflow:hidden}
+.p4one .p4oneR a{font-weight: bold;color: #333;font-size: 14px;margin: 10px 0; float:left; max-width:250px;}
+.p4one .p4oneR span{ margin:10px 0; float:right;font-weight: normal;font-size: 14px;color: #666;}
+.p4one .p4oneR .sub{font-size: 14px;line-height: 1.8; height:75px; overflow:hidden}
+.p4one .p4oneR a:hover{ color:#0580c8}
+
+.part4 ul{ padding-top:15px; overflow:hidden}
+.part4 ul li{line-height:35px; overflow:hidden;height:35px;border-bottom: 1px dotted #ccc;}
+.part4 ul li p{background: #0580c8;width: 14px;height: 14px;border-radius: 50%;float: left;text-align: center;color: #fff;margin-right: 15px;line-height: 14px;margin-top: 10px; font-size:14px;}
+.part4 ul li a{ float:left;color: #333;font-size: 14px; max-width:410px;}
+.part4 ul li span{ float:right;color: #666;font-size: 14px;}
+.part4 ul li:hover p{background: #ccc;color: #000; transition: all .5s;}
+.part4 ul li:hover a{color: #0580c8;transition: all .5s;}
+.part4 ul li:hover span{color: #0580c8; transition: all .5s;}
+
+.part4box.fr{ float:right}
+
+
+.linkbox{margin: 40px auto; width:1200px; overflow:hidden}
+.linkbox .linkL{ width:81px; height:70px; overflow:hidden; float:left}
+.linkbox .linkL .p1{ width:73px; height:35px; padding-left:8px; line-height:35px; color:#fff; font-size:14px; background:url(../images/icon.png) no-repeat}
+.linkbox .linkL .p2{width:73px; height:35px; padding-left:8px;color:#fff; line-height:35px; font-size:14px; background:url(../images/icon2.png) no-repeat}
+.linkbox .linkR{width: 1096px;float: right;border: 1px solid #ccc; height: 50px;padding: 10px;font-size: 14px;line-height: 2;overflow: hidden;}
+.linkbox .linkR a{color: #797979;margin: 0 5px;display: inline-block;}
+
+
+.footer{width:100%; min-width:1200px; background: #000;padding: 20px 0;font-size: 14px;}
+.fnav{ color:#a2a2a2; max-width:1200px; margin:0 auto; text-align:center}
+.fnav a{display: inline-block;line-height: 2;margin: 0 5px 20px;color: #fff;}
+.foot{ text-align:center;color: #a2a2a2; line-height:2}
+
+
+.mainWarp{ width:1200px; margin:0 auto;margin: 40px auto;}
+.mainLeft{float: left;width: 220px;}
+.typebox{border: 2px solid #0580c8;width: 212px;min-height:50px;background: #fcfcfc;}
+.typebox .tit{background:#0580c8;color: #fff;font-size: 18px;font-weight: normal;line-height: 2.5;}
+.typebox .tit p{ text-align:center}
+.typebox ul{ overflow:hidden;margin-top: 20px;margin-bottom: 10px;}
+.typebox ul li{background: #e1e1e1;margin: 10px 15px;line-height:35px;font-size: 14px; height:35px;}
+.typebox ul li a{ float:left;color: #444444; max-width:140px;}
+.typebox ul li p{ float:left;margin: 12px 10px;background: #000;border-radius: 50%;width: 12px;height: 12px;color: #fff;line-height: 0.8;text-align: center;}
+.typebox ul li:hover{background: #0580c8; transition: all .5s;}
+.typebox ul li:hover p{background: #fff;color: #000; transition: all .5s;}
+.typebox ul li:hover a{color: #fff;transition: all .5s;}
+
+.mainLeft .titboxcon{border-left: 4px solid #0580c8; height:27px;padding-left: 10px;margin:20px 0 10px; overflow:hidden}
+.mainLeft .titboxcon p{font-size: 18px;color: #0580c8;}
+.mainLeft .lxwm{}
+.mainLeft .lxwm .con{line-height: 2; padding-top:10px}
+ul.newsul{ overflow:hidden}
+ul.newsul li{ height:35px;line-height:35px;color: #666; border-bottom:1px dashed #ddd}
+ul.newsul li a{ color:#666}
+ul.newsul li a:hover{ color:#0580c8}
+
+
+
+.mainRight{ float:right; width:962px; overflow:hidden}
+.brandnav{width: 950px;border: 1px solid #ccc;padding: 5px; height:25px; line-height:25px; overflow:hidden}
+.brandnav p{ float:left;color: #0580c8;font-size: 16px;font-weight: normal;padding-left: 10px; max-width:200px;}
+.brandnav .con{ float:right; font-size:14px; color:#333; max-width:300px}
+
+ul.piclistul{padding: 15px;width: 930px; border: 1px solid #ccc;margin-top: 10px;min-height:300px; overflow:hidden}
+ul.piclistul li{ width:217px; height:192px; overflow:hidden; float:left; margin:10px 8px}
+ul.piclistul li .proimg{ width:215px; height:160px;_display:table;display:table-cell;text-align:center;border:1px solid #ddd;vertical-align:middle}
+ul.piclistul li .proimg img{vertical-align:middle;max-height:160px; max-width:215px;}
+ul.piclistul li p{ text-align:center;line-height: 30px; color:#333; padding:0 10px}
+ul.piclistul li:nth-child(4n){ margin-right:0}
+ul.piclistul li:hover p{color: #0580c8;}
+ul.piclistul li:hover .proimg{ border:1px solid #0580c8}
+
+
+
+ul.listul{padding: 15px 35px; overflow:hidden;border: 1px solid #ccc;margin-top: 10px;min-height:300px;}
+ul.listul li{ height:36px; line-height: 36px;border-bottom: 1px dotted #CCC;}
+ul.listul li p{background: #0580c8;width: 14px; height: 14px; border-radius: 50%;float: left;text-align: center;color: #fff;margin-right: 15px;line-height: 12px;margin-top: 12px;}
+ul.listul li a{ float:left;color: #333; max-width:600px;font-size: 14px;}
+ul.listul li span{ float:right;color: #666;font-size: 13px;}
+
+
+.detailbox{padding: 15px;border: 1px solid #ccc;margin-top: 10px;min-height:70vh; overflow:hidden}
+.detailbox .xq{}
+.detailbox .xq h1{font-size: 20px;line-height: 40px;text-align: center;color: #0580c8;}
+.detailbox .xq .date{margin: 10px 0;padding: 5px 10px;font-size: 14px;line-height: 24px;color: #666;text-align: center;border: 1px dotted #ccc;}
+.detailbox .xq .con{padding: 10px;line-height:30px; padding-bottom:20px}
+.detailbox .xq .prroimg{ display:block; margin:0 auto; max-width:650px; padding:10px 0}
+
+
+
+.pagebox{ text-align:center; padding-top:30px; padding-bottom:50px}
+.pagebox a{ border:1px solid #ccc; padding:5px 10px; display:inline-block; color:#333; margin:3px}
+.pagebox a:hover{background:#0580c8; color:#fff}
+.pagebox a.on{ background:#0580c8; color:#fff}
+
+.imgcenter{display: flex; flex-direction: row; justify-content: center;align-items: center;box-sizing: border-box;}
+.imgcenter li{width: 400px !important; }
+.imgcenter li img{width: 400px !important;}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/assets/index/images/1.jpg b/public/assets/index/images/1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..206733870d87809d893c2fc609bcdb683c743227
GIT binary patch
literal 73056
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