Merge pull request #287 from henrywhitaker3/alpha-docker

This commit is contained in:
Henry Whitaker
2020-08-28 20:52:32 +01:00
committed by GitHub
81 changed files with 992 additions and 584 deletions

View File

@@ -1,6 +1,6 @@
# Speedtest Tracker
[![Docker pulls](https://img.shields.io/docker/pulls/henrywhitaker3/speedtest-tracker?style=flat-square)](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Stable?label=master&logo=github&style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Dev?label=dev&logo=github&style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![last_commit](https://img.shields.io/github/last-commit/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) [![issues](https://img.shields.io/github/issues/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/issues) [![commit_freq](https://img.shields.io/github/commit-activity/m/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) ![version](https://img.shields.io/badge/version-v1.9.4-success?style=flat-square) [![license](https://img.shields.io/github/license/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/blob/master/LICENSE)
[![Docker pulls](https://img.shields.io/docker/pulls/henrywhitaker3/speedtest-tracker?style=flat-square)](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Stable?label=master&logo=github&style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Dev?label=dev&logo=github&style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![last_commit](https://img.shields.io/github/last-commit/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) [![issues](https://img.shields.io/github/issues/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/issues) [![commit_freq](https://img.shields.io/github/commit-activity/m/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) ![version](https://img.shields.io/badge/version-v1.9.5-success?style=flat-square) [![license](https://img.shields.io/github/license/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/blob/master/LICENSE)
This program runs a speedtest check every hour and graphs the results. The back-end is written in [Laravel](https://laravel.com/) and the front-end uses [React](https://reactjs.org/). It uses [Ookla's Speedtest cli](https://www.speedtest.net/apps/cli) to get the data and uses [Chart.js](https://www.chartjs.org/) to plot the results.

View File

@@ -1,9 +1,11 @@
# Speedtest Tracker
[![Docker pulls](https://img.shields.io/docker/pulls/henrywhitaker3/speedtest-tracker?style=flat-square)](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Stable?label=master&logo=github&style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Dev?label=dev&logo=github&style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![last_commit](https://img.shields.io/github/last-commit/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) [![issues](https://img.shields.io/github/issues/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/issues) [![commit_freq](https://img.shields.io/github/commit-activity/m/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) ![version](https://img.shields.io/badge/version-v1.9.4-success?style=flat-square) [![license](https://img.shields.io/github/license/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/blob/master/LICENSE)
[![Docker pulls](https://img.shields.io/docker/pulls/henrywhitaker3/speedtest-tracker?style=flat-square)](https://hub.docker.com/r/henrywhitaker3/speedtest-tracker) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Stable?label=master&logo=github&style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/henrywhitaker3/Speedtest-Tracker/Dev?label=dev&logo=github&style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/actions) [![last_commit](https://img.shields.io/github/last-commit/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) [![issues](https://img.shields.io/github/issues/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/issues) [![commit_freq](https://img.shields.io/github/commit-activity/m/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/commits) ![version](https://img.shields.io/badge/version-v1.9.5-success?style=flat-square) [![license](https://img.shields.io/github/license/henrywhitaker3/Speedtest-Tracker?style=flat-square)](https://github.com/henrywhitaker3/Speedtest-Tracker/blob/master/LICENSE)
This program runs a speedtest check every hour and graphs the results. The back-end is written in [Laravel](https://laravel.com/) and the front-end uses [React](https://reactjs.org/). It uses the [Ookla's speedtest cli](https://www.speedtest.net/apps/cli) package to get the data and uses [Chart.js](https://www.chartjs.org/) to plot the results.
A demo can be found [here](https://speedtest.plexmox.com)
Disclaimer: You will need to accept Ookla's EULA and privacy agreements in order to use this container.
![speedtest](https://user-images.githubusercontent.com/36062479/78822484-a82b8300-79ca-11ea-8525-fdeae496a0bd.gif)

View File

@@ -4,6 +4,7 @@ namespace App\Helpers;
use App\Events\TestNotificationEvent;
use App\Setting;
use Cache;
use Carbon\Carbon;
class SettingsHelper {
@@ -53,6 +54,10 @@ class SettingsHelper {
]);
}
if($name == 'show_failed_tests_on_graph') {
Cache::flush();
}
return $setting;
}

View File

@@ -63,6 +63,14 @@ class SpeedtestController extends Controller
$ttl = Carbon::now()->addDays(1);
$data = Cache::remember('speedtest-days-' . $days, $ttl, function () use ($days) {
$showFailed = (bool)SettingsHelper::get('show_failed_tests_on_graph')->value;
if($showFailed === true) {
return Speedtest::where('created_at', '>=', Carbon::now()->subDays($days))
->orderBy('created_at', 'asc')
->get();
}
return Speedtest::where('created_at', '>=', Carbon::now()->subDays($days))
->where('failed', false)
->orderBy('created_at', 'asc')

View File

@@ -1,4 +1,14 @@
{
"1.9.5": [
{
"description": "Added toggle to show failed tests on graphs.",
"link": ""
},
{
"description": "Updated dependencies.",
"link": ""
}
],
"1.9.4": [
{
"description": "Changed integration config loading.",

View File

@@ -1149,16 +1149,16 @@
},
{
"name": "laravel/framework",
"version": "v7.25.0",
"version": "v7.26.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "fdf3d4a40447eb286ba3820768306cae64bcc0b3"
"reference": "f64299a11dedaaadf1cfff07b2b3220a9b791837"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/fdf3d4a40447eb286ba3820768306cae64bcc0b3",
"reference": "fdf3d4a40447eb286ba3820768306cae64bcc0b3",
"url": "https://api.github.com/repos/laravel/framework/zipball/f64299a11dedaaadf1cfff07b2b3220a9b791837",
"reference": "f64299a11dedaaadf1cfff07b2b3220a9b791837",
"shasum": ""
},
"require": {
@@ -1264,6 +1264,7 @@
"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).",
"predis/predis": "Required to use the predis connector (^1.1.2).",
"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).",
@@ -1302,30 +1303,30 @@
"framework",
"laravel"
],
"time": "2020-08-11T13:43:10+00:00"
"time": "2020-08-25T13:44:44+00:00"
},
{
"name": "laravel/slack-notification-channel",
"version": "v2.1.0",
"version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/slack-notification-channel.git",
"reference": "d0a7f53342a5daa74e43e1b08dc8a7e83db152d8"
"reference": "98e0fe5c8dda645e6af914285af7b742e167462a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/slack-notification-channel/zipball/d0a7f53342a5daa74e43e1b08dc8a7e83db152d8",
"reference": "d0a7f53342a5daa74e43e1b08dc8a7e83db152d8",
"url": "https://api.github.com/repos/laravel/slack-notification-channel/zipball/98e0fe5c8dda645e6af914285af7b742e167462a",
"reference": "98e0fe5c8dda645e6af914285af7b742e167462a",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^6.0|^7.0",
"illuminate/notifications": "~5.8.0|^6.0|^7.0",
"illuminate/notifications": "~5.8.0|^6.0|^7.0|^8.0",
"php": "^7.1.3"
},
"require-dev": {
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^7.0|^8.0"
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
"type": "library",
"extra": {
@@ -1359,7 +1360,7 @@
"notifications",
"slack"
],
"time": "2020-06-30T20:34:53+00:00"
"time": "2020-08-25T18:21:34+00:00"
},
{
"name": "laravel/tinker",
@@ -1427,27 +1428,27 @@
},
{
"name": "laravel/ui",
"version": "v2.1.0",
"version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/ui.git",
"reference": "da9350533d0da60d5dc42fb7de9c561c72129bba"
"reference": "fb1404f04ece6eee128e3fb750d3a1e064238b33"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/ui/zipball/da9350533d0da60d5dc42fb7de9c561c72129bba",
"reference": "da9350533d0da60d5dc42fb7de9c561c72129bba",
"url": "https://api.github.com/repos/laravel/ui/zipball/fb1404f04ece6eee128e3fb750d3a1e064238b33",
"reference": "fb1404f04ece6eee128e3fb750d3a1e064238b33",
"shasum": ""
},
"require": {
"illuminate/console": "^7.0",
"illuminate/filesystem": "^7.0",
"illuminate/support": "^7.0",
"illuminate/console": "^7.0|^8.0",
"illuminate/filesystem": "^7.0|^8.0",
"illuminate/support": "^7.0|^8.0",
"php": "^7.2.5"
},
"require-dev": {
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^8.0"
"phpunit/phpunit": "^8.0|^9.0"
},
"type": "library",
"extra": {
@@ -1478,7 +1479,7 @@
"laravel",
"ui"
],
"time": "2020-06-30T20:56:33+00:00"
"time": "2020-08-25T18:30:43+00:00"
},
{
"name": "lcobucci/jwt",
@@ -1537,16 +1538,16 @@
},
{
"name": "league/commonmark",
"version": "1.5.3",
"version": "1.5.4",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "2574454b97e4103dc4e36917bd783b25624aefcd"
"reference": "21819c989e69bab07e933866ad30c7e3f32984ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2574454b97e4103dc4e36917bd783b25624aefcd",
"reference": "2574454b97e4103dc4e36917bd783b25624aefcd",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/21819c989e69bab07e933866ad30c7e3f32984ba",
"reference": "21819c989e69bab07e933866ad30c7e3f32984ba",
"shasum": ""
},
"require": {
@@ -1628,20 +1629,20 @@
"type": "tidelift"
}
],
"time": "2020-07-19T22:47:30+00:00"
"time": "2020-08-18T01:19:12+00:00"
},
{
"name": "league/flysystem",
"version": "1.1.0",
"version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "481c0174b9c99b189959e2bb9d6f52188ed1f692"
"reference": "9be3b16c877d477357c015cec057548cf9b2a14a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/481c0174b9c99b189959e2bb9d6f52188ed1f692",
"reference": "481c0174b9c99b189959e2bb9d6f52188ed1f692",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a",
"reference": "9be3b16c877d477357c015cec057548cf9b2a14a",
"shasum": ""
},
"require": {
@@ -1719,7 +1720,7 @@
"type": "other"
}
],
"time": "2020-08-09T15:57:10+00:00"
"time": "2020-08-23T07:39:11+00:00"
},
{
"name": "league/mime-type-detection",
@@ -1928,16 +1929,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.38.0",
"version": "2.39.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "d8f6a6a91d1eb9304527b040500f61923e97674b"
"reference": "0a41ea7f7fedacf307b7a339800e10356a042918"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d8f6a6a91d1eb9304527b040500f61923e97674b",
"reference": "d8f6a6a91d1eb9304527b040500f61923e97674b",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0a41ea7f7fedacf307b7a339800e10356a042918",
"reference": "0a41ea7f7fedacf307b7a339800e10356a042918",
"shasum": ""
},
"require": {
@@ -2013,7 +2014,7 @@
"type": "tidelift"
}
],
"time": "2020-08-04T19:12:46+00:00"
"time": "2020-08-24T12:35:58+00:00"
},
{
"name": "nikic/php-parser",

View File

@@ -7,7 +7,7 @@ return [
|--------------------------------------------------------------------------
*/
'version' => '1.9.4',
'version' => '1.9.5',
/*
|--------------------------------------------------------------------------

View File

@@ -0,0 +1,38 @@
<?php
use App\Helpers\SettingsHelper;
use App\Setting;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddShowFailedTestsSetting extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if(!SettingsHelper::get('show_failed_tests_on_graph')) {
Setting::create([
'name' => 'show_failed_tests_on_graph',
'value' => true,
'description' => 'If enabled, failed tests will appear on the graphs as 0.'
]);
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Setting::whereIn('name', [
'show_failed_tests_on_graph',
])->delete();
}
}

View File

@@ -0,0 +1,2 @@
31745619972e51c604523fedf270b3c3d4d5b86d {"key":"{\"terser\":\"4.8.0\",\"terser-webpack-plugin\":\"2.3.8\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":true,\"sourceMap\":true,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"compress\":{\"warnings\":false},\"output\":{\"comments\":false}}},\"nodeVersion\":\"v10.19.0\",\"filename\":\"\\u002Fjs\\u002Fapp.js\",\"contentHash\":\"37d44ec99ee4cfa70fd4\"}","integrity":"sha512-ReE/pJ/X9i8VQSgXx4BLOjqVeCVCloXYCX6GeQlUlZKEfxG9hgqBfoATQpf0ETzu9C/ZRuc3VFy3v1CSMQtUhA==","time":1598643612814,"size":2654476}

File diff suppressed because one or more lines are too long

View File

@@ -119,6 +119,10 @@ export default class Settings extends Component {
'value': 6
}
],
},
{
obj: e.show_failed_tests_on_graph,
type: 'checkbox'
}
]} />
</Col>

View File

@@ -5262,12 +5262,48 @@ return array(
'Tests\\Feature\\APISpeedtestTest' => $baseDir . '/tests/Feature/APISpeedtestTest.php',
'Tests\\Feature\\AppVersionTest' => $baseDir . '/tests/Feature/AppVersionTest.php',
'Tests\\Feature\\BackupTest' => $baseDir . '/tests/Feature/BackupTest.php',
'Tests\\Feature\\Commands\\AcceptEULACommandTest' => $baseDir . '/tests/Feature/Commands/AcceptEULACommandTest.php',
'Tests\\Feature\\Commands\\AppVersionTest' => $baseDir . '/tests/Feature/Commands/AppVersionTest.php',
'Tests\\Feature\\Commands\\AuthenticationCommandTest' => $baseDir . '/tests/Feature/Commands/AuthenticationCommandTest.php',
'Tests\\Feature\\Commands\\ClearOldSessionCommandTest' => $baseDir . '/tests/Feature/Commands/ClearOldSessionCommandTest.php',
'Tests\\Feature\\Commands\\ClearQueueCommandTest' => $baseDir . '/tests/Feature/Commands/ClearQueueCommandTest.php',
'Tests\\Feature\\Commands\\GetConfigCommandTest' => $baseDir . '/tests/Feature/Commands/GetConfigCommandTest.php',
'Tests\\Feature\\Commands\\SetSlackWebhookCommandTest' => $baseDir . '/tests/Feature/Commands/SetSlackWebhookCommandTest.php',
'Tests\\Feature\\Commands\\SetTelegramOptionsCommandTest' => $baseDir . '/tests/Feature/Commands/SetTelegramOptionsCommandTest.php',
'Tests\\Feature\\Commands\\SpeedtestOverviewCommandTest' => $baseDir . '/tests/Feature/Commands/SpeedtestOverviewCommandTest.php',
'Tests\\Feature\\Commands\\TestNotificationCommandTest' => $baseDir . '/tests/Feature/Commands/TestNotificationCommandTest.php',
'Tests\\Feature\\ConfigTest' => $baseDir . '/tests/Feature/ConfigTest.php',
'Tests\\Feature\\CronRuleTest' => $baseDir . '/tests/Feature/CronRuleTest.php',
'Tests\\Feature\\SetSlackWebhookTest' => $baseDir . '/tests/Feature/SetSlackWebhookTest.php',
'Tests\\Feature\\SettingsTest' => $baseDir . '/tests/Feature/SettingsTest.php',
'Tests\\Feature\\SpeedtestTest' => $baseDir . '/tests/Feature/SpeedtestTest.php',
'Tests\\TestCase' => $baseDir . '/tests/TestCase.php',
'Tests\\Unit\\Controllers\\IntegrationsController\\HealthcheckTest' => $baseDir . '/tests/Unit/Controllers/IntegrationsController/HealthcheckTest.php',
'Tests\\Unit\\Controllers\\IntegrationsController\\NotificationTest' => $baseDir . '/tests/Unit/Controllers/IntegrationsController/NotificationTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\DeleteTest' => $baseDir . '/tests/Unit/Controllers/SpeedtestController/DeleteTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\FailTest' => $baseDir . '/tests/Unit/Controllers/SpeedtestController/FailTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\IndexTest' => $baseDir . '/tests/Unit/Controllers/SpeedtestController/IndexTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\LatestTest' => $baseDir . '/tests/Unit/Controllers/SpeedtestController/LatestTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\RunTest' => $baseDir . '/tests/Unit/Controllers/SpeedtestController/RunTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\TimeTest' => $baseDir . '/tests/Unit/Controllers/SpeedtestController/TimeTest.php',
'Tests\\Unit\\Helpers\\NotificationsHelper\\ThresholdMessageTest' => $baseDir . '/tests/Unit/Helpers/NotificationsHelper/ThresholdMessageTest.php',
'Tests\\Unit\\Helpers\\SettingsHelper\\SettingsGetTest' => $baseDir . '/tests/Unit/Helpers/SettingsHelper/SettingsGetTest.php',
'Tests\\Unit\\Helpers\\SettingsHelper\\SettingsLoadIntegrationsConfigTest' => $baseDir . '/tests/Unit/Helpers/SettingsHelper/SettingsLoadIntegrationsConfigTest.php',
'Tests\\Unit\\Helpers\\SettingsHelper\\SettingsSetTest' => $baseDir . '/tests/Unit/Helpers/SettingsHelper/SettingsSetTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\AbsoluteThresholdTest' => $baseDir . '/tests/Unit/Helpers/SpeedtestHelper/AbsoluteThresholdTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\CheckOutputTest' => $baseDir . '/tests/Unit/Helpers/SpeedtestHelper/CheckOutputTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\FailureRateTest' => $baseDir . '/tests/Unit/Helpers/SpeedtestHelper/FailureRateTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\ParseUnitsTest' => $baseDir . '/tests/Unit/Helpers/SpeedtestHelper/ParseUnitsTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\PercentageThresholdTest' => $baseDir . '/tests/Unit/Helpers/SpeedtestHelper/PercentageThresholdTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\SpeedtestTest' => $baseDir . '/tests/Unit/Helpers/SpeedtestHelper/SpeedtestTest.php',
'Tests\\Unit\\Listeners\\SpeedtestCompleteListener\\SlackTest' => $baseDir . '/tests/Unit/Listeners/SpeedtestCompleteListener/SlackTest.php',
'Tests\\Unit\\Listeners\\SpeedtestCompleteListener\\TelegramTest' => $baseDir . '/tests/Unit/Listeners/SpeedtestCompleteListener/TelegramTest.php',
'Tests\\Unit\\Listeners\\SpeedtestFailedListener\\SlackTest' => $baseDir . '/tests/Unit/Listeners/SpeedtestFailedListener/SlackTest.php',
'Tests\\Unit\\Listeners\\SpeedtestFailedListener\\TelegramTest' => $baseDir . '/tests/Unit/Listeners/SpeedtestFailedListener/TelegramTest.php',
'Tests\\Unit\\Listeners\\SpeedtestOverviewListener\\SlackTest' => $baseDir . '/tests/Unit/Listeners/SpeedtestOverviewListener/SlackTest.php',
'Tests\\Unit\\Listeners\\SpeedtestOverviewListener\\TelegramTest' => $baseDir . '/tests/Unit/Listeners/SpeedtestOverviewListener/TelegramTest.php',
'Tests\\Unit\\Listeners\\TestNotificationListener\\SlackTest' => $baseDir . '/tests/Unit/Listeners/TestNotificationListener/SlackTest.php',
'Tests\\Unit\\Listeners\\TestNotificationListener\\TelegramTest' => $baseDir . '/tests/Unit/Listeners/TestNotificationListener/TelegramTest.php',
'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',
'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php',
'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php',

View File

@@ -5887,12 +5887,48 @@ class ComposerStaticInita54da675f7e63b2b06cffe7d297f5df8
'Tests\\Feature\\APISpeedtestTest' => __DIR__ . '/../..' . '/tests/Feature/APISpeedtestTest.php',
'Tests\\Feature\\AppVersionTest' => __DIR__ . '/../..' . '/tests/Feature/AppVersionTest.php',
'Tests\\Feature\\BackupTest' => __DIR__ . '/../..' . '/tests/Feature/BackupTest.php',
'Tests\\Feature\\Commands\\AcceptEULACommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/AcceptEULACommandTest.php',
'Tests\\Feature\\Commands\\AppVersionTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/AppVersionTest.php',
'Tests\\Feature\\Commands\\AuthenticationCommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/AuthenticationCommandTest.php',
'Tests\\Feature\\Commands\\ClearOldSessionCommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/ClearOldSessionCommandTest.php',
'Tests\\Feature\\Commands\\ClearQueueCommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/ClearQueueCommandTest.php',
'Tests\\Feature\\Commands\\GetConfigCommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/GetConfigCommandTest.php',
'Tests\\Feature\\Commands\\SetSlackWebhookCommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/SetSlackWebhookCommandTest.php',
'Tests\\Feature\\Commands\\SetTelegramOptionsCommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/SetTelegramOptionsCommandTest.php',
'Tests\\Feature\\Commands\\SpeedtestOverviewCommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/SpeedtestOverviewCommandTest.php',
'Tests\\Feature\\Commands\\TestNotificationCommandTest' => __DIR__ . '/../..' . '/tests/Feature/Commands/TestNotificationCommandTest.php',
'Tests\\Feature\\ConfigTest' => __DIR__ . '/../..' . '/tests/Feature/ConfigTest.php',
'Tests\\Feature\\CronRuleTest' => __DIR__ . '/../..' . '/tests/Feature/CronRuleTest.php',
'Tests\\Feature\\SetSlackWebhookTest' => __DIR__ . '/../..' . '/tests/Feature/SetSlackWebhookTest.php',
'Tests\\Feature\\SettingsTest' => __DIR__ . '/../..' . '/tests/Feature/SettingsTest.php',
'Tests\\Feature\\SpeedtestTest' => __DIR__ . '/../..' . '/tests/Feature/SpeedtestTest.php',
'Tests\\TestCase' => __DIR__ . '/../..' . '/tests/TestCase.php',
'Tests\\Unit\\Controllers\\IntegrationsController\\HealthcheckTest' => __DIR__ . '/../..' . '/tests/Unit/Controllers/IntegrationsController/HealthcheckTest.php',
'Tests\\Unit\\Controllers\\IntegrationsController\\NotificationTest' => __DIR__ . '/../..' . '/tests/Unit/Controllers/IntegrationsController/NotificationTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\DeleteTest' => __DIR__ . '/../..' . '/tests/Unit/Controllers/SpeedtestController/DeleteTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\FailTest' => __DIR__ . '/../..' . '/tests/Unit/Controllers/SpeedtestController/FailTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\IndexTest' => __DIR__ . '/../..' . '/tests/Unit/Controllers/SpeedtestController/IndexTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\LatestTest' => __DIR__ . '/../..' . '/tests/Unit/Controllers/SpeedtestController/LatestTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\RunTest' => __DIR__ . '/../..' . '/tests/Unit/Controllers/SpeedtestController/RunTest.php',
'Tests\\Unit\\Controllers\\SpeedtestController\\TimeTest' => __DIR__ . '/../..' . '/tests/Unit/Controllers/SpeedtestController/TimeTest.php',
'Tests\\Unit\\Helpers\\NotificationsHelper\\ThresholdMessageTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/NotificationsHelper/ThresholdMessageTest.php',
'Tests\\Unit\\Helpers\\SettingsHelper\\SettingsGetTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SettingsHelper/SettingsGetTest.php',
'Tests\\Unit\\Helpers\\SettingsHelper\\SettingsLoadIntegrationsConfigTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SettingsHelper/SettingsLoadIntegrationsConfigTest.php',
'Tests\\Unit\\Helpers\\SettingsHelper\\SettingsSetTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SettingsHelper/SettingsSetTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\AbsoluteThresholdTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SpeedtestHelper/AbsoluteThresholdTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\CheckOutputTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SpeedtestHelper/CheckOutputTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\FailureRateTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SpeedtestHelper/FailureRateTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\ParseUnitsTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SpeedtestHelper/ParseUnitsTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\PercentageThresholdTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SpeedtestHelper/PercentageThresholdTest.php',
'Tests\\Unit\\Helpers\\SpeedtestHelper\\SpeedtestTest' => __DIR__ . '/../..' . '/tests/Unit/Helpers/SpeedtestHelper/SpeedtestTest.php',
'Tests\\Unit\\Listeners\\SpeedtestCompleteListener\\SlackTest' => __DIR__ . '/../..' . '/tests/Unit/Listeners/SpeedtestCompleteListener/SlackTest.php',
'Tests\\Unit\\Listeners\\SpeedtestCompleteListener\\TelegramTest' => __DIR__ . '/../..' . '/tests/Unit/Listeners/SpeedtestCompleteListener/TelegramTest.php',
'Tests\\Unit\\Listeners\\SpeedtestFailedListener\\SlackTest' => __DIR__ . '/../..' . '/tests/Unit/Listeners/SpeedtestFailedListener/SlackTest.php',
'Tests\\Unit\\Listeners\\SpeedtestFailedListener\\TelegramTest' => __DIR__ . '/../..' . '/tests/Unit/Listeners/SpeedtestFailedListener/TelegramTest.php',
'Tests\\Unit\\Listeners\\SpeedtestOverviewListener\\SlackTest' => __DIR__ . '/../..' . '/tests/Unit/Listeners/SpeedtestOverviewListener/SlackTest.php',
'Tests\\Unit\\Listeners\\SpeedtestOverviewListener\\TelegramTest' => __DIR__ . '/../..' . '/tests/Unit/Listeners/SpeedtestOverviewListener/TelegramTest.php',
'Tests\\Unit\\Listeners\\TestNotificationListener\\SlackTest' => __DIR__ . '/../..' . '/tests/Unit/Listeners/TestNotificationListener/SlackTest.php',
'Tests\\Unit\\Listeners\\TestNotificationListener\\TelegramTest' => __DIR__ . '/../..' . '/tests/Unit/Listeners/TestNotificationListener/TelegramTest.php',
'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php',
'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php',
'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php',

View File

@@ -2117,17 +2117,17 @@
},
{
"name": "laravel/framework",
"version": "v7.25.0",
"version_normalized": "7.25.0.0",
"version": "v7.26.0",
"version_normalized": "7.26.0.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "fdf3d4a40447eb286ba3820768306cae64bcc0b3"
"reference": "f64299a11dedaaadf1cfff07b2b3220a9b791837"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/fdf3d4a40447eb286ba3820768306cae64bcc0b3",
"reference": "fdf3d4a40447eb286ba3820768306cae64bcc0b3",
"url": "https://api.github.com/repos/laravel/framework/zipball/f64299a11dedaaadf1cfff07b2b3220a9b791837",
"reference": "f64299a11dedaaadf1cfff07b2b3220a9b791837",
"shasum": ""
},
"require": {
@@ -2233,6 +2233,7 @@
"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).",
"predis/predis": "Required to use the predis connector (^1.1.2).",
"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).",
@@ -2240,7 +2241,7 @@
"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)."
},
"time": "2020-08-11T13:43:10+00:00",
"time": "2020-08-25T13:44:44+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -2276,29 +2277,29 @@
},
{
"name": "laravel/slack-notification-channel",
"version": "v2.1.0",
"version_normalized": "2.1.0.0",
"version": "v2.2.0",
"version_normalized": "2.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/slack-notification-channel.git",
"reference": "d0a7f53342a5daa74e43e1b08dc8a7e83db152d8"
"reference": "98e0fe5c8dda645e6af914285af7b742e167462a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/slack-notification-channel/zipball/d0a7f53342a5daa74e43e1b08dc8a7e83db152d8",
"reference": "d0a7f53342a5daa74e43e1b08dc8a7e83db152d8",
"url": "https://api.github.com/repos/laravel/slack-notification-channel/zipball/98e0fe5c8dda645e6af914285af7b742e167462a",
"reference": "98e0fe5c8dda645e6af914285af7b742e167462a",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^6.0|^7.0",
"illuminate/notifications": "~5.8.0|^6.0|^7.0",
"illuminate/notifications": "~5.8.0|^6.0|^7.0|^8.0",
"php": "^7.1.3"
},
"require-dev": {
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^7.0|^8.0"
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
"time": "2020-06-30T20:34:53+00:00",
"time": "2020-08-25T18:21:34+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -2401,30 +2402,30 @@
},
{
"name": "laravel/ui",
"version": "v2.1.0",
"version_normalized": "2.1.0.0",
"version": "v2.2.0",
"version_normalized": "2.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/ui.git",
"reference": "da9350533d0da60d5dc42fb7de9c561c72129bba"
"reference": "fb1404f04ece6eee128e3fb750d3a1e064238b33"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/ui/zipball/da9350533d0da60d5dc42fb7de9c561c72129bba",
"reference": "da9350533d0da60d5dc42fb7de9c561c72129bba",
"url": "https://api.github.com/repos/laravel/ui/zipball/fb1404f04ece6eee128e3fb750d3a1e064238b33",
"reference": "fb1404f04ece6eee128e3fb750d3a1e064238b33",
"shasum": ""
},
"require": {
"illuminate/console": "^7.0",
"illuminate/filesystem": "^7.0",
"illuminate/support": "^7.0",
"illuminate/console": "^7.0|^8.0",
"illuminate/filesystem": "^7.0|^8.0",
"illuminate/support": "^7.0|^8.0",
"php": "^7.2.5"
},
"require-dev": {
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^8.0"
"phpunit/phpunit": "^8.0|^9.0"
},
"time": "2020-06-30T20:56:33+00:00",
"time": "2020-08-25T18:30:43+00:00",
"type": "library",
"extra": {
"laravel": {
@@ -2515,17 +2516,17 @@
},
{
"name": "league/commonmark",
"version": "1.5.3",
"version_normalized": "1.5.3.0",
"version": "1.5.4",
"version_normalized": "1.5.4.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "2574454b97e4103dc4e36917bd783b25624aefcd"
"reference": "21819c989e69bab07e933866ad30c7e3f32984ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2574454b97e4103dc4e36917bd783b25624aefcd",
"reference": "2574454b97e4103dc4e36917bd783b25624aefcd",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/21819c989e69bab07e933866ad30c7e3f32984ba",
"reference": "21819c989e69bab07e933866ad30c7e3f32984ba",
"shasum": ""
},
"require": {
@@ -2548,7 +2549,7 @@
"scrutinizer/ocular": "^1.5",
"symfony/finder": "^4.2"
},
"time": "2020-07-19T22:47:30+00:00",
"time": "2020-08-18T01:19:12+00:00",
"bin": [
"bin/commonmark"
],
@@ -2612,17 +2613,17 @@
},
{
"name": "league/flysystem",
"version": "1.1.0",
"version_normalized": "1.1.0.0",
"version": "1.1.3",
"version_normalized": "1.1.3.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "481c0174b9c99b189959e2bb9d6f52188ed1f692"
"reference": "9be3b16c877d477357c015cec057548cf9b2a14a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/481c0174b9c99b189959e2bb9d6f52188ed1f692",
"reference": "481c0174b9c99b189959e2bb9d6f52188ed1f692",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a",
"reference": "9be3b16c877d477357c015cec057548cf9b2a14a",
"shasum": ""
},
"require": {
@@ -2653,7 +2654,7 @@
"spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
"srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
},
"time": "2020-08-09T15:57:10+00:00",
"time": "2020-08-23T07:39:11+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -3033,17 +3034,17 @@
},
{
"name": "nesbot/carbon",
"version": "2.38.0",
"version_normalized": "2.38.0.0",
"version": "2.39.0",
"version_normalized": "2.39.0.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "d8f6a6a91d1eb9304527b040500f61923e97674b"
"reference": "0a41ea7f7fedacf307b7a339800e10356a042918"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d8f6a6a91d1eb9304527b040500f61923e97674b",
"reference": "d8f6a6a91d1eb9304527b040500f61923e97674b",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0a41ea7f7fedacf307b7a339800e10356a042918",
"reference": "0a41ea7f7fedacf307b7a339800e10356a042918",
"shasum": ""
},
"require": {
@@ -3062,7 +3063,7 @@
"phpunit/phpunit": "^7.5 || ^8.0",
"squizlabs/php_codesniffer": "^3.4"
},
"time": "2020-08-04T19:12:46+00:00",
"time": "2020-08-24T12:35:58+00:00",
"bin": [
"bin/carbon"
],

View File

@@ -139,6 +139,7 @@
"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).",
"predis/predis": "Required to use the predis connector (^1.1.2).",
"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).",

View File

@@ -4,6 +4,7 @@ namespace Illuminate\Cache;
use Closure;
use Exception;
use Illuminate\Contracts\Cache\LockProvider;
use Illuminate\Contracts\Cache\Store;
use Illuminate\Database\ConnectionInterface;
use Illuminate\Database\PostgresConnection;
@@ -11,7 +12,7 @@ use Illuminate\Database\QueryException;
use Illuminate\Support\InteractsWithTime;
use Illuminate\Support\Str;
class DatabaseStore implements Store
class DatabaseStore implements LockProvider, Store
{
use InteractsWithTime, RetrievesMultipleKeys;

View File

@@ -66,7 +66,7 @@ trait CallsCommands
protected function createInputFromArguments(array $arguments)
{
return tap(new ArrayInput(array_merge($this->context(), $arguments)), function ($input) {
if ($input->hasParameterOption(['--no-interaction'], true)) {
if ($input->getParameterOption('--no-interaction')) {
$input->setInteractive(false);
}
});

View File

@@ -28,11 +28,12 @@ class CallbackEvent extends Event
* @param \Illuminate\Console\Scheduling\EventMutex $mutex
* @param string $callback
* @param array $parameters
* @param \DateTimeZone|string|null $timezone
* @return void
*
* @throws \InvalidArgumentException
*/
public function __construct(EventMutex $mutex, $callback, array $parameters = [])
public function __construct(EventMutex $mutex, $callback, array $parameters = [], $timezone = null)
{
if (! is_string($callback) && ! is_callable($callback)) {
throw new InvalidArgumentException(
@@ -43,6 +44,7 @@ class CallbackEvent extends Event
$this->mutex = $mutex;
$this->callback = $callback;
$this->parameters = $parameters;
$this->timezone = $timezone;
}
/**

View File

@@ -91,7 +91,7 @@ class Schedule
public function call($callback, array $parameters = [])
{
$this->events[] = $event = new CallbackEvent(
$this->eventMutex, $callback, $parameters
$this->eventMutex, $callback, $parameters, $this->timezone
);
return $event;

View File

@@ -862,7 +862,7 @@ class Container implements ArrayAccess, ContainerContract
$results = [];
foreach ($dependencies as $dependency) {
// If this dependency has a override for this particular build we will use
// If the dependency has an override for this particular build we will use
// that instead as the value. Otherwise, we will continue with this run
// of resolutions and let reflection attempt to determine the result.
if ($this->hasParameterOverride($dependency)) {

View File

@@ -7,9 +7,9 @@ interface Authorizable
/**
* Determine if the entity has a given ability.
*
* @param string $ability
* @param iterable|string $abilities
* @param array|mixed $arguments
* @return bool
*/
public function can($ability, $arguments = []);
public function can($abilities, $arguments = []);
}

View File

@@ -10,6 +10,8 @@ interface Validator extends MessageProvider
* Run the validator's rules against its data.
*
* @return array
*
* @throws \Illuminate\Validation\ValidationException
*/
public function validate();
@@ -17,6 +19,8 @@ interface Validator extends MessageProvider
* Get the attributes and values that were validated.
*
* @return array
*
* @throws \Illuminate\Validation\ValidationException
*/
public function validated();

View File

@@ -33,7 +33,7 @@ class Connector
* @param array $options
* @return \PDO
*
* @throws \Exception
* @throws \Throwable
*/
public function createConnection($dsn, array $config, array $options)
{
@@ -92,7 +92,7 @@ class Connector
* @param array $options
* @return \PDO
*
* @throws \Exception
* @throws \Throwable
*/
protected function tryAgainIfCausedByLostConnection(Throwable $e, $dsn, $username, $password, $options)
{

View File

@@ -47,6 +47,8 @@ class PostgresConnector extends Connector implements ConnectorInterface
// determine if the option has been specified and run a statement if so.
$this->configureApplicationName($connection, $config);
$this->configureSynchronousCommit($connection, $config);
return $connection;
}
@@ -173,4 +175,20 @@ class PostgresConnector extends Connector implements ConnectorInterface
return $dsn;
}
/**
* Configure the synchronous_commit setting.
*
* @param \PDO $connection
* @param array $config
* @return void
*/
protected function configureSynchronousCommit($connection, array $config)
{
if (! isset($config['synchronous_commit'])) {
return;
}
$connection->prepare("set synchronous_commit to '{$config['synchronous_commit']}'")->execute();
}
}

View File

@@ -193,6 +193,10 @@ class Builder
return $this;
}
if ($this->model->getKeyType() === 'string') {
$id = (string) $id;
}
return $this->where($this->model->getQualifiedKeyName(), '=', $id);
}
@@ -210,6 +214,10 @@ class Builder
return $this;
}
if ($this->model->getKeyType() === 'string') {
$id = (string) $id;
}
return $this->where($this->model->getQualifiedKeyName(), '!=', $id);
}

View File

@@ -396,6 +396,8 @@ abstract class Model implements Arrayable, ArrayAccess, Jsonable, JsonSerializab
*
* @param string $key
* @return string
*
* @deprecated This method is deprecated and will be removed in a future Laravel version.
*/
protected function removeTableFromKey($key)
{

View File

@@ -1582,7 +1582,7 @@ class Builder
}
/**
* Adds a or where condition using row values.
* Adds an or where condition using row values.
*
* @param array $columns
* @param string $operator
@@ -1617,7 +1617,7 @@ class Builder
}
/**
* Add a "or where JSON contains" clause to the query.
* Add an "or where JSON contains" clause to the query.
*
* @param string $column
* @param mixed $value
@@ -1642,7 +1642,7 @@ class Builder
}
/**
* Add a "or where JSON not contains" clause to the query.
* Add an "or where JSON not contains" clause to the query.
*
* @param string $column
* @param mixed $value
@@ -1680,7 +1680,7 @@ class Builder
}
/**
* Add a "or where JSON length" clause to the query.
* Add an "or where JSON length" clause to the query.
*
* @param string $column
* @param mixed $operator
@@ -1829,7 +1829,7 @@ class Builder
}
/**
* Add a "or having" clause to the query.
* Add an "or having" clause to the query.
*
* @param string $column
* @param string|null $operator

View File

@@ -138,7 +138,7 @@ class FilesystemAdapter implements CloudFilesystemContract
try {
return $this->driver->read($path);
} catch (FileNotFoundException $e) {
throw new ContractFileNotFoundException($path, $e->getCode(), $e);
throw new ContractFileNotFoundException($e->getMessage(), $e->getCode(), $e);
}
}

View File

@@ -208,8 +208,10 @@ class FilesystemManager implements FactoryContract
$options = $config['options'] ?? [];
$streamReads = $config['stream_reads'] ?? false;
return $this->adapt($this->createFlysystem(
new S3Adapter(new S3Client($s3Config), $s3Config['bucket'], $root, $options), $config
new S3Adapter(new S3Client($s3Config), $s3Config['bucket'], $root, $options, $streamReads), $config
));
}

View File

@@ -33,7 +33,7 @@ class Application extends Container implements ApplicationContract, CachesConfig
*
* @var string
*/
const VERSION = '7.25.0';
const VERSION = '7.26.0';
/**
* The base path for the Laravel installation.

View File

@@ -51,8 +51,8 @@ class ResourceMakeCommand extends GeneratorCommand
protected function getStub()
{
return $this->collection()
? __DIR__.'/stubs/resource-collection.stub'
: __DIR__.'/stubs/resource.stub';
? $this->resolveStubPath('/stubs/resource-collection.stub')
: $this->resolveStubPath('/stubs/resource.stub');
}
/**
@@ -66,6 +66,19 @@ class ResourceMakeCommand extends GeneratorCommand
Str::endsWith($this->argument('name'), 'Collection');
}
/**
* Resolve the fully-qualified path to the stub.
*
* @param string $stub
* @return string
*/
protected function resolveStubPath($stub)
{
return file_exists($customPath = $this->laravel->basePath(trim($stub, '/')))
? $customPath
: __DIR__.$stub;
}
/**
* Get the default namespace for the class.
*

View File

@@ -38,6 +38,8 @@ class StubPublishCommand extends Command
__DIR__.'/stubs/model.pivot.stub' => $stubsPath.'/model.pivot.stub',
__DIR__.'/stubs/model.stub' => $stubsPath.'/model.stub',
__DIR__.'/stubs/request.stub' => $stubsPath.'/request.stub',
__DIR__.'/stubs/resource.stub' => $stubsPath.'/resource.stub',
__DIR__.'/stubs/resource-collection.stub' => $stubsPath.'/resource-collection.stub',
__DIR__.'/stubs/test.stub' => $stubsPath.'/test.stub',
__DIR__.'/stubs/test.unit.stub' => $stubsPath.'/test.unit.stub',
realpath(__DIR__.'/../../Database/Console/Factories/stubs/factory.stub') => $stubsPath.'/factory.stub',

View File

@@ -1,10 +1,10 @@
<?php
namespace DummyNamespace;
namespace {{ namespace }};
use Illuminate\Http\Resources\Json\ResourceCollection;
class DummyClass extends ResourceCollection
class {{ class }} extends ResourceCollection
{
/**
* Transform the resource collection into an array.

View File

@@ -1,10 +1,10 @@
<?php
namespace DummyNamespace;
namespace {{ namespace }};
use Illuminate\Http\Resources\Json\JsonResource;
class DummyClass extends JsonResource
class {{ class }} extends JsonResource
{
/**
* Transform the resource into an array.

View File

@@ -94,7 +94,7 @@ class Handler implements ExceptionHandlerContract
* @param \Throwable $e
* @return void
*
* @throws \Exception
* @throws \Throwable
*/
public function report(Throwable $e)
{

View File

@@ -20,31 +20,31 @@ class Inspiring
public static function quote()
{
return Collection::make([
'When there is no desire, all things are at peace. - Laozi',
'Simplicity is the ultimate sophistication. - Leonardo da Vinci',
'Simplicity is the essence of happiness. - Cedric Bledsoe',
'Smile, breathe, and go slowly. - Thich Nhat Hanh',
'Simplicity is an acquired taste. - Katharine Gerould',
'Well begun is half done. - Aristotle',
'He who is contented is rich. - Laozi',
'Very little is needed to make a happy life. - Marcus Antoninus',
'It is quality rather than quantity that matters. - Lucius Annaeus Seneca',
'Act only according to that maxim whereby you can, at the same time, will that it should become a universal law. - Immanuel Kant',
'Knowing is not enough; we must apply. Being willing is not enough; we must do. - Leonardo da Vinci',
'An unexamined life is not worth living. - Socrates',
'Be present above all else. - Naval Ravikant',
'Happiness is not something readymade. It comes from your own actions. - Dalai Lama',
'He who is contented is rich. - Laozi',
'I begin to speak only when I am certain what I will say is not better left unsaid - Cato the Younger',
'If you do not have a consistent goal in life, you can not live it in a consistent way. - Marcus Aurelius',
'It is not the man who has too little, but the man who craves more, that is poor. - Seneca',
'It is quality rather than quantity that matters. - Lucius Annaeus Seneca',
'Knowing is not enough; we must apply. Being willing is not enough; we must do. - Leonardo da Vinci',
'Let all your things have their places; let each part of your business have its time. - Benjamin Franklin',
'No surplus words or unnecessary actions. - Marcus Aurelius',
'Order your soul. Reduce your wants. - Augustine',
'People find pleasure in different ways. I find it in keeping my mind clear. - Marcus Aurelius',
'Simplicity is an acquired taste. - Katharine Gerould',
'Simplicity is the consequence of refined emotions. - Jean D\'Alembert',
'Simplicity is the essence of happiness. - Cedric Bledsoe',
'Simplicity is the ultimate sophistication. - Leonardo da Vinci',
'Smile, breathe, and go slowly. - Thich Nhat Hanh',
'The only way to do great work is to love what you do. - Steve Jobs',
'The whole future lies in uncertainty: live immediately. - Seneca',
'Very little is needed to make a happy life. - Marcus Antoninus',
'Waste no more time arguing what a good man should be, be one. - Marcus Aurelius',
'It is not the man who has too little, but the man who craves more, that is poor. - Seneca',
'I begin to speak only when I am certain what I will say is not better left unsaid - Cato the Younger',
'Order your soul. Reduce your wants. - Augustine',
'Be present above all else. - Naval Ravikant',
'Let all your things have their places; let each part of your business have its time. - Benjamin Franklin',
'If you do not have a consistent goal in life, you can not live it in a consistent way. - Marcus Aurelius',
'No surplus words or unnecessary actions. - Marcus Aurelius',
'People find pleasure in different ways. I find it in keeping my mind clear. - Marcus Aurelius',
'Simplicity is the consequence of refined emotions. - Jean D\'Alembert',
'Well begun is half done. - Aristotle',
'When there is no desire, all things are at peace. - Laozi',
])->random();
}
}

View File

@@ -60,13 +60,13 @@ class ArgonHasher extends AbstractHasher implements HasherContract
*/
public function make($value, array $options = [])
{
$hash = password_hash($value, $this->algorithm(), [
$hash = @password_hash($value, $this->algorithm(), [
'memory_cost' => $this->memory($options),
'time_cost' => $this->time($options),
'threads' => $this->threads($options),
]);
if ($hash === false) {
if (! is_string($hash)) {
throw new RuntimeException('Argon2 hashing not supported.');
}

View File

@@ -525,7 +525,7 @@ class PendingRequest
* @param array $options
* @return \Illuminate\Http\Client\Response
*
* @throws \Exception
* @throws \Throwable
*/
public function send(string $method, string $url, array $options = [])
{

View File

@@ -106,6 +106,22 @@ trait InteractsWithInput
return Arr::hasAny($input, $keys);
}
/**
* Apply the callback if the request contains the given input item key.
*
* @param string $key
* @param callable $callback
* @return $this|mixed
*/
public function whenHas($key, callable $callback)
{
if ($this->has($key)) {
return $callback(data_get($this->all(), $key)) ?: $this;
}
return $this;
}
/**
* Determine if the request contains a non-empty value for an input item.
*
@@ -163,6 +179,22 @@ trait InteractsWithInput
return false;
}
/**
* Apply the callback if the request contains a non-empty value for the given input item key.
*
* @param string $key
* @param callable $callback
* @return $this|mixed
*/
public function whenFilled($key, callable $callback)
{
if ($this->filled($key)) {
return $callback(data_get($this->all(), $key)) ?: $this;
}
return $this;
}
/**
* Determine if the request is missing a given input item key.
*

View File

@@ -109,7 +109,7 @@ class SyncQueue extends Queue implements QueueContract
* @param \Throwable $e
* @return void
*
* @throws \Exception
* @throws \Throwable
*/
protected function handleException(Job $queueJob, Throwable $e)
{

View File

@@ -2,9 +2,6 @@
namespace Illuminate\Redis\Connections;
/**
* @deprecated Predis is no longer maintained by its original author
*/
class PredisClusterConnection extends PredisConnection
{
//

View File

@@ -9,7 +9,6 @@ use Predis\Connection\Aggregate\ClusterInterface;
/**
* @mixin \Predis\Client
* @deprecated Predis is no longer maintained by its original author
*/
class PredisConnection extends Connection implements ConnectionContract
{

View File

@@ -56,7 +56,7 @@ class PhpRedisConnector implements Connector
*/
protected function buildClusterConnectionString(array $server)
{
return $server['host'].':'.$server['port'].'?'.Arr::query(Arr::only($server, [
return $this->formatHost($server).':'.$server['port'].'?'.Arr::query(Arr::only($server, [
'database', 'password', 'prefix', 'read_timeout',
]));
}
@@ -116,7 +116,7 @@ class PhpRedisConnector implements Connector
$persistent = $config['persistent'] ?? false;
$parameters = [
$config['host'],
$this->formatHost($config),
$config['port'],
Arr::get($config, 'timeout', 0.0),
$persistent ? Arr::get($config, 'persistent_id', null) : null,
@@ -173,4 +173,19 @@ class PhpRedisConnector implements Connector
}
});
}
/**
* Format the host using the scheme if available.
*
* @param array $options
* @return string
*/
protected function formatHost(array $options)
{
if (isset($options['scheme'])) {
return "{$options['scheme']}://{$options['host']}";
}
return $options['host'];
}
}

View File

@@ -8,9 +8,6 @@ use Illuminate\Redis\Connections\PredisConnection;
use Illuminate\Support\Arr;
use Predis\Client;
/**
* @deprecated Predis is no longer maintained by its original author
*/
class PredisConnector implements Connector
{
/**

View File

@@ -188,7 +188,7 @@ class RedisManager implements Factory
$driver = strtolower($parsed['driver'] ?? '');
if (in_array($driver, ['tcp', 'tls'])) {
$parsed['host'] = "{$driver}://{$parsed['host']}";
$parsed['scheme'] = $driver;
}
return array_filter($parsed, function ($key) {

View File

@@ -25,7 +25,7 @@
},
"suggest": {
"ext-redis": "Required to use the phpredis connector (^4.0|^5.0).",
"predis/predis": "Required to use the predis connector (^1.0)."
"predis/predis": "Required to use the predis connector (^1.1.2)."
},
"extra": {
"branch-alias": {

View File

@@ -180,6 +180,15 @@ class RouteRegistrar
$action = ['uses' => $action];
}
if (is_array($action) &&
is_callable($action) &&
! Arr::isAssoc($action)) {
$action = [
'uses' => $action[0].'@'.$action[1],
'controller' => $action[0].'@'.$action[1],
];
}
return array_merge($this->attributes, $action);
}

View File

@@ -17,6 +17,8 @@ class ConfigurationUrlParser
'postgres' => 'pgsql',
'postgresql' => 'pgsql',
'sqlite3' => 'sqlite',
'redis' => 'tcp',
'rediss' => 'tls',
];
/**

View File

@@ -21,6 +21,7 @@ use Illuminate\Http\Client\Factory;
* @method static \Illuminate\Http\Client\PendingRequest stub(callable $callback)
* @method static \Illuminate\Http\Client\PendingRequest timeout(int $seconds)
* @method static \Illuminate\Http\Client\PendingRequest withBasicAuth(string $username, string $password)
* @method static \Illuminate\Http\Client\PendingRequest withBody(resource|string $content, string $contentType)
* @method static \Illuminate\Http\Client\PendingRequest withCookies(array $cookies, string $domain)
* @method static \Illuminate\Http\Client\PendingRequest withDigestAuth(string $username, string $password)
* @method static \Illuminate\Http\Client\PendingRequest withHeaders(array $headers)

View File

@@ -248,9 +248,9 @@ class LazyCollection implements Enumerable
*/
public function countBy($countBy = null)
{
if (is_null($countBy)) {
$countBy = $this->identity();
}
$countBy = is_null($countBy)
? $this->identity()
: $this->valueRetriever($countBy);
return new static(function () use ($countBy) {
$counts = [];

View File

@@ -181,8 +181,8 @@ trait EnumeratesValues
*/
public function dump()
{
(new static(func_get_args()))
->push($this)
(new Collection(func_get_args()))
->push($this->all())
->each(function ($item) {
VarDumper::dump($item);
});

View File

@@ -729,7 +729,7 @@ class TestResponse implements ArrayAccess
PHPUnit::assertNotEmpty($errors, 'No validation errors were provided.');
$jsonErrors = $this->json()[$responseKey] ?? [];
$jsonErrors = Arr::get($this->json(), $responseKey) ?? [];
$errorMessage = $jsonErrors
? 'Response has the following JSON validation errors:'.

View File

@@ -563,7 +563,7 @@ trait ValidatesAttributes
[1, 1], array_filter(sscanf($parameters['ratio'], '%f/%d'))
);
$precision = 1 / max($width, $height);
$precision = 1 / (max($width, $height) + 1);
return abs($numerator / $denominator - $width / $height) > $precision;
}
@@ -656,6 +656,8 @@ trait ValidatesAttributes
return new FilterEmailValidation();
} elseif ($validation === 'filter_unicode') {
return FilterEmailValidation::unicode();
} elseif (is_string($validation) && class_exists($validation)) {
return $this->container->make($validation);
}
})
->values()

View File

@@ -776,7 +776,11 @@ class Validator implements ValidatorContract
$this->passes();
}
$attribute = str_replace('__asterisk__', '*', $attribute);
$attribute = str_replace(
[$this->dotPlaceholder, '__asterisk__'],
['.', '*'],
$attribute
);
if (in_array($rule, $this->excludeRules)) {
return $this->excludeAttribute($attribute);

View File

@@ -8,6 +8,7 @@ use Illuminate\Contracts\View\Factory;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Support\Str;
use Illuminate\View\AnonymousComponent;
use Illuminate\View\ViewFinderInterface;
use InvalidArgumentException;
use ReflectionClass;
@@ -237,7 +238,7 @@ class ComponentTagCompiler
return $class;
}
if ($viewFactory->exists($view = "components.{$component}")) {
if ($viewFactory->exists($view = $this->guessViewName($component))) {
return $view;
}
@@ -265,6 +266,25 @@ class ComponentTagCompiler
return $namespace.'View\\Components\\'.implode('\\', $componentPieces);
}
/**
* Guess the view name for the given component.
*
* @param string $name
* @return string
*/
public function guessViewName($name)
{
$prefix = 'components.';
$delimiter = ViewFinderInterface::HINT_PATH_DELIMITER;
if (Str::contains($name, $delimiter)) {
return Str::replaceFirst($delimiter, $delimiter.$prefix, $name);
}
return $prefix.$name;
}
/**
* Partition the data and extra attributes from the given array of attributes.
*

View File

@@ -118,6 +118,19 @@ class ComponentAttributeBag implements ArrayAccess, Htmlable, IteratorAggregate
});
}
/**
* Return a bag of attributes with keys that do not start with the given value / pattern.
*
* @param string $string
* @return static
*/
public function whereDoesntStartWith($string)
{
return $this->reject(function ($value, $key) use ($string) {
return Str::startsWith($key, $string);
});
}
/**
* Return a bag of attributes that have keys starting with the given value / pattern.
*

View File

@@ -12,11 +12,11 @@
"require": {
"php": "^7.1.3",
"guzzlehttp/guzzle": "^6.0|^7.0",
"illuminate/notifications": "~5.8.0|^6.0|^7.0"
"illuminate/notifications": "~5.8.0|^6.0|^7.0|^8.0"
},
"require-dev": {
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^7.0|^8.0"
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
"autoload": {
"psr-4": {

View File

@@ -1,6 +1,15 @@
# Release Notes
## [Unreleased](https://github.com/laravel/ui/compare/v2.1.0...2.x)
## [Unreleased](https://github.com/laravel/ui/compare/v2.2.0...2.x)
## [v2.2.0 (2020-08-25)](https://github.com/laravel/ui/compare/v2.1.0...v2.2.0)
### Added
- Laravel 8 support ([4a0db5b](https://github.com/laravel/ui/commit/4a0db5b2e5d3c032b0f213e847008d39c8c7ce45))
### Fixed
- Remove caret and replace `display: none` with `d-none` ([#135](https://github.com/laravel/ui/pull/135))
## [v2.1.0 (2020-06-30)](https://github.com/laravel/ui/compare/v2.0.3...v2.1.0)

View File

@@ -11,13 +11,13 @@
],
"require": {
"php": "^7.2.5",
"illuminate/console": "^7.0",
"illuminate/filesystem": "^7.0",
"illuminate/support": "^7.0"
"illuminate/console": "^7.0|^8.0",
"illuminate/filesystem": "^7.0|^8.0",
"illuminate/support": "^7.0|^8.0"
},
"require-dev": {
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^8.0"
"phpunit/phpunit": "^8.0|^9.0"
},
"autoload": {
"psr-4": {

View File

@@ -51,7 +51,7 @@
@else
<li class="nav-item dropdown">
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
{{ Auth::user()->name }} <span class="caret"></span>
{{ Auth::user()->name }}
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
@@ -61,7 +61,7 @@
{{ __('Logout') }}
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
@csrf
</form>
</div>

View File

@@ -4,6 +4,13 @@ Updates should follow the [Keep a CHANGELOG](https://keepachangelog.com/) princi
## [Unreleased][unreleased]
## [1.5.4] - 2020-08-17
### Fixed
- Fixed footnote ID configuration not taking effect (#524, #530)
- Fixed heading permalink slugs not being unique (#531, #534)
## [1.5.3] - 2020-07-19
### Fixed
@@ -363,7 +370,8 @@ No changes were made since 1.0.0-rc1.
- Removed `DelimiterStack::iterateByCharacters()` (use the new `processDelimiters()` method instead)
- Removed the protected `DelimiterStack::findMatchingOpener()` method
[unreleased]: https://github.com/thephpleague/commonmark/compare/1.5.3...1.5
[unreleased]: https://github.com/thephpleague/commonmark/compare/1.5.4...1.5
[1.5.4]: https://github.com/thephpleague/commonmark/compare/1.5.3...1.5.4
[1.5.3]: https://github.com/thephpleague/commonmark/compare/1.5.2...1.5.3
[1.5.2]: https://github.com/thephpleague/commonmark/compare/1.5.1...1.5.2
[1.5.1]: https://github.com/thephpleague/commonmark/compare/1.5.0...1.5.1

View File

@@ -27,7 +27,7 @@ class CommonMarkConverter extends Converter
* @deprecated in 1.5.0 and will be removed from 2.0.0.
* Use \Composer\InstalledVersions provided by composer-runtime-api instead.
*/
public const VERSION = '1.5.3';
public const VERSION = '1.5.4';
/** @var EnvironmentInterface */
protected $environment;

View File

@@ -21,9 +21,14 @@ use League\CommonMark\Extension\Footnote\Node\FootnoteBackref;
use League\CommonMark\Extension\Footnote\Node\FootnoteRef;
use League\CommonMark\Inline\Element\Text;
use League\CommonMark\Reference\Reference;
use League\CommonMark\Util\ConfigurationAwareInterface;
use League\CommonMark\Util\ConfigurationInterface;
final class AnonymousFootnotesListener
final class AnonymousFootnotesListener implements ConfigurationAwareInterface
{
/** @var ConfigurationInterface */
private $config;
public function onDocumentParsed(DocumentParsedEvent $event): void
{
$document = $event->getDocument();
@@ -36,7 +41,7 @@ final class AnonymousFootnotesListener
$existingReference = $node->getReference();
$reference = new Reference(
$existingReference->getLabel(),
'#fnref:' . $existingReference->getLabel(),
'#' . $this->config->get('footnote/ref_id_prefix', 'fnref:') . $existingReference->getLabel(),
$existingReference->getTitle()
);
$footnote = new Footnote($reference);
@@ -48,4 +53,9 @@ final class AnonymousFootnotesListener
}
}
}
public function setConfiguration(ConfigurationInterface $config): void
{
$this->config = $config;
}
}

View File

@@ -20,9 +20,14 @@ use League\CommonMark\Extension\Footnote\Node\Footnote;
use League\CommonMark\Extension\Footnote\Node\FootnoteBackref;
use League\CommonMark\Extension\Footnote\Node\FootnoteContainer;
use League\CommonMark\Reference\Reference;
use League\CommonMark\Util\ConfigurationAwareInterface;
use League\CommonMark\Util\ConfigurationInterface;
final class GatherFootnotesListener
final class GatherFootnotesListener implements ConfigurationAwareInterface
{
/** @var ConfigurationInterface */
private $config;
public function onDocumentParsed(DocumentParsedEvent $event): void
{
$document = $event->getDocument();
@@ -53,12 +58,15 @@ final class GatherFootnotesListener
* Look for all footnote refs pointing to this footnote
* and create each footnote backrefs.
*/
$backrefs = $document->getData('#fn:' . $node->getReference()->getDestination(), []);
$backrefs = $document->getData(
'#' . $this->config->get('footnote/footnote_id_prefix', 'fn:') . $node->getReference()->getDestination(),
[]
);
/** @var Reference $backref */
foreach ($backrefs as $backref) {
$node->addBackref(new FootnoteBackref(new Reference(
$backref->getLabel(),
'#fnref:' . $backref->getLabel(),
'#' . $this->config->get('footnote/ref_id_prefix', 'fnref:') . $backref->getLabel(),
$backref->getTitle()
)));
}
@@ -84,4 +92,9 @@ final class GatherFootnotesListener
return $footnoteContainer;
}
public function setConfiguration(ConfigurationInterface $config): void
{
$this->config = $config;
}
}

View File

@@ -20,9 +20,14 @@ use League\CommonMark\InlineParserContext;
use League\CommonMark\Normalizer\SlugNormalizer;
use League\CommonMark\Normalizer\TextNormalizerInterface;
use League\CommonMark\Reference\Reference;
use League\CommonMark\Util\ConfigurationAwareInterface;
use League\CommonMark\Util\ConfigurationInterface;
final class AnonymousFootnoteRefParser implements InlineParserInterface
final class AnonymousFootnoteRefParser implements InlineParserInterface, ConfigurationAwareInterface
{
/** @var ConfigurationInterface */
private $config;
/** @var TextNormalizerInterface */
private $slugNormalizer;
@@ -66,6 +71,15 @@ final class AnonymousFootnoteRefParser implements InlineParserInterface
$refLabel = $this->slugNormalizer->normalize($label);
$refLabel = \mb_substr($refLabel, 0, 20);
return new Reference($refLabel, '#fn:' . $refLabel, $label);
return new Reference(
$refLabel,
'#' . $this->config->get('footnote/footnote_id_prefix', 'fn:') . $refLabel,
$label
);
}
public function setConfiguration(ConfigurationInterface $config): void
{
$this->config = $config;
}
}

View File

@@ -18,9 +18,14 @@ use League\CommonMark\Extension\Footnote\Node\FootnoteRef;
use League\CommonMark\Inline\Parser\InlineParserInterface;
use League\CommonMark\InlineParserContext;
use League\CommonMark\Reference\Reference;
use League\CommonMark\Util\ConfigurationAwareInterface;
use League\CommonMark\Util\ConfigurationInterface;
final class FootnoteRefParser implements InlineParserInterface
final class FootnoteRefParser implements InlineParserInterface, ConfigurationAwareInterface
{
/** @var ConfigurationInterface */
private $config;
public function getCharacters(): array
{
return ['['];
@@ -53,6 +58,15 @@ final class FootnoteRefParser implements InlineParserInterface
private function createReference(string $label): Reference
{
return new Reference($label, '#fn:' . $label, $label);
return new Reference(
$label,
'#' . $this->config->get('footnote/footnote_id_prefix', 'fn:') . $label,
$label
);
}
public function setConfiguration(ConfigurationInterface $config): void
{
$this->config = $config;
}
}

View File

@@ -11,6 +11,7 @@
namespace League\CommonMark\Extension\HeadingPermalink;
use League\CommonMark\Block\Element\Document;
use League\CommonMark\Block\Element\Heading;
use League\CommonMark\Event\DocumentParsedEvent;
use League\CommonMark\Exception\InvalidOptionException;
@@ -63,7 +64,7 @@ final class HeadingPermalinkProcessor implements ConfigurationAwareInterface
while ($event = $walker->next()) {
$node = $event->getNode();
if ($node instanceof Heading && $event->isEntering()) {
$this->addHeadingLink($node);
$this->addHeadingLink($node, $e->getDocument());
}
}
}
@@ -82,7 +83,7 @@ final class HeadingPermalinkProcessor implements ConfigurationAwareInterface
$this->slugNormalizer = $generator;
}
private function addHeadingLink(Heading $heading): void
private function addHeadingLink(Heading $heading, Document $document): void
{
$text = $this->getChildText($heading);
if ($this->slugNormalizer instanceof DeprecatedSlugGeneratorInterface) {
@@ -91,6 +92,8 @@ final class HeadingPermalinkProcessor implements ConfigurationAwareInterface
$slug = $this->slugNormalizer->normalize($text, $heading);
}
$slug = $this->ensureUnique($slug, $document);
$headingLinkAnchor = new HeadingPermalink($slug);
switch ($this->config->get('heading_permalink/insert', 'before')) {
@@ -123,4 +126,23 @@ final class HeadingPermalinkProcessor implements ConfigurationAwareInterface
return $text;
}
private function ensureUnique(string $proposed, Document $document): string
{
// Quick path, it's a unique ID
if (!isset($document->data['heading_ids'][$proposed])) {
$document->data['heading_ids'][$proposed] = true;
return $proposed;
}
$extension = 0;
do {
++$extension;
} while (isset($document->data['heading_ids']["$proposed-$extension"]));
$document->data['heading_ids']["$proposed-$extension"] = true;
return "$proposed-$extension";
}
}

View File

@@ -440,7 +440,13 @@ abstract class AbstractFtpAdapter extends AbstractAdapter
$path = $base === '' ? $name : $base . $this->separator . $name;
if ($type === 'dir') {
return compact('type', 'path');
$result = compact('type', 'path');
if ($this->enableTimestampsOnUnixListings) {
$timestamp = $this->normalizeUnixTimestamp($month, $day, $timeOrYear);
$result += compact('timestamp');
}
return $result;
}
$permissions = $this->normalizePermissions($permissions);
@@ -639,10 +645,7 @@ abstract class AbstractFtpAdapter extends AbstractAdapter
*/
public function getConnection()
{
$tries = 0;
while ( ! $this->isConnected() && $tries < 3) {
$tries++;
if ( ! $this->isConnected()) {
$this->disconnect();
$this->connect();
}
@@ -694,4 +697,9 @@ abstract class AbstractFtpAdapter extends AbstractAdapter
* @return bool
*/
abstract public function isConnected();
protected function escapePath($path)
{
return str_replace(['*', '[', ']'], ['\\*', '\\[', '\\]'], $path);
}
}

View File

@@ -2,7 +2,6 @@
namespace League\Flysystem\Adapter;
use ErrorException;
use League\Flysystem\Adapter\Polyfill\StreamedCopyTrait;
use League\Flysystem\AdapterInterface;
use League\Flysystem\Config;
@@ -130,6 +129,9 @@ class Ftp extends AbstractFtpAdapter
*/
public function connect()
{
$tries = 3;
start_connecting:
if ($this->ssl) {
$this->connection = @ftp_ssl_connect($this->getHost(), $this->getPort(), $this->getTimeout());
} else {
@@ -137,6 +139,10 @@ class Ftp extends AbstractFtpAdapter
}
if ( ! $this->connection) {
$tries--;
if ($tries > 0) goto start_connecting;
throw new ConnectionRuntimeException('Could not connect to host: ' . $this->getHost() . ', port:' . $this->getPort());
}
@@ -394,7 +400,7 @@ class Ftp extends AbstractFtpAdapter
return ['type' => 'dir', 'path' => $path];
}
$listing = $this->ftpRawlist('-A', str_replace('*', '\\*', $path));
$listing = $this->ftpRawlist('-A', $path);
if (empty($listing) || in_array('total 0', $listing, true)) {
return false;
@@ -490,8 +496,6 @@ class Ftp extends AbstractFtpAdapter
*/
protected function listDirectoryContents($directory, $recursive = true)
{
$directory = str_replace('*', '\\*', $directory);
if ($recursive && $this->recurseManually) {
return $this->listDirectoryContentsRecursive($directory);
}
@@ -560,6 +564,7 @@ class Ftp extends AbstractFtpAdapter
if ($this->isPureFtpd) {
$path = str_replace(' ', '\ ', $path);
$this->escapePath($path);
}
return ftp_rawlist($connection, $options . ' ' . $path);

View File

@@ -12,13 +12,16 @@ class Ftpd extends Ftp
if ($path === '') {
return ['type' => 'dir', 'path' => ''];
}
if (@ftp_chdir($this->getConnection(), $path) === true) {
$this->setConnectionRoot();
return ['type' => 'dir', 'path' => $path];
}
if ( ! ($object = ftp_raw($this->getConnection(), 'STAT ' . $path)) || count($object) < 3) {
$object = ftp_raw($this->getConnection(), 'STAT ' . $this->escapePath($path));
if ( ! $object || count($object) < 3) {
return false;
}
@@ -34,7 +37,7 @@ class Ftpd extends Ftp
*/
protected function listDirectoryContents($directory, $recursive = true)
{
$listing = ftp_rawlist($this->getConnection(), $directory, $recursive);
$listing = ftp_rawlist($this->getConnection(), $this->escapePath($directory), $recursive);
if ($listing === false || ( ! empty($listing) && substr($listing[0], 0, 5) === "ftpd:")) {
return [];

View File

@@ -74,7 +74,7 @@ class Filesystem implements FilesystemInterface
*/
public function writeStream($path, $resource, array $config = [])
{
if ( ! is_resource($resource)) {
if ( ! is_resource($resource) || get_resource_type($resource) !== 'stream') {
throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.');
}
@@ -107,7 +107,7 @@ class Filesystem implements FilesystemInterface
*/
public function putStream($path, $resource, array $config = [])
{
if ( ! is_resource($resource)) {
if ( ! is_resource($resource) || get_resource_type($resource) !== 'stream') {
throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.');
}
@@ -158,7 +158,7 @@ class Filesystem implements FilesystemInterface
*/
public function updateStream($path, $resource, array $config = [])
{
if ( ! is_resource($resource)) {
if ( ! is_resource($resource) || get_resource_type($resource) !== 'stream') {
throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.');
}

View File

@@ -37,7 +37,7 @@ class MimeType
*
* @param mixed $content
*
* @return string|null MIME Type or NULL if no mime type detected
* @return string MIME Type
*/
public static function detectByContent($content)
{
@@ -45,7 +45,7 @@ class MimeType
return static::detector()->detectMimeTypeFromBuffer($content);
}
return null;
return 'text/plain';
}
/**
@@ -53,7 +53,7 @@ class MimeType
*
* @param string $extension
*
* @return string|null MIME Type or NULL if no extension detected
* @return string MIME Type
*/
public static function detectByFileExtension($extension)
{
@@ -63,11 +63,11 @@ class MimeType
/**
* @param string $filename
*
* @return string|null MIME Type or NULL if no extension detected
* @return string MIME Type
*/
public static function detectByFilename($filename)
{
return static::detector()->detectMimeTypeFromPath($filename);
return static::detector()->detectMimeTypeFromPath($filename) ?: 'text/plain';
}
/**

View File

@@ -147,353 +147,353 @@ use DateTimeZone;
* @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment.
* @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium.
* @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium.
* @method Carbon years(int $value) Set current instance year to the given value.
* @method Carbon year(int $value) Set current instance year to the given value.
* @method Carbon setYears(int $value) Set current instance year to the given value.
* @method Carbon setYear(int $value) Set current instance year to the given value.
* @method Carbon months(int $value) Set current instance month to the given value.
* @method Carbon month(int $value) Set current instance month to the given value.
* @method Carbon setMonths(int $value) Set current instance month to the given value.
* @method Carbon setMonth(int $value) Set current instance month to the given value.
* @method Carbon days(int $value) Set current instance day to the given value.
* @method Carbon day(int $value) Set current instance day to the given value.
* @method Carbon setDays(int $value) Set current instance day to the given value.
* @method Carbon setDay(int $value) Set current instance day to the given value.
* @method Carbon hours(int $value) Set current instance hour to the given value.
* @method Carbon hour(int $value) Set current instance hour to the given value.
* @method Carbon setHours(int $value) Set current instance hour to the given value.
* @method Carbon setHour(int $value) Set current instance hour to the given value.
* @method Carbon minutes(int $value) Set current instance minute to the given value.
* @method Carbon minute(int $value) Set current instance minute to the given value.
* @method Carbon setMinutes(int $value) Set current instance minute to the given value.
* @method Carbon setMinute(int $value) Set current instance minute to the given value.
* @method Carbon seconds(int $value) Set current instance second to the given value.
* @method Carbon second(int $value) Set current instance second to the given value.
* @method Carbon setSeconds(int $value) Set current instance second to the given value.
* @method Carbon setSecond(int $value) Set current instance second to the given value.
* @method Carbon millis(int $value) Set current instance millisecond to the given value.
* @method Carbon milli(int $value) Set current instance millisecond to the given value.
* @method Carbon setMillis(int $value) Set current instance millisecond to the given value.
* @method Carbon setMilli(int $value) Set current instance millisecond to the given value.
* @method Carbon milliseconds(int $value) Set current instance millisecond to the given value.
* @method Carbon millisecond(int $value) Set current instance millisecond to the given value.
* @method Carbon setMilliseconds(int $value) Set current instance millisecond to the given value.
* @method Carbon setMillisecond(int $value) Set current instance millisecond to the given value.
* @method Carbon micros(int $value) Set current instance microsecond to the given value.
* @method Carbon micro(int $value) Set current instance microsecond to the given value.
* @method Carbon setMicros(int $value) Set current instance microsecond to the given value.
* @method Carbon setMicro(int $value) Set current instance microsecond to the given value.
* @method Carbon microseconds(int $value) Set current instance microsecond to the given value.
* @method Carbon microsecond(int $value) Set current instance microsecond to the given value.
* @method Carbon setMicroseconds(int $value) Set current instance microsecond to the given value.
* @method Carbon setMicrosecond(int $value) Set current instance microsecond to the given value.
* @method Carbon addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval).
* @method Carbon addYear() Add one year to the instance (using date interval).
* @method Carbon subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval).
* @method Carbon subYear() Sub one year to the instance (using date interval).
* @method Carbon addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval).
* @method Carbon addMonth() Add one month to the instance (using date interval).
* @method Carbon subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval).
* @method Carbon subMonth() Sub one month to the instance (using date interval).
* @method Carbon addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval).
* @method Carbon addDay() Add one day to the instance (using date interval).
* @method Carbon subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval).
* @method Carbon subDay() Sub one day to the instance (using date interval).
* @method Carbon addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval).
* @method Carbon addHour() Add one hour to the instance (using date interval).
* @method Carbon subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval).
* @method Carbon subHour() Sub one hour to the instance (using date interval).
* @method Carbon addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval).
* @method Carbon addMinute() Add one minute to the instance (using date interval).
* @method Carbon subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval).
* @method Carbon subMinute() Sub one minute to the instance (using date interval).
* @method Carbon addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval).
* @method Carbon addSecond() Add one second to the instance (using date interval).
* @method Carbon subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval).
* @method Carbon subSecond() Sub one second to the instance (using date interval).
* @method Carbon addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
* @method Carbon addMilli() Add one millisecond to the instance (using date interval).
* @method Carbon subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
* @method Carbon subMilli() Sub one millisecond to the instance (using date interval).
* @method Carbon addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
* @method Carbon addMillisecond() Add one millisecond to the instance (using date interval).
* @method Carbon subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
* @method Carbon subMillisecond() Sub one millisecond to the instance (using date interval).
* @method Carbon addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
* @method Carbon addMicro() Add one microsecond to the instance (using date interval).
* @method Carbon subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
* @method Carbon subMicro() Sub one microsecond to the instance (using date interval).
* @method Carbon addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
* @method Carbon addMicrosecond() Add one microsecond to the instance (using date interval).
* @method Carbon subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
* @method Carbon subMicrosecond() Sub one microsecond to the instance (using date interval).
* @method Carbon addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval).
* @method Carbon addMillennium() Add one millennium to the instance (using date interval).
* @method Carbon subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval).
* @method Carbon subMillennium() Sub one millennium to the instance (using date interval).
* @method Carbon addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval).
* @method Carbon addCentury() Add one century to the instance (using date interval).
* @method Carbon subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval).
* @method Carbon subCentury() Sub one century to the instance (using date interval).
* @method Carbon addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval).
* @method Carbon addDecade() Add one decade to the instance (using date interval).
* @method Carbon subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval).
* @method Carbon subDecade() Sub one decade to the instance (using date interval).
* @method Carbon addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval).
* @method Carbon addQuarter() Add one quarter to the instance (using date interval).
* @method Carbon subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval).
* @method Carbon subQuarter() Sub one quarter to the instance (using date interval).
* @method Carbon addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
* @method Carbon addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method Carbon addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval).
* @method Carbon addWeek() Add one week to the instance (using date interval).
* @method Carbon subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval).
* @method Carbon subWeek() Sub one week to the instance (using date interval).
* @method Carbon addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval).
* @method Carbon addWeekday() Add one weekday to the instance (using date interval).
* @method Carbon subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval).
* @method Carbon subWeekday() Sub one weekday to the instance (using date interval).
* @method Carbon addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealMicro() Add one microsecond to the instance (using timestamp).
* @method Carbon subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealMicro() Sub one microsecond to the instance (using timestamp).
* @method $this years(int $value) Set current instance year to the given value.
* @method $this year(int $value) Set current instance year to the given value.
* @method $this setYears(int $value) Set current instance year to the given value.
* @method $this setYear(int $value) Set current instance year to the given value.
* @method $this months(int $value) Set current instance month to the given value.
* @method $this month(int $value) Set current instance month to the given value.
* @method $this setMonths(int $value) Set current instance month to the given value.
* @method $this setMonth(int $value) Set current instance month to the given value.
* @method $this days(int $value) Set current instance day to the given value.
* @method $this day(int $value) Set current instance day to the given value.
* @method $this setDays(int $value) Set current instance day to the given value.
* @method $this setDay(int $value) Set current instance day to the given value.
* @method $this hours(int $value) Set current instance hour to the given value.
* @method $this hour(int $value) Set current instance hour to the given value.
* @method $this setHours(int $value) Set current instance hour to the given value.
* @method $this setHour(int $value) Set current instance hour to the given value.
* @method $this minutes(int $value) Set current instance minute to the given value.
* @method $this minute(int $value) Set current instance minute to the given value.
* @method $this setMinutes(int $value) Set current instance minute to the given value.
* @method $this setMinute(int $value) Set current instance minute to the given value.
* @method $this seconds(int $value) Set current instance second to the given value.
* @method $this second(int $value) Set current instance second to the given value.
* @method $this setSeconds(int $value) Set current instance second to the given value.
* @method $this setSecond(int $value) Set current instance second to the given value.
* @method $this millis(int $value) Set current instance millisecond to the given value.
* @method $this milli(int $value) Set current instance millisecond to the given value.
* @method $this setMillis(int $value) Set current instance millisecond to the given value.
* @method $this setMilli(int $value) Set current instance millisecond to the given value.
* @method $this milliseconds(int $value) Set current instance millisecond to the given value.
* @method $this millisecond(int $value) Set current instance millisecond to the given value.
* @method $this setMilliseconds(int $value) Set current instance millisecond to the given value.
* @method $this setMillisecond(int $value) Set current instance millisecond to the given value.
* @method $this micros(int $value) Set current instance microsecond to the given value.
* @method $this micro(int $value) Set current instance microsecond to the given value.
* @method $this setMicros(int $value) Set current instance microsecond to the given value.
* @method $this setMicro(int $value) Set current instance microsecond to the given value.
* @method $this microseconds(int $value) Set current instance microsecond to the given value.
* @method $this microsecond(int $value) Set current instance microsecond to the given value.
* @method $this setMicroseconds(int $value) Set current instance microsecond to the given value.
* @method $this setMicrosecond(int $value) Set current instance microsecond to the given value.
* @method $this addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval).
* @method $this addYear() Add one year to the instance (using date interval).
* @method $this subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval).
* @method $this subYear() Sub one year to the instance (using date interval).
* @method $this addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed.
* @method $this subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed.
* @method $this addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval).
* @method $this addMonth() Add one month to the instance (using date interval).
* @method $this subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval).
* @method $this subMonth() Sub one month to the instance (using date interval).
* @method $this addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed.
* @method $this subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed.
* @method $this addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval).
* @method $this addDay() Add one day to the instance (using date interval).
* @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval).
* @method $this subDay() Sub one day to the instance (using date interval).
* @method $this addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval).
* @method $this addHour() Add one hour to the instance (using date interval).
* @method $this subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval).
* @method $this subHour() Sub one hour to the instance (using date interval).
* @method $this addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval).
* @method $this addMinute() Add one minute to the instance (using date interval).
* @method $this subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval).
* @method $this subMinute() Sub one minute to the instance (using date interval).
* @method $this addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval).
* @method $this addSecond() Add one second to the instance (using date interval).
* @method $this subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval).
* @method $this subSecond() Sub one second to the instance (using date interval).
* @method $this addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
* @method $this addMilli() Add one millisecond to the instance (using date interval).
* @method $this subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
* @method $this subMilli() Sub one millisecond to the instance (using date interval).
* @method $this addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
* @method $this addMillisecond() Add one millisecond to the instance (using date interval).
* @method $this subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
* @method $this subMillisecond() Sub one millisecond to the instance (using date interval).
* @method $this addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
* @method $this addMicro() Add one microsecond to the instance (using date interval).
* @method $this subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
* @method $this subMicro() Sub one microsecond to the instance (using date interval).
* @method $this addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
* @method $this addMicrosecond() Add one microsecond to the instance (using date interval).
* @method $this subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
* @method $this subMicrosecond() Sub one microsecond to the instance (using date interval).
* @method $this addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval).
* @method $this addMillennium() Add one millennium to the instance (using date interval).
* @method $this subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval).
* @method $this subMillennium() Sub one millennium to the instance (using date interval).
* @method $this addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed.
* @method $this subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
* @method $this addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval).
* @method $this addCentury() Add one century to the instance (using date interval).
* @method $this subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval).
* @method $this subCentury() Sub one century to the instance (using date interval).
* @method $this addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed.
* @method $this subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed.
* @method $this addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval).
* @method $this addDecade() Add one decade to the instance (using date interval).
* @method $this subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval).
* @method $this subDecade() Sub one decade to the instance (using date interval).
* @method $this addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed.
* @method $this subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed.
* @method $this addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval).
* @method $this addQuarter() Add one quarter to the instance (using date interval).
* @method $this subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval).
* @method $this subQuarter() Sub one quarter to the instance (using date interval).
* @method $this addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed.
* @method $this subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
* @method $this subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
* @method $this addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
* @method $this subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
* @method $this addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval).
* @method $this addWeek() Add one week to the instance (using date interval).
* @method $this subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval).
* @method $this subWeek() Sub one week to the instance (using date interval).
* @method $this addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval).
* @method $this addWeekday() Add one weekday to the instance (using date interval).
* @method $this subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval).
* @method $this subWeekday() Sub one weekday to the instance (using date interval).
* @method $this addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
* @method $this addRealMicro() Add one microsecond to the instance (using timestamp).
* @method $this subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
* @method $this subRealMicro() Sub one microsecond to the instance (using timestamp).
* @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
* @method Carbon addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealMicrosecond() Add one microsecond to the instance (using timestamp).
* @method Carbon subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealMicrosecond() Sub one microsecond to the instance (using timestamp).
* @method $this addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
* @method $this addRealMicrosecond() Add one microsecond to the instance (using timestamp).
* @method $this subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
* @method $this subRealMicrosecond() Sub one microsecond to the instance (using timestamp).
* @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
* @method Carbon addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealMilli() Add one millisecond to the instance (using timestamp).
* @method Carbon subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealMilli() Sub one millisecond to the instance (using timestamp).
* @method $this addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
* @method $this addRealMilli() Add one millisecond to the instance (using timestamp).
* @method $this subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
* @method $this subRealMilli() Sub one millisecond to the instance (using timestamp).
* @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
* @method Carbon addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealMillisecond() Add one millisecond to the instance (using timestamp).
* @method Carbon subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealMillisecond() Sub one millisecond to the instance (using timestamp).
* @method $this addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
* @method $this addRealMillisecond() Add one millisecond to the instance (using timestamp).
* @method $this subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
* @method $this subRealMillisecond() Sub one millisecond to the instance (using timestamp).
* @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
* @method Carbon addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealSecond() Add one second to the instance (using timestamp).
* @method Carbon subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealSecond() Sub one second to the instance (using timestamp).
* @method $this addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp).
* @method $this addRealSecond() Add one second to the instance (using timestamp).
* @method $this subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp).
* @method $this subRealSecond() Sub one second to the instance (using timestamp).
* @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
* @method Carbon addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealMinute() Add one minute to the instance (using timestamp).
* @method Carbon subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealMinute() Sub one minute to the instance (using timestamp).
* @method $this addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp).
* @method $this addRealMinute() Add one minute to the instance (using timestamp).
* @method $this subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp).
* @method $this subRealMinute() Sub one minute to the instance (using timestamp).
* @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
* @method Carbon addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealHour() Add one hour to the instance (using timestamp).
* @method Carbon subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealHour() Sub one hour to the instance (using timestamp).
* @method $this addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp).
* @method $this addRealHour() Add one hour to the instance (using timestamp).
* @method $this subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp).
* @method $this subRealHour() Sub one hour to the instance (using timestamp).
* @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
* @method Carbon addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealDay() Add one day to the instance (using timestamp).
* @method Carbon subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealDay() Sub one day to the instance (using timestamp).
* @method $this addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp).
* @method $this addRealDay() Add one day to the instance (using timestamp).
* @method $this subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp).
* @method $this subRealDay() Sub one day to the instance (using timestamp).
* @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
* @method Carbon addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealWeek() Add one week to the instance (using timestamp).
* @method Carbon subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealWeek() Sub one week to the instance (using timestamp).
* @method $this addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp).
* @method $this addRealWeek() Add one week to the instance (using timestamp).
* @method $this subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp).
* @method $this subRealWeek() Sub one week to the instance (using timestamp).
* @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
* @method Carbon addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealMonth() Add one month to the instance (using timestamp).
* @method Carbon subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealMonth() Sub one month to the instance (using timestamp).
* @method $this addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp).
* @method $this addRealMonth() Add one month to the instance (using timestamp).
* @method $this subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp).
* @method $this subRealMonth() Sub one month to the instance (using timestamp).
* @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
* @method Carbon addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealQuarter() Add one quarter to the instance (using timestamp).
* @method Carbon subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealQuarter() Sub one quarter to the instance (using timestamp).
* @method $this addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp).
* @method $this addRealQuarter() Add one quarter to the instance (using timestamp).
* @method $this subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp).
* @method $this subRealQuarter() Sub one quarter to the instance (using timestamp).
* @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
* @method Carbon addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealYear() Add one year to the instance (using timestamp).
* @method Carbon subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealYear() Sub one year to the instance (using timestamp).
* @method $this addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp).
* @method $this addRealYear() Add one year to the instance (using timestamp).
* @method $this subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp).
* @method $this subRealYear() Sub one year to the instance (using timestamp).
* @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
* @method Carbon addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealDecade() Add one decade to the instance (using timestamp).
* @method Carbon subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealDecade() Sub one decade to the instance (using timestamp).
* @method $this addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp).
* @method $this addRealDecade() Add one decade to the instance (using timestamp).
* @method $this subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp).
* @method $this subRealDecade() Sub one decade to the instance (using timestamp).
* @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
* @method Carbon addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealCentury() Add one century to the instance (using timestamp).
* @method Carbon subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealCentury() Sub one century to the instance (using timestamp).
* @method $this addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp).
* @method $this addRealCentury() Add one century to the instance (using timestamp).
* @method $this subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp).
* @method $this subRealCentury() Sub one century to the instance (using timestamp).
* @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
* @method Carbon addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp).
* @method Carbon addRealMillennium() Add one millennium to the instance (using timestamp).
* @method Carbon subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp).
* @method Carbon subRealMillennium() Sub one millennium to the instance (using timestamp).
* @method $this addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp).
* @method $this addRealMillennium() Add one millennium to the instance (using timestamp).
* @method $this subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp).
* @method $this subRealMillennium() Sub one millennium to the instance (using timestamp).
* @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
* @method Carbon roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
* @method Carbon roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
* @method Carbon floorYear(float $precision = 1) Truncate the current instance year with given precision.
* @method Carbon floorYears(float $precision = 1) Truncate the current instance year with given precision.
* @method Carbon ceilYear(float $precision = 1) Ceil the current instance year with given precision.
* @method Carbon ceilYears(float $precision = 1) Ceil the current instance year with given precision.
* @method Carbon roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
* @method Carbon roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
* @method Carbon floorMonth(float $precision = 1) Truncate the current instance month with given precision.
* @method Carbon floorMonths(float $precision = 1) Truncate the current instance month with given precision.
* @method Carbon ceilMonth(float $precision = 1) Ceil the current instance month with given precision.
* @method Carbon ceilMonths(float $precision = 1) Ceil the current instance month with given precision.
* @method Carbon roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
* @method Carbon roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
* @method Carbon floorDay(float $precision = 1) Truncate the current instance day with given precision.
* @method Carbon floorDays(float $precision = 1) Truncate the current instance day with given precision.
* @method Carbon ceilDay(float $precision = 1) Ceil the current instance day with given precision.
* @method Carbon ceilDays(float $precision = 1) Ceil the current instance day with given precision.
* @method Carbon roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
* @method Carbon roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
* @method Carbon floorHour(float $precision = 1) Truncate the current instance hour with given precision.
* @method Carbon floorHours(float $precision = 1) Truncate the current instance hour with given precision.
* @method Carbon ceilHour(float $precision = 1) Ceil the current instance hour with given precision.
* @method Carbon ceilHours(float $precision = 1) Ceil the current instance hour with given precision.
* @method Carbon roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
* @method Carbon roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
* @method Carbon floorMinute(float $precision = 1) Truncate the current instance minute with given precision.
* @method Carbon floorMinutes(float $precision = 1) Truncate the current instance minute with given precision.
* @method Carbon ceilMinute(float $precision = 1) Ceil the current instance minute with given precision.
* @method Carbon ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision.
* @method Carbon roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
* @method Carbon roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
* @method Carbon floorSecond(float $precision = 1) Truncate the current instance second with given precision.
* @method Carbon floorSeconds(float $precision = 1) Truncate the current instance second with given precision.
* @method Carbon ceilSecond(float $precision = 1) Ceil the current instance second with given precision.
* @method Carbon ceilSeconds(float $precision = 1) Ceil the current instance second with given precision.
* @method Carbon roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
* @method Carbon roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
* @method Carbon floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision.
* @method Carbon floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision.
* @method Carbon ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision.
* @method Carbon ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision.
* @method Carbon roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
* @method Carbon roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
* @method Carbon floorCentury(float $precision = 1) Truncate the current instance century with given precision.
* @method Carbon floorCenturies(float $precision = 1) Truncate the current instance century with given precision.
* @method Carbon ceilCentury(float $precision = 1) Ceil the current instance century with given precision.
* @method Carbon ceilCenturies(float $precision = 1) Ceil the current instance century with given precision.
* @method Carbon roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
* @method Carbon roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
* @method Carbon floorDecade(float $precision = 1) Truncate the current instance decade with given precision.
* @method Carbon floorDecades(float $precision = 1) Truncate the current instance decade with given precision.
* @method Carbon ceilDecade(float $precision = 1) Ceil the current instance decade with given precision.
* @method Carbon ceilDecades(float $precision = 1) Ceil the current instance decade with given precision.
* @method Carbon roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
* @method Carbon roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
* @method Carbon floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision.
* @method Carbon floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision.
* @method Carbon ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision.
* @method Carbon ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision.
* @method Carbon roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
* @method Carbon roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
* @method Carbon floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision.
* @method Carbon floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision.
* @method Carbon ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision.
* @method Carbon ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision.
* @method Carbon roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
* @method Carbon roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
* @method Carbon floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision.
* @method Carbon floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision.
* @method Carbon ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision.
* @method Carbon ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision.
* @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
* @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
* @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision.
* @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision.
* @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision.
* @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision.
* @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
* @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
* @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision.
* @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision.
* @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision.
* @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision.
* @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
* @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
* @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision.
* @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision.
* @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision.
* @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision.
* @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
* @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
* @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision.
* @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision.
* @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision.
* @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision.
* @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
* @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
* @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision.
* @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision.
* @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision.
* @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision.
* @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
* @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
* @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision.
* @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision.
* @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision.
* @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision.
* @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
* @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
* @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision.
* @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision.
* @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision.
* @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision.
* @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
* @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
* @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision.
* @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision.
* @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision.
* @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision.
* @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
* @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
* @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision.
* @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision.
* @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision.
* @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision.
* @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
* @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
* @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision.
* @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision.
* @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision.
* @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision.
* @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
* @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
* @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision.
* @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision.
* @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision.
* @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision.
* @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
* @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
* @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision.
* @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision.
* @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision.
* @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision.
* @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
* @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
* @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)

View File

@@ -4524,14 +4524,17 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable
/**
* Format the instance as RFC3339
*
* @param bool $extended
*
* @example
* ```
* echo Carbon::now()->toRfc3339String();
* echo Carbon::now()->toRfc3339String() . "\n";
* echo Carbon::now()->toRfc3339String(true) . "\n";
* ```
*
* @return string
*/
public function toRfc3339String();
public function toRfc3339String($extended = false);
/**
* Format the instance as RFC7231

View File

@@ -10,6 +10,50 @@
*/
/*
* Unknown default region, use the first alphabetically.
* Authors:
* - Jordi Mallach jordi@gnu.org
* - Adolfo Jayme-Barrientos (fitojb)
*/
return require __DIR__.'/ast_ES.php';
return array_replace_recursive(require __DIR__.'/es.php', [
'formats' => [
'L' => 'DD/MM/YY',
],
'months' => ['de xineru', 'de febreru', 'de marzu', 'dabril', 'de mayu', 'de xunu', 'de xunetu', 'dagostu', 'de setiembre', 'dochobre', 'de payares', 'davientu'],
'months_short' => ['xin', 'feb', 'mar', 'abr', 'may', 'xun', 'xnt', 'ago', 'set', 'och', 'pay', 'avi'],
'weekdays' => ['domingu', 'llunes', 'martes', 'miércoles', 'xueves', 'vienres', 'sábadu'],
'weekdays_short' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'],
'weekdays_min' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'],
'year' => ':count añu|:count años',
'y' => ':count añu|:count años',
'a_year' => 'un añu|:count años',
'month' => ':count mes',
'm' => ':count mes',
'a_month' => 'un mes|:count mes',
'week' => ':count selmana|:count selmanes',
'w' => ':count selmana|:count selmanes',
'a_week' => 'una selmana|:count selmanes',
'day' => ':count día|:count díes',
'd' => ':count día|:count díes',
'a_day' => 'un día|:count díes',
'hour' => ':count hora|:count hores',
'h' => ':count hora|:count hores',
'a_hour' => 'una hora|:count hores',
'minute' => ':count minutu|:count minutos',
'min' => ':count minutu|:count minutos',
'a_minute' => 'un minutu|:count minutos',
'second' => ':count segundu|:count segundos',
's' => ':count segundu|:count segundos',
'a_second' => 'un segundu|:count segundos',
'ago' => 'hai :time',
'from_now' => 'en :time',
'after' => ':time dempués',
'before' => ':time enantes',
]);

View File

@@ -9,47 +9,4 @@
* file that was distributed with this source code.
*/
/*
* Authors:
* - Jordi Mallach jordi@gnu.org
*/
return array_replace_recursive(require __DIR__.'/en.php', [
'formats' => [
'L' => 'DD/MM/YY',
],
'months' => ['de xineru', 'de febreru', 'de marzu', 'dabril', 'de mayu', 'de xunu', 'de xunetu', 'dagostu', 'de setiembre', 'dochobre', 'de payares', 'davientu'],
'months_short' => ['xin', 'feb', 'mar', 'abr', 'may', 'xun', 'xnt', 'ago', 'set', 'och', 'pay', 'avi'],
'weekdays' => ['domingu', 'llunes', 'martes', 'miércoles', 'xueves', 'vienres', 'sábadu'],
'weekdays_short' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'],
'weekdays_min' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'],
'first_day_of_week' => 1,
'day_of_first_week_of_year' => 4,
'year' => ':count añu',
'y' => ':count añu',
'a_year' => ':count añu',
'month' => ':count mes',
'm' => ':count mes',
'a_month' => ':count mes',
'week' => ':count selmana',
'w' => ':count selmana',
'a_week' => ':count selmana',
'day' => ':count día',
'd' => ':count día',
'a_day' => ':count día',
'hour' => ':count hora',
'h' => ':count hora',
'a_hour' => ':count hora',
'minute' => ':count minutu',
'min' => ':count minutu',
'a_minute' => ':count minutu',
'second' => ':count segundu',
's' => ':count segundu',
'a_second' => ':count segundu',
]);
return require __DIR__.'/ast.php';

View File

@@ -30,6 +30,7 @@
* - Zahhar Kirillov
* - João Magalhães
* - Ingmar
* - Illimar Tambek
*/
return [
'year' => ':count aasta|:count aastat',
@@ -68,10 +69,10 @@ return [
'formats' => [
'LT' => 'HH:mm',
'LTS' => 'HH:mm:ss',
'L' => 'DD/MM/YYYY',
'LL' => 'DD. MMMM YYYY',
'LLL' => 'DD. MMMM YYYY HH:mm',
'LLLL' => 'dddd, DD. MMMM YYYY HH:mm',
'L' => 'DD.MM.YYYY',
'LL' => 'D. MMMM YYYY',
'LLL' => 'D. MMMM YYYY HH:mm',
'LLLL' => 'dddd, D. MMMM YYYY HH:mm',
],
'calendar' => [
'sameDay' => '[täna] LT',

View File

@@ -15,23 +15,24 @@
* - JD Isaacks
* - Itai Nathaniel
* - GabMic
* - Yaakov Dahan (yakidahan)
*/
return [
'year' => 'שנה|{2}שנתיים|:count שנים',
'y' => 'שנה|{2}שנתיים|:count שנים',
'y' => 'שנה|:count שנ׳',
'month' => 'חודש|{2}חודשיים|:count חודשים',
'm' => 'חודש|{2}חודשיים|:count חודשים',
'm' => 'חודש|:count חו׳',
'week' => 'שבוע|{2}שבועיים|:count שבועות',
'w' => 'שבוע|{2}שבועיים|:count שבועות',
'w' => 'שבוע|:count שב׳',
'day' => 'יום|{2}יומיים|:count ימים',
'd' => 'יום|{2}יומיים|:count ימים',
'd' => 'יום|:count ימ׳',
'hour' => 'שעה|{2}שעתיים|:count שעות',
'h' => 'שעה|{2}שעתיים|:count שעות',
'h' => 'שעה|:count שע׳',
'minute' => 'דקה|{2}שתי דקות|:count דקות',
'min' => 'דקה|{2}שתי דקות|:count דקות',
'min' => 'דקה|:count דק׳',
'second' => 'שנייה|:count שניות',
'a_second' => 'כמה שניות|:count שניות',
's' => 'שניה|:count שניות',
's' => 'שניה|:count שנ׳',
'ago' => 'לפני :time',
'from_now' => 'בעוד :time מעכשיו',
'after' => 'אחרי :time',

View File

@@ -388,16 +388,24 @@ trait Converter
/**
* Format the instance as RFC3339
*
* @param bool $extended
*
* @example
* ```
* echo Carbon::now()->toRfc3339String();
* echo Carbon::now()->toRfc3339String() . "\n";
* echo Carbon::now()->toRfc3339String(true) . "\n";
* ```
*
* @return string
*/
public function toRfc3339String()
public function toRfc3339String($extended = false)
{
return $this->rawFormat(DateTime::RFC3339);
$format = DateTime::RFC3339;
if ($extended) {
$format = DateTime::RFC3339_EXTENDED;
}
return $this->rawFormat($format);
}
/**