TimeLogger moved, League ranking also for not completed but started rounds
This commit is contained in:
parent
78a4a04cdf
commit
90c6d60ecd
26 changed files with 692 additions and 376 deletions
|
|
@ -9,7 +9,7 @@ use Carbon\Carbon;
|
|||
use Auth;
|
||||
use App\User;
|
||||
use Log;
|
||||
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class GamesController extends Controller
|
||||
{
|
||||
|
|
@ -23,8 +23,11 @@ class GamesController extends Controller
|
|||
|
||||
public function store() {
|
||||
if (Auth::guest()) { return redirect("/login"); }
|
||||
// Validate form
|
||||
|
||||
$a=new TimeLogger("GamesController::store");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
// Validate form
|
||||
Log::info("Starting validation");
|
||||
$this->validate(request(), [
|
||||
'id' => 'required',
|
||||
|
|
@ -60,6 +63,8 @@ class GamesController extends Controller
|
|||
$game->kickoff=User::toDBDate(request('kickoff'));
|
||||
$game->save();
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
// Redirect to the Rounds Index
|
||||
return redirect('/rounds#'.$game->round_id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,14 @@ use App\Leagues\Match;
|
|||
use Log;
|
||||
use DB;
|
||||
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class LeaguesController extends Controller
|
||||
{
|
||||
public function index() {
|
||||
$a=new TimeLogger("LeaguesController.index");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$season=Season::getCurrent();
|
||||
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
|
|
@ -62,14 +67,18 @@ class LeaguesController extends Controller
|
|||
|
||||
//
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
return view('leagues.index', compact('season','rounds','start_round_id','start_round_name','league_mode','round_count'));
|
||||
}
|
||||
|
||||
public function createLeagues($start_round_id, $round_count) {
|
||||
|
||||
$a=new TimeLogger("LeaguesController::createLeagues()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$users=User::getActives();
|
||||
if (sizeof($users)==0){
|
||||
Log::info($a->getEndMessage());
|
||||
return view("leagues.no_users");
|
||||
}
|
||||
|
||||
|
|
@ -79,12 +88,16 @@ class LeaguesController extends Controller
|
|||
|
||||
Match::createMatchups();
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
return redirect("/seasons");
|
||||
}
|
||||
|
||||
public function showLeagueRounds() {
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
|
||||
$a=new TimeLogger("LeaguesController::showLeagueRounds()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$season=Season::getCurrent();
|
||||
|
||||
$roundNames = Round::getNames();
|
||||
|
|
@ -106,18 +119,26 @@ class LeaguesController extends Controller
|
|||
$matchesTotal[$match->round_id][$league->id] = $lg;
|
||||
}
|
||||
}
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
return view ('leagues.matches', compact('season', 'matchesTotal','leagues','leagueNames','roundNames'));
|
||||
}
|
||||
|
||||
public static function showLeagueRanking() {
|
||||
|
||||
$a=new TimeLogger("LeaguesController::showLeagueRanking()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$season = Season::getCurrent();
|
||||
//$leagues = array_reverse(League::getRanking($rank));
|
||||
$leagueNames = League::getNames();
|
||||
$userNames = User::getNames();
|
||||
|
||||
$leagues = League::where('season_id','=',$season->id)->where('rank','<=', 4)->orderBy('id')->get();
|
||||
if (!sizeof($leagues)) return redirect("/");
|
||||
if (!sizeof($leagues)) {
|
||||
Log::info($a->getEndMessage());
|
||||
return redirect("/");
|
||||
}
|
||||
|
||||
$totalRanking = League::getTotalRankingOverall(); // Nur für Auf/Abstiegsinfo benötigt.
|
||||
$rankInfo=array();
|
||||
|
|
@ -138,6 +159,9 @@ class LeaguesController extends Controller
|
|||
$leagueScores[$rank] = League::getRanking($rank);
|
||||
}
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
//error_log($a->getEndMessage());
|
||||
|
||||
return view ('leagues.chart',compact('season', 'leagueNames', 'userNames','leagueScores','rankInfo','rank','cols'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ use Auth;
|
|||
use DB;
|
||||
use Log;
|
||||
use Carbon;
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class RoundmailController extends Controller
|
||||
{
|
||||
|
|
@ -22,6 +23,9 @@ class RoundmailController extends Controller
|
|||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$a=new TimeLogger("RoundmailController::index()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$mails_db = Roundmail::all();
|
||||
$mails=array();
|
||||
foreach($mails_db as $mail_db) {
|
||||
|
|
@ -39,6 +43,8 @@ class RoundmailController extends Controller
|
|||
}
|
||||
$mails=array_reverse($mails);
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
return view('roundmails.index',compact('mails'));
|
||||
}
|
||||
|
||||
|
|
@ -46,6 +52,9 @@ class RoundmailController extends Controller
|
|||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$a=new TimeLogger("RoundmailController::show start");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$user_id=Auth::user()->id;
|
||||
|
||||
$users = DB::table('users')->where('deleted',null)->orderBy('lastname')->get();
|
||||
|
|
@ -124,6 +133,8 @@ class RoundmailController extends Controller
|
|||
if ($sender) {$sender_name = $sender->name;}
|
||||
}
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
return view('roundmails.show',compact('mail_id','activeMailList','inactiveMailList','missingTippMailList','missingJokerMailList','adminMailList','send_date','user_id','topic', 'mail_message', 'recipients', 'sender_name','viewmode','tippSpielLink'));
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ use App\Quota;
|
|||
use DB;
|
||||
use Auth;
|
||||
use Log;
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class RoundsController extends Controller
|
||||
{
|
||||
|
|
@ -19,6 +20,9 @@ class RoundsController extends Controller
|
|||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$a=new TimeLogger("RoundsController::index()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$activeSeason=Season::getCurrent();
|
||||
$rounds =null;
|
||||
|
||||
|
|
@ -30,6 +34,8 @@ class RoundsController extends Controller
|
|||
$quotas = Quota::getQuotas();
|
||||
$round_count = Round::getCount();
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
return view('rounds.index', compact('rounds','activeSeason', 'round_count'));
|
||||
|
||||
}
|
||||
|
|
@ -51,6 +57,9 @@ class RoundsController extends Controller
|
|||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$a=new TimeLogger("RoundsController::store() start");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
// Validate form
|
||||
$this->validate(request(), [
|
||||
'name' => 'required',
|
||||
|
|
@ -108,6 +117,8 @@ class RoundsController extends Controller
|
|||
|
||||
Tipp::createAllTips();
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
// Redirect to the home page
|
||||
return redirect('/rounds');
|
||||
}
|
||||
|
|
@ -116,6 +127,9 @@ class RoundsController extends Controller
|
|||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$a=new TimeLogger("RoundsController::store_report()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
// Validate form
|
||||
$this->validate(request(), [
|
||||
'round_id' => 'required'
|
||||
|
|
@ -133,6 +147,7 @@ class RoundsController extends Controller
|
|||
}
|
||||
$round->save();
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
// Redirect to the home page
|
||||
return redirect('/rounds');
|
||||
|
|
@ -150,6 +165,9 @@ class RoundsController extends Controller
|
|||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$a=new TimeLogger("RoundsController::storename()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
// Validate form
|
||||
$this->validate(request(), [
|
||||
'round_id' => 'required',
|
||||
|
|
@ -160,6 +178,8 @@ class RoundsController extends Controller
|
|||
$round->name = request('name');
|
||||
$round->save();
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
return redirect('/rounds');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,12 +13,17 @@ use Auth;
|
|||
use Log;
|
||||
use DB;
|
||||
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class TippsController extends Controller
|
||||
{
|
||||
//Duplicate from Tipps model
|
||||
//TODO: Refactor usage to use only the Tipps version
|
||||
public static function createTipps($user_id) {
|
||||
|
||||
$a=new TimeLogger("TippsController::createTipps()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$activeSeason = Season::getCurrent();
|
||||
|
||||
$rounds = Round::all()->where('season_id', '=', $activeSeason->id);
|
||||
|
|
@ -44,15 +49,22 @@ class TippsController extends Controller
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
}
|
||||
|
||||
//Duplicate from Tipps model
|
||||
//TODO: Refactor usage to use only the Tipps version
|
||||
public static function createAllTips(){
|
||||
$a=new TimeLogger("TippsController::createAllTipps()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$users = DB::table('users')->where('deleted',null)->get();
|
||||
foreach($users as $user) {
|
||||
TippsController::createTipps($user->id);
|
||||
}
|
||||
Log::info($a->getEndMessage());
|
||||
}
|
||||
|
||||
public function index()
|
||||
|
|
|
|||
|
|
@ -22,10 +22,15 @@ use Auth;
|
|||
use Log;
|
||||
|
||||
use Carbon;
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class UsersController extends Controller
|
||||
{
|
||||
public function main() {
|
||||
$a=new TimeLogger("UsersController::main()");
|
||||
Log::info($a->getStartMessage());
|
||||
//error_log($a->getStartMessage());
|
||||
|
||||
$currentSeason=Season::getCurrent();
|
||||
$roundname="";
|
||||
$report="";
|
||||
|
|
@ -90,15 +95,30 @@ class UsersController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
//error_log($a->getEndMessage());
|
||||
|
||||
return view('main',compact('roundname','display_rounds','message_text_joker','message_text_tipps','nextRoundName','nextRoundLockTime', 'hourDiffToLock'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function index() {
|
||||
$a=new TimeLogger("UserController::index()");
|
||||
Log::info($a->getStartMessage());
|
||||
//error_log($a->getStartMessage());
|
||||
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$activeUsers = User::getActives();
|
||||
|
||||
$b=new TimeLogger("UsersController::index-db_subqueries");
|
||||
Log::info($b->getStartMessage());
|
||||
|
||||
$currentSeason=Season::getCurrent();
|
||||
if (!$currentSeason) { return redirect('/'); }
|
||||
|
||||
|
|
@ -107,28 +127,45 @@ class UsersController extends Controller
|
|||
|
||||
$users = DB::table('users')->where('deleted',null)->orderBy('lastname')->get();
|
||||
|
||||
foreach($users as $key => $user) {
|
||||
if (User::hasMissingTipp($user->id)) {
|
||||
$users[$key]->missingTippText="Tipps fehlen";
|
||||
$users[$key]->tippStyling="red";
|
||||
Log::info($b->getEndMessage());
|
||||
|
||||
|
||||
Log::info($a->getStartMessage());
|
||||
$missingTipps = User::getMissingTippsAndJokers($users);
|
||||
|
||||
$c=new TimeLogger("UsersController::index-missingTipp Loop");
|
||||
Log::info($c->getStartMessage());
|
||||
|
||||
|
||||
foreach($users as $user_id => $user) {
|
||||
if (array_key_exists($user_id, $missingTipps["MISSING_TIPP"])) {
|
||||
$users[$user_id]->missingTippText = "Tipps fehlen";
|
||||
$users[$user_id]->tippStyling = "red";
|
||||
} else {
|
||||
$users[$key]->missingTippText="Runde getippt";
|
||||
$users[$key]->tippStyling="green";
|
||||
$users[$user_id]->missingTippText = "Runde getippt";
|
||||
$users[$user_id]->tippStyling = "green";
|
||||
}
|
||||
if (User::hasMissingJoker($user->id)) {
|
||||
$users[$key]->missingJokerText="Joker fehlt";
|
||||
$users[$key]->jokerStyling="red";
|
||||
|
||||
|
||||
if (array_key_exists($user_id, $missingTipps["MISSING_JOKER"])) {
|
||||
$users[$user_id]->missingJokerText = "Joker fehlt";
|
||||
$users[$user_id]->jokerStyling = "red";
|
||||
} else {
|
||||
$users[$key]->missingJokerText="Joker gesetzt";
|
||||
$users[$key]->jokerStyling="green";
|
||||
$users[$user_id]->missingJokerText = "Joker gesetzt";
|
||||
$users[$user_id]->jokerStyling = "green";
|
||||
}
|
||||
}
|
||||
|
||||
Log::info($c->getEndMessage());
|
||||
|
||||
$round = Round::getFirstTippableRound();
|
||||
$firstTippableRound=new Round();
|
||||
$firstTippableRound->name="-";
|
||||
if ($round) { $firstTippableRound = $round; }
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
//error_log($a->getEndMessage());
|
||||
|
||||
return view('users.index', compact('users','active_user_count','total_user_count', 'firstTippableRound'));
|
||||
}
|
||||
/*
|
||||
|
|
@ -160,6 +197,11 @@ class UsersController extends Controller
|
|||
|
||||
public function store() {
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
|
||||
$a=new TimeLogger("UsersController::store()");
|
||||
Log::info($a->getStartMessage());
|
||||
//error_log($a->getStartMessage());
|
||||
|
||||
$season_id = Season::getCurrent()->id;
|
||||
// Validate form
|
||||
$this->validate(request(), [
|
||||
|
|
@ -194,6 +236,9 @@ class UsersController extends Controller
|
|||
|
||||
Tipp::createAllTips();
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
//error_log($a->getEndMessage());
|
||||
|
||||
return redirect('/users');
|
||||
}
|
||||
|
||||
|
|
@ -657,28 +702,28 @@ class UsersController extends Controller
|
|||
|
||||
|
||||
|
||||
public function gshirt_ranking() {
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
public function gshirt_ranking() {
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
|
||||
// Check ob mindestens eine Runde der Saison gelockt ist und angezeigt werden kann
|
||||
// Check ob mindestens eine Runde der Saison gelockt ist und angezeigt werden kann
|
||||
|
||||
$season=Season::getCurrent();
|
||||
$seasonId=$season->id;
|
||||
$season=Season::getCurrent();
|
||||
$seasonId=$season->id;
|
||||
|
||||
$max_round_id = Round::getLastCompleteRoundId();
|
||||
if ($max_round_id==-1) {
|
||||
$max_round_id = Round::getLastCompleteRoundId();
|
||||
if ($max_round_id==-1) {
|
||||
|
||||
$sql="select DATE_FORMAT(date_sub(min(games.kickoff), interval 1 hour),'%d.%m.%Y %H:%i') as start_date from rounds,games where rounds.season_id=".$seasonId." and games.round_id=rounds.id order by rounds.id;";
|
||||
//dd($sql);
|
||||
$entries = DB::select($sql);
|
||||
$sql="select DATE_FORMAT(date_sub(min(games.kickoff), interval 1 hour),'%d.%m.%Y %H:%i') as start_date from rounds,games where rounds.season_id=".$seasonId." and games.round_id=rounds.id order by rounds.id;";
|
||||
//dd($sql);
|
||||
$entries = DB::select($sql);
|
||||
|
||||
if (count($entries)>0) {
|
||||
$start_date = $entries[0]->start_date;
|
||||
return view('users.no_ranking', compact('start_date'));
|
||||
} else {
|
||||
return redirect("/");
|
||||
}
|
||||
if (count($entries)>0) {
|
||||
$start_date = $entries[0]->start_date;
|
||||
return view('users.no_ranking', compact('start_date'));
|
||||
} else {
|
||||
return redirect("/");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
<?php
|
||||
namespace App\MyClasses;
|
||||
|
||||
class TimeLogger
|
||||
{
|
||||
public $startTime;
|
||||
public $pkey;
|
||||
public $functionName;
|
||||
|
||||
public function __construct($_functionName) {
|
||||
$this->startTime = microtime(true);
|
||||
$this->functionName =$_functionName;
|
||||
$this->pkey="".rand(1000,9999);
|
||||
}
|
||||
|
||||
public function getStartMessage() {
|
||||
return "[CLOCK] [".$this->pkey."-".$this->functionName."] [started]";
|
||||
}
|
||||
|
||||
public function getEndMessage() {
|
||||
return "[CLOCK] [".$this->pkey."-". $this->functionName."] [ended] [elapsed: ".number_format( ( microtime(true) - $this->startTime), 4)."]";
|
||||
}
|
||||
}
|
||||
44
pfosten/app/MyClasses/TimeLogger/TimeLogger.php
Normal file
44
pfosten/app/MyClasses/TimeLogger/TimeLogger.php
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
namespace App\MyClasses;
|
||||
|
||||
/* USAGE IN CLASS
|
||||
|
||||
--START OF FILE
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
--START OF METHOD
|
||||
$a=new TimeLogger("method XXX start");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
--END OF METHOD
|
||||
Log::info($a->getEndMessage());
|
||||
*/
|
||||
|
||||
class TimeLogger
|
||||
{
|
||||
public $startTime;
|
||||
public $pkey;
|
||||
public $functionName;
|
||||
|
||||
public function __construct($_functionName) {
|
||||
$this->startTime = microtime(true);
|
||||
$this->functionName =$_functionName;
|
||||
$this->pkey="".rand(1000,9999);
|
||||
}
|
||||
|
||||
public function getStartMessage() {
|
||||
return "[CLOCK] [".$this->pkey."-".$this->functionName."] [started]";
|
||||
}
|
||||
|
||||
public function getEndMessage() {
|
||||
$time= ( microtime(true) - $this->startTime);
|
||||
$timestr=number_format( $time, 4);
|
||||
|
||||
$retval="[CLOCK] [".$this->pkey."-". $this->functionName."] [ended] [elapsed: ".$timestr."]";
|
||||
if ($time > 1.5) {
|
||||
$retval=$retval." [PERFORMANCE_WARNING]";
|
||||
}
|
||||
|
||||
return $retval;
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ use App\Season;
|
|||
use Log;
|
||||
use DB;
|
||||
use Carbon;
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class Round extends Model
|
||||
{
|
||||
|
|
@ -127,22 +128,28 @@ class Round extends Model
|
|||
}
|
||||
|
||||
public static function getFirstTippableRound($seasonId=-1) {
|
||||
|
||||
$season=null;
|
||||
if ($seasonId==-1) {
|
||||
$season=Season::getCurrent();
|
||||
} else {
|
||||
$season=Season::where('id','=', $seasonId)->first();
|
||||
}
|
||||
if (!$season) return null;
|
||||
if (!$season) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$rounds=Round::where('season_id','=',$season->id)->orderBy('id')->get();
|
||||
|
||||
$locked = false;
|
||||
foreach ($rounds as $round) {
|
||||
if (!Round::hasLockedGame($round->id) ) {
|
||||
if (!Round::hasLockedGame($round->id)) {
|
||||
return $round;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
use DB;
|
||||
use Carbon;
|
||||
use Log;
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class Tipp extends Model
|
||||
{
|
||||
|
|
@ -177,6 +178,10 @@ class Tipp extends Model
|
|||
}
|
||||
|
||||
public static function createTipps($user_id) {
|
||||
|
||||
$a=new TimeLogger("Tipp::createTipps()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$activeSeason = Season::getCurrent();
|
||||
|
||||
$rounds = Round::all()->where('season_id', '=', $activeSeason->id);
|
||||
|
|
@ -202,14 +207,21 @@ class Tipp extends Model
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
}
|
||||
|
||||
public static function createAllTips() {
|
||||
$a=new TimeLogger("Tipp::createAllTipps()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$users = DB::table('users')->where('deleted',null)->get();
|
||||
foreach($users as $user) {
|
||||
Log::info("Creating tipps for userid ".$user->id);
|
||||
Tipp::createTipps($user->id);
|
||||
}
|
||||
Log::info($a->getEndMessage());
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -247,6 +259,9 @@ class Tipp extends Model
|
|||
// TODO: Implement partial caching
|
||||
public static function getRoundTipps($max_round_id=-1, $seasonId=-1)
|
||||
{
|
||||
$a=new TimeLogger("getRoundTipps max_round_id=".$max_round_id.", seasonId=".$seasonId);
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$startTime = microtime(true);
|
||||
|
||||
$currentSeason = Season::getCurrent();
|
||||
|
|
@ -353,6 +368,7 @@ class Tipp extends Model
|
|||
/////////////////////////////////////////////////////////////////////
|
||||
// CALCULATION OF SCORES, RANKS, ETC. (COMPUTE AGGREGATED VALUES) EXCEPT GREENSHIRT, ARGH !!
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
$highestDayscores = array();
|
||||
foreach ($user_ids as $user_id) {
|
||||
$totalRankScore = 0;
|
||||
|
|
@ -383,6 +399,7 @@ class Tipp extends Model
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
// Sortier-Array nach Rang (nur für max_round_id)
|
||||
$userRankings = array();
|
||||
|
|
@ -509,6 +526,7 @@ class Tipp extends Model
|
|||
|
||||
// B) SET GSCORE TOTAL EVERY ROUND ( and take fouls into consideration )
|
||||
$maxScorePerRound=array();
|
||||
|
||||
foreach($user_ids as $user_id) {
|
||||
$foulCount=0;
|
||||
$totalScore=0;
|
||||
|
|
@ -558,7 +576,6 @@ class Tipp extends Model
|
|||
|
||||
//dd("User 11 Round 1 gshirt_score =".$roundtipps['1_11']['gshirt_score'].", totalscore=".$roundtipps['1_11']['gshirt_totalscore']);
|
||||
|
||||
|
||||
//////////////////////////////
|
||||
// START OF HURTFUL 6 PLACE RESTRICTION IF DAYSCORE WIN (exception: completely even scores)
|
||||
// If more than 6 DayScoreWinners: Restrict by dayscore (rank)
|
||||
|
|
@ -642,9 +659,11 @@ class Tipp extends Model
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
///// END OF HURTFUL 6 PLACE RESTRICTION
|
||||
|
||||
|
||||
/// CALCULATE RANK AND PAYOUT QUOTAS
|
||||
|
||||
$quotas=Quota::getQuotas();
|
||||
|
||||
error_log("Round-Count=".$round_count);
|
||||
|
|
@ -687,7 +706,6 @@ class Tipp extends Model
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////// END OF ROUNDTIPPS CREATION ///////////////////
|
||||
|
||||
$response = array();
|
||||
|
|
@ -698,6 +716,8 @@ class Tipp extends Model
|
|||
|
||||
Log::info("Tipp::getRoundTipps: ExecutionTime: " . number_format(( microtime(true) - $startTime), 4) . " Seconds\n");
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
|
@ -722,6 +742,9 @@ class Tipp extends Model
|
|||
}
|
||||
|
||||
public static function gshirt_table() {
|
||||
$a=new TimeLogger("Tipp::gshirt_table()");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$rt = Tipp::getRoundTipps();
|
||||
$roundtipps = $rt['roundtipps'];
|
||||
$round_ids = $rt['round_ids'];
|
||||
|
|
@ -760,6 +783,8 @@ class Tipp extends Model
|
|||
array_push($rankingDisplay2,$rankingDisplay[$user_id]);
|
||||
}
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
|
||||
return $rankingDisplay2;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ use App\Game;
|
|||
use Carbon;
|
||||
use Log;
|
||||
use DB;
|
||||
use App\MyClasses\TimeLogger;
|
||||
|
||||
class User extends Authenticatable
|
||||
{
|
||||
|
|
@ -138,10 +139,77 @@ class User extends Authenticatable
|
|||
return $dbDate;
|
||||
}
|
||||
|
||||
public static function hasMissingTipp($user_id) {
|
||||
// TODO: implement hasMissingTipps($user_array)
|
||||
// OPTIMIZED VERSION FOR hasMissingTipp
|
||||
public static function getMissingTippsAndJokers($users) {
|
||||
$round = Round::getFirstTippableRound();
|
||||
if (!$round) return false;
|
||||
|
||||
$tippClock=new TimeLogger("User::getMissingTippsAndJokers()");
|
||||
Log::info($tippClock->getStartMessage());
|
||||
// expecting collection of user db objects like: $users = DB::table('users')->where('deleted',null)->orderBy('lastname')->get();
|
||||
$idlist = array();
|
||||
$usersWithoutJoker=array();
|
||||
foreach($users as $key => $user) {
|
||||
array_push($idlist,$key);
|
||||
array_push($usersWithoutJoker,$key);
|
||||
}
|
||||
|
||||
$games = Game::where('round_id','=',$round->id)->get();
|
||||
$gameIds=array();
|
||||
foreach ($games as $key => $game) {
|
||||
array_push($gameIds,$key);
|
||||
Log::info("GAME_ID:".$key);
|
||||
}
|
||||
|
||||
$tipps = Tipp::whereIn('game_id', $gameIds)->get();
|
||||
Log::info("Fetched advanced tipps, checking now for missing tipps and jokers");
|
||||
|
||||
$usersWithoutTipps=array();
|
||||
foreach($tipps as $tipp) {
|
||||
if ($tipp->score1 == -1 || $tipp->score2 == -1) {
|
||||
$usersWithoutTipps[$tipp->user_id]="no_tipp";
|
||||
Log::info("UserId ".$tipp->user_id." is missing a tipp!");
|
||||
}
|
||||
if ($tipp->joker == true) {
|
||||
Log::info("Removing from jokerlist: ".$tipp->user_id);
|
||||
unset($usersWithoutJoker[$tipp->user_id]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($usersWithoutJoker as $id) {
|
||||
Log::info("Jokerless:".$id);
|
||||
}
|
||||
|
||||
$result=array();
|
||||
$result["MISSING_TIPP"]=$usersWithoutTipps;
|
||||
$result["MISSING_JOKER"]=$usersWithoutJoker;
|
||||
|
||||
Log::info("USERLIST: ".implode(",",$idlist));
|
||||
Log::info($tippClock->getEndMessage());
|
||||
|
||||
|
||||
foreach(array_keys($result) as $key => $value) {
|
||||
Log::info("Main key: ".$key.", value=".$value);
|
||||
}
|
||||
|
||||
$mtipps=$result["MISSING_TIPP"];
|
||||
foreach($mtipps as $key => $value) {
|
||||
Log::info("MTipp: ".$key." => ".$value);
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function hasMissingTipp($user_id) {
|
||||
|
||||
$round = Round::getFirstTippableRound();
|
||||
if (!$round) return false;
|
||||
|
||||
//$a=new TimeLogger("User::hasMissingTipp()");
|
||||
//Log::info($a->getStartMessage());
|
||||
|
||||
$round_id = $round->id;
|
||||
$games = Game::where('round_id','=',$round_id)->get();
|
||||
|
||||
|
|
@ -151,14 +219,18 @@ class User extends Authenticatable
|
|||
|
||||
if(!$tipp) {
|
||||
Log::info("Tipp doesnt exist: game_id=".$game->id.", user_id=".$user_id);
|
||||
//Log::info($a->getEndMessage());
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ($tipp->score1 == -1 || $tipp->score2 == -1) {
|
||||
//Log::info("!!! User ".$user_id." has a missing tipp for game_id ".$game->id.", round = ".$round_id);
|
||||
//Log::info($a->getEndMessage());
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Log::info($a->getEndMessage());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ use App\Leagues\LeagueMember;
|
|||
use DB;
|
||||
use Log;
|
||||
|
||||
use App\MyClasses;
|
||||
|
||||
class League extends Model
|
||||
{
|
||||
|
||||
|
|
@ -159,9 +161,12 @@ class League extends Model
|
|||
$memberScores[$memberId] = $tpl;
|
||||
}
|
||||
|
||||
|
||||
$lastLockedRoundId=Round::getLastLockedRoundId();
|
||||
Log::info("LASTLOCKKEDROUNDID=".$lastLockedRoundId);
|
||||
$matches=Match::getMatchResults($league->id,-1);
|
||||
foreach ($matches as $match) {
|
||||
if (Round::isCompleted($match->round_id)) {
|
||||
if (Round::isCompleted($match->round_id) || $match->round_id==$lastLockedRoundId ) {
|
||||
$memberScores[$match->user1_id][1] += $match->user1_league_score;
|
||||
error_log("+++ ".$match->user1_id." +".$match->user1_league_score);
|
||||
$memberScores[$match->user1_id][2] += $match->user1_rankscore; // goals
|
||||
|
|
@ -215,6 +220,9 @@ class League extends Model
|
|||
// Nur für Auf und Abstiegsberechnung.
|
||||
// Schreibt den zukünftigen Rank auf Index4
|
||||
public static function getTotalRankingOverall($seasonId=-1) {
|
||||
$a=new MyClasses\TimeLogger("League::getTotalRankingOverall (seasonId=".$seasonId.")");
|
||||
Log::info($a->getStartMessage());
|
||||
|
||||
$userNames = User::getNames();
|
||||
|
||||
$totalRanking=array();
|
||||
|
|
@ -386,7 +394,10 @@ class League extends Model
|
|||
|
||||
|
||||
|
||||
|
||||
Log::info($a->getEndMessage());
|
||||
//error_log($a->getEndMessage());
|
||||
|
||||
|
||||
return $totalRanking;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -258,14 +258,18 @@ class Match extends Model
|
|||
$roundtipps = $roundtipps["roundtipps"];
|
||||
$matches = Match::getLeagueMatches($leagueId, $maxRoundId);
|
||||
|
||||
if ($maxRoundId==-1) { $maxRoundId = Round::getLastRoundId($season->id); }
|
||||
if ($maxRoundId==-1) {
|
||||
//$maxRoundId = Round::getLastRoundId($season->id);
|
||||
$maxRoundId = Round::getLastLockedRoundId($season->id);
|
||||
Log::info("LASTLOCKEDROUND_ID=".$maxRoundId);
|
||||
}
|
||||
|
||||
foreach($matches as $key => $match) {
|
||||
|
||||
$user1_key = $match->round_id."_".$match->user1_id;
|
||||
$user2_key = $match->round_id."_".$match->user2_id;
|
||||
|
||||
if (Round::isCompleted($match->round_id)) {
|
||||
if (array_key_exists($user1_key,$roundtipps ) && array_key_exists($user2_key,$roundtipps) ) {
|
||||
|
||||
$user1_score = $roundtipps[$user1_key]["rankscore"];
|
||||
$user2_score = $roundtipps[$user2_key]["rankscore"];
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
"config": {
|
||||
"preferred-install": "dist",
|
||||
"sort-packages": true,
|
||||
"optimize-autoloader": true,
|
||||
"optimize-autoloader": false,
|
||||
"secure-http":false
|
||||
}
|
||||
}
|
||||
|
|
|
|||
51
pfosten/composer.lock
generated
51
pfosten/composer.lock
generated
|
|
@ -693,16 +693,16 @@
|
|||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "1.32.0",
|
||||
"version": "1.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"reference": "64563e2b9f69e4db1b82a60e81efa327a30ff343"
|
||||
"reference": "55667c1007a99e82030874b1bb14d24d07108413"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/64563e2b9f69e4db1b82a60e81efa327a30ff343",
|
||||
"reference": "64563e2b9f69e4db1b82a60e81efa327a30ff343",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/55667c1007a99e82030874b1bb14d24d07108413",
|
||||
"reference": "55667c1007a99e82030874b1bb14d24d07108413",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -744,7 +744,7 @@
|
|||
"datetime",
|
||||
"time"
|
||||
],
|
||||
"time": "2018-07-05T06:59:26+00:00"
|
||||
"time": "2018-08-07T08:39:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
|
|
@ -895,20 +895,22 @@
|
|||
},
|
||||
{
|
||||
"name": "psy/psysh",
|
||||
"version": "v0.9.6",
|
||||
"version": "v0.9.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bobthecow/psysh.git",
|
||||
"reference": "4a2ce86f199d51b6e2524214dc06835e872f4fce"
|
||||
"reference": "4f5b6c090948773a8bfeea6a0f07ab7d0b24e932"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/4a2ce86f199d51b6e2524214dc06835e872f4fce",
|
||||
"reference": "4a2ce86f199d51b6e2524214dc06835e872f4fce",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/4f5b6c090948773a8bfeea6a0f07ab7d0b24e932",
|
||||
"reference": "4f5b6c090948773a8bfeea6a0f07ab7d0b24e932",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"dnoegel/php-xdg-base-dir": "0.1",
|
||||
"ext-json": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"jakub-onderka/php-console-highlighter": "0.3.*",
|
||||
"nikic/php-parser": "~1.3|~2.0|~3.0|~4.0",
|
||||
"php": ">=5.4.0",
|
||||
|
|
@ -963,7 +965,7 @@
|
|||
"interactive",
|
||||
"shell"
|
||||
],
|
||||
"time": "2018-06-10T17:57:20+00:00"
|
||||
"time": "2018-08-11T15:54:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ramsey/uuid",
|
||||
|
|
@ -1536,25 +1538,28 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.8.0",
|
||||
"version": "v1.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae"
|
||||
"reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae",
|
||||
"reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
|
||||
"reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-ctype": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8-dev"
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -1587,7 +1592,7 @@
|
|||
"polyfill",
|
||||
"portable"
|
||||
],
|
||||
"time": "2018-04-30T19:57:29+00:00"
|
||||
"time": "2018-08-06T14:22:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
|
|
@ -1650,26 +1655,26 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php70",
|
||||
"version": "v1.8.0",
|
||||
"version": "v1.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
||||
"reference": "77454693d8f10dd23bb24955cffd2d82db1007a6"
|
||||
"reference": "1e24b0c4a56d55aaf368763a06c6d1c7d3194934"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/77454693d8f10dd23bb24955cffd2d82db1007a6",
|
||||
"reference": "77454693d8f10dd23bb24955cffd2d82db1007a6",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/1e24b0c4a56d55aaf368763a06c6d1c7d3194934",
|
||||
"reference": "1e24b0c4a56d55aaf368763a06c6d1c7d3194934",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"paragonie/random_compat": "~1.0|~2.0",
|
||||
"paragonie/random_compat": "~1.0|~2.0|~9.99",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8-dev"
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -1705,7 +1710,7 @@
|
|||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2018-04-26T10:06:28+00:00"
|
||||
"time": "2018-08-06T14:22:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ return array(
|
|||
'App\\Leagues\\Match' => $baseDir . '/app/Leagues/Match.php',
|
||||
'App\\Mail\\RoundmailMailer' => $baseDir . '/app/Mail/RoundmailMailer.php',
|
||||
'App\\ManualPayout' => $baseDir . '/app/ManualPayout.php',
|
||||
'App\\MyClasses\\TimeLogger' => $baseDir . '/app/MyClasses/TimeLogger/TimeLogger.php',
|
||||
'App\\Payment' => $baseDir . '/app/Payment.php',
|
||||
'App\\Providers\\AppServiceProvider' => $baseDir . '/app/Providers/AppServiceProvider.php',
|
||||
'App\\Providers\\AuthServiceProvider' => $baseDir . '/app/Providers/AuthServiceProvider.php',
|
||||
|
|
|
|||
2
pfosten/vendor/composer/autoload_files.php
vendored
2
pfosten/vendor/composer/autoload_files.php
vendored
|
|
@ -13,8 +13,8 @@ return array(
|
|||
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
|
||||
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
|
||||
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
|
||||
'801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php',
|
||||
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
||||
'801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php',
|
||||
'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
|
||||
'58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php',
|
||||
'f18cc91337d49233e5754e93f3ed9ec3' => $vendorDir . '/laravelcollective/html/src/helpers.php',
|
||||
|
|
|
|||
3
pfosten/vendor/composer/autoload_static.php
vendored
3
pfosten/vendor/composer/autoload_static.php
vendored
|
|
@ -14,8 +14,8 @@ class ComposerStaticInita19fb0695e1b61b4feeb3cc3fbdd2feb
|
|||
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
|
||||
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
|
||||
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
|
||||
'801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php',
|
||||
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
||||
'801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php',
|
||||
'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
|
||||
'58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php',
|
||||
'f18cc91337d49233e5754e93f3ed9ec3' => __DIR__ . '/..' . '/laravelcollective/html/src/helpers.php',
|
||||
|
|
@ -322,6 +322,7 @@ class ComposerStaticInita19fb0695e1b61b4feeb3cc3fbdd2feb
|
|||
'App\\Leagues\\Match' => __DIR__ . '/../..' . '/app/Leagues/Match.php',
|
||||
'App\\Mail\\RoundmailMailer' => __DIR__ . '/../..' . '/app/Mail/RoundmailMailer.php',
|
||||
'App\\ManualPayout' => __DIR__ . '/../..' . '/app/ManualPayout.php',
|
||||
'App\\MyClasses\\TimeLogger' => __DIR__ . '/../..' . '/app/MyClasses/TimeLogger/TimeLogger.php',
|
||||
'App\\Payment' => __DIR__ . '/../..' . '/app/Payment.php',
|
||||
'App\\Providers\\AppServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AppServiceProvider.php',
|
||||
'App\\Providers\\AuthServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AuthServiceProvider.php',
|
||||
|
|
|
|||
503
pfosten/vendor/composer/installed.json
vendored
503
pfosten/vendor/composer/installed.json
vendored
|
|
@ -1438,80 +1438,6 @@
|
|||
"php"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "psy/psysh",
|
||||
"version": "v0.9.6",
|
||||
"version_normalized": "0.9.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bobthecow/psysh.git",
|
||||
"reference": "4a2ce86f199d51b6e2524214dc06835e872f4fce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/4a2ce86f199d51b6e2524214dc06835e872f4fce",
|
||||
"reference": "4a2ce86f199d51b6e2524214dc06835e872f4fce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"dnoegel/php-xdg-base-dir": "0.1",
|
||||
"jakub-onderka/php-console-highlighter": "0.3.*",
|
||||
"nikic/php-parser": "~1.3|~2.0|~3.0|~4.0",
|
||||
"php": ">=5.4.0",
|
||||
"symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0",
|
||||
"symfony/var-dumper": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.2",
|
||||
"hoa/console": "~2.15|~3.16",
|
||||
"phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
|
||||
"ext-pdo-sqlite": "The doc command requires SQLite to work.",
|
||||
"ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
|
||||
"ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
|
||||
"hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
|
||||
},
|
||||
"time": "2018-06-10T17:57:20+00:00",
|
||||
"bin": [
|
||||
"bin/psysh"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-develop": "0.9.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Psy\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Justin Hileman",
|
||||
"email": "justin@justinhileman.info",
|
||||
"homepage": "http://justinhileman.com"
|
||||
}
|
||||
],
|
||||
"description": "An interactive shell for modern PHP.",
|
||||
"homepage": "http://psysh.org",
|
||||
"keywords": [
|
||||
"REPL",
|
||||
"console",
|
||||
"interactive",
|
||||
"shell"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "vlucas/phpdotenv",
|
||||
"version": "v2.5.1",
|
||||
|
|
@ -1849,67 +1775,6 @@
|
|||
"random"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php70",
|
||||
"version": "v1.8.0",
|
||||
"version_normalized": "1.8.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
||||
"reference": "77454693d8f10dd23bb24955cffd2d82db1007a6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/77454693d8f10dd23bb24955cffd2d82db1007a6",
|
||||
"reference": "77454693d8f10dd23bb24955cffd2d82db1007a6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"paragonie/random_compat": "~1.0|~2.0",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"time": "2018-04-26T10:06:28+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php70\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v3.4.14",
|
||||
|
|
@ -2031,63 +1896,6 @@
|
|||
"description": "Symfony EventDispatcher Component",
|
||||
"homepage": "https://symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.8.0",
|
||||
"version_normalized": "1.8.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae",
|
||||
"reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"time": "2018-04-30T19:57:29+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Gert de Pagter",
|
||||
"email": "BackEndTea@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for ctype functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"ctype",
|
||||
"polyfill",
|
||||
"portable"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v3.4.14",
|
||||
|
|
@ -2440,63 +2248,6 @@
|
|||
"description": "Symfony Translation Component",
|
||||
"homepage": "https://symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "1.32.0",
|
||||
"version_normalized": "1.32.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"reference": "64563e2b9f69e4db1b82a60e81efa327a30ff343"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/64563e2b9f69e4db1b82a60e81efa327a30ff343",
|
||||
"reference": "64563e2b9f69e4db1b82a60e81efa327a30ff343",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"symfony/translation": "~2.6 || ~3.0 || ~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7"
|
||||
},
|
||||
"time": "2018-07-05T06:59:26+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Carbon\\Laravel\\ServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Brian Nesbitt",
|
||||
"email": "brian@nesbot.com",
|
||||
"homepage": "http://nesbot.com"
|
||||
}
|
||||
],
|
||||
"description": "A simple API extension for DateTime.",
|
||||
"homepage": "http://carbon.nesbot.com",
|
||||
"keywords": [
|
||||
"date",
|
||||
"datetime",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "mtdowling/cron-expression",
|
||||
"version": "v1.2.1",
|
||||
|
|
@ -3663,5 +3414,259 @@
|
|||
"portable",
|
||||
"shim"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "1.33.0",
|
||||
"version_normalized": "1.33.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"reference": "55667c1007a99e82030874b1bb14d24d07108413"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/55667c1007a99e82030874b1bb14d24d07108413",
|
||||
"reference": "55667c1007a99e82030874b1bb14d24d07108413",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"symfony/translation": "~2.6 || ~3.0 || ~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7"
|
||||
},
|
||||
"time": "2018-08-07T08:39:47+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Carbon\\Laravel\\ServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Brian Nesbitt",
|
||||
"email": "brian@nesbot.com",
|
||||
"homepage": "http://nesbot.com"
|
||||
}
|
||||
],
|
||||
"description": "A simple API extension for DateTime.",
|
||||
"homepage": "http://carbon.nesbot.com",
|
||||
"keywords": [
|
||||
"date",
|
||||
"datetime",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php70",
|
||||
"version": "v1.9.0",
|
||||
"version_normalized": "1.9.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
||||
"reference": "1e24b0c4a56d55aaf368763a06c6d1c7d3194934"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/1e24b0c4a56d55aaf368763a06c6d1c7d3194934",
|
||||
"reference": "1e24b0c4a56d55aaf368763a06c6d1c7d3194934",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"paragonie/random_compat": "~1.0|~2.0|~9.99",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"time": "2018-08-06T14:22:27+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php70\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.9.0",
|
||||
"version_normalized": "1.9.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
|
||||
"reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-ctype": "For best performance"
|
||||
},
|
||||
"time": "2018-08-06T14:22:27+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Gert de Pagter",
|
||||
"email": "BackEndTea@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for ctype functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"ctype",
|
||||
"polyfill",
|
||||
"portable"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "psy/psysh",
|
||||
"version": "v0.9.7",
|
||||
"version_normalized": "0.9.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bobthecow/psysh.git",
|
||||
"reference": "4f5b6c090948773a8bfeea6a0f07ab7d0b24e932"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/4f5b6c090948773a8bfeea6a0f07ab7d0b24e932",
|
||||
"reference": "4f5b6c090948773a8bfeea6a0f07ab7d0b24e932",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"dnoegel/php-xdg-base-dir": "0.1",
|
||||
"ext-json": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"jakub-onderka/php-console-highlighter": "0.3.*",
|
||||
"nikic/php-parser": "~1.3|~2.0|~3.0|~4.0",
|
||||
"php": ">=5.4.0",
|
||||
"symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0",
|
||||
"symfony/var-dumper": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.2",
|
||||
"hoa/console": "~2.15|~3.16",
|
||||
"phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
|
||||
"ext-pdo-sqlite": "The doc command requires SQLite to work.",
|
||||
"ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
|
||||
"ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
|
||||
"hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
|
||||
},
|
||||
"time": "2018-08-11T15:54:43+00:00",
|
||||
"bin": [
|
||||
"bin/psysh"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-develop": "0.9.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Psy\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Justin Hileman",
|
||||
"email": "justin@justinhileman.info",
|
||||
"homepage": "http://justinhileman.com"
|
||||
}
|
||||
],
|
||||
"description": "An interactive shell for modern PHP.",
|
||||
"homepage": "http://psysh.org",
|
||||
"keywords": [
|
||||
"REPL",
|
||||
"console",
|
||||
"interactive",
|
||||
"shell"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1015,17 +1015,24 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Throws an exception if the given object is not a DateTime and does not implement DateTimeInterface.
|
||||
* Throws an exception if the given object is not a DateTime and does not implement DateTimeInterface
|
||||
* and not in $other.
|
||||
*
|
||||
* @param mixed $date
|
||||
* @param mixed $date
|
||||
* @param string|array $other
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
protected static function expectDateTime($date)
|
||||
protected static function expectDateTime($date, $other = array())
|
||||
{
|
||||
$message = 'Expected ';
|
||||
foreach ((array) $other as $expect) {
|
||||
$message .= "{$expect}, ";
|
||||
}
|
||||
|
||||
if (!$date instanceof DateTime && !$date instanceof DateTimeInterface) {
|
||||
throw new InvalidArgumentException(
|
||||
'Expected null, string, DateTime or DateTimeInterface, '.
|
||||
$message.'DateTime or DateTimeInterface, '.
|
||||
(is_object($date) ? get_class($date) : gettype($date)).' given'
|
||||
);
|
||||
}
|
||||
|
|
@ -1049,7 +1056,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
return static::parse($date, $this->getTimezone());
|
||||
}
|
||||
|
||||
static::expectDateTime($date);
|
||||
static::expectDateTime($date, array('null', 'string'));
|
||||
|
||||
return $date instanceof self ? $date : static::instance($date);
|
||||
}
|
||||
|
|
@ -1847,7 +1854,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
/**
|
||||
* Set the default format used when type juggling a Carbon instance to a string
|
||||
*
|
||||
* @param string $format
|
||||
* @param string|Closure $format
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -1863,7 +1870,9 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->format(static::$toStringFormat);
|
||||
$format = static::$toStringFormat;
|
||||
|
||||
return $this->format($format instanceof Closure ? $format($this) : $format);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2284,7 +2293,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
/**
|
||||
* Get the minimum instance between a given instance (default now) and the current instance.
|
||||
*
|
||||
* @param \Carbon\Carbon|\DateTimeInterface|mixed $date
|
||||
* @param \Carbon\Carbon|\DateTimeInterface|string|null $date
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
|
|
@ -2312,7 +2321,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
/**
|
||||
* Get the maximum instance between a given instance (default now) and the current instance.
|
||||
*
|
||||
* @param \Carbon\Carbon|\DateTimeInterface|mixed $date
|
||||
* @param \Carbon\Carbon|\DateTimeInterface|string|null $date
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
|
|
@ -2523,7 +2532,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
{
|
||||
$date = $date ?: static::now($this->tz);
|
||||
|
||||
static::expectDateTime($date);
|
||||
static::expectDateTime($date, 'null');
|
||||
|
||||
return $this->format($format) === $date->format($format);
|
||||
}
|
||||
|
|
@ -2572,7 +2581,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
{
|
||||
$date = $date ? static::instance($date) : static::now($this->tz);
|
||||
|
||||
static::expectDateTime($date);
|
||||
static::expectDateTime($date, 'null');
|
||||
|
||||
$ofSameYear = is_null($ofSameYear) ? static::shouldCompareYearWithMonth() : $ofSameYear;
|
||||
|
||||
|
|
@ -4164,7 +4173,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
*/
|
||||
public function endOfDay()
|
||||
{
|
||||
return $this->modify('23.59.59.999999');
|
||||
return $this->modify('23:59:59.999999');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4322,7 +4331,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
*/
|
||||
public function endOfHour()
|
||||
{
|
||||
return $this->setTime($this->hour, 59, 59);
|
||||
return $this->modify("$this->hour:59:59.999999");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4342,7 +4351,27 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
*/
|
||||
public function endOfMinute()
|
||||
{
|
||||
return $this->setTime($this->hour, $this->minute, 59);
|
||||
return $this->modify("$this->hour:$this->minute:59.999999");
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify to start of current minute, seconds become 0
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function startOfSecond()
|
||||
{
|
||||
return $this->modify("$this->hour:$this->minute:$this->second.0");
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify to end of current minute, seconds become 59
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function endOfSecond()
|
||||
{
|
||||
return $this->modify("$this->hour:$this->minute:$this->second.999999");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4616,7 +4645,7 @@ class Carbon extends DateTime implements JsonSerializable
|
|||
/**
|
||||
* Modify the current instance to the average of a given instance (default now) and the current instance.
|
||||
*
|
||||
* @param \Carbon\Carbon|\DateTimeInterface|null $date
|
||||
* @param \Carbon\Carbon|\DateTimeInterface|string|null $date
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -28,4 +28,13 @@ return array(
|
|||
'from_now' => ':time sonra',
|
||||
'after' => ':time sonra',
|
||||
'before' => ':time əvvəl',
|
||||
'diff_now' => 'indi',
|
||||
'diff_yesterday' => 'dünən',
|
||||
'diff_tomorrow' => 'sabah',
|
||||
'diff_before_yesterday' => 'srağagün',
|
||||
'diff_after_tomorrow' => 'birisi gün',
|
||||
'period_recurrences' => ':count dəfədən bir',
|
||||
'period_interval' => 'hər :interval',
|
||||
'period_start_date' => ':date tarixindən başlayaraq',
|
||||
'period_end_date' => ':date tarixinədək',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -10,22 +10,29 @@
|
|||
*/
|
||||
|
||||
return array(
|
||||
'year' => '১ বছর|:count বছর',
|
||||
'y' => '১ বছর|:count বছর',
|
||||
'month' => '১ মাস|:count মাস',
|
||||
'm' => '১ মাস|:count মাস',
|
||||
'week' => '১ সপ্তাহ|:count সপ্তাহ',
|
||||
'w' => '১ সপ্তাহ|:count সপ্তাহ',
|
||||
'day' => '১ দিন|:count দিন',
|
||||
'd' => '১ দিন|:count দিন',
|
||||
'hour' => '১ ঘন্টা|:count ঘন্টা',
|
||||
'h' => '১ ঘন্টা|:count ঘন্টা',
|
||||
'minute' => '১ মিনিট|:count মিনিট',
|
||||
'min' => '১ মিনিট|:count মিনিট',
|
||||
'second' => '১ সেকেন্ড|:count সেকেন্ড',
|
||||
's' => '১ সেকেন্ড|:count সেকেন্ড',
|
||||
'ago' => ':time পূর্বে',
|
||||
'from_now' => 'এখন থেকে :time',
|
||||
'after' => ':time পরে',
|
||||
'before' => ':time আগে',
|
||||
'year' => '১ বছর|:count বছর',
|
||||
'y' => '১ বছর|:count বছর',
|
||||
'month' => '১ মাস|:count মাস',
|
||||
'm' => '১ মাস|:count মাস',
|
||||
'week' => '১ সপ্তাহ|:count সপ্তাহ',
|
||||
'w' => '১ সপ্তাহ|:count সপ্তাহ',
|
||||
'day' => '১ দিন|:count দিন',
|
||||
'd' => '১ দিন|:count দিন',
|
||||
'hour' => '১ ঘন্টা|:count ঘন্টা',
|
||||
'h' => '১ ঘন্টা|:count ঘন্টা',
|
||||
'minute' => '১ মিনিট|:count মিনিট',
|
||||
'min' => '১ মিনিট|:count মিনিট',
|
||||
'second' => '১ সেকেন্ড|:count সেকেন্ড',
|
||||
's' => '১ সেকেন্ড|:count সেকেন্ড',
|
||||
'ago' => ':time পূর্বে',
|
||||
'from_now' => 'এখন থেকে :time',
|
||||
'after' => ':time পরে',
|
||||
'before' => ':time আগে',
|
||||
'diff_now' => 'এখন',
|
||||
'diff_yesterday' => 'গতকাল',
|
||||
'diff_tomorrow' => 'আগামীকাল',
|
||||
'period_recurrences' => ':count বার|:count বার',
|
||||
'period_interval' => 'প্রতি :interval',
|
||||
'period_start_date' => ':date থেকে',
|
||||
'period_end_date' => ':date পর্যন্ত',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ return array(
|
|||
'second' => ':count segon|:count segons',
|
||||
's' => ':count segon|:count segons',
|
||||
'ago' => 'fa :time',
|
||||
'from_now' => 'dins de :time',
|
||||
'from_now' => 'd\'aquí :time',
|
||||
'after' => ':time després',
|
||||
'before' => ':time abans',
|
||||
'diff_now' => 'ara mateix',
|
||||
|
|
|
|||
|
|
@ -31,6 +31,6 @@ return array(
|
|||
'diff_now' => 'ahora mismo',
|
||||
'diff_yesterday' => 'ayer',
|
||||
'diff_tomorrow' => 'mañana',
|
||||
'diff_before_yesterday' => 'anteayer',
|
||||
'diff_before_yesterday' => 'antier',
|
||||
'diff_after_tomorrow' => 'pasado mañana',
|
||||
);
|
||||
|
|
|
|||
2
pfosten/vendor/psy/psysh/composer.json
vendored
2
pfosten/vendor/psy/psysh/composer.json
vendored
|
|
@ -14,6 +14,8 @@
|
|||
],
|
||||
"require": {
|
||||
"php": ">=5.4.0",
|
||||
"ext-json": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0",
|
||||
"symfony/var-dumper": "~2.7|~3.0|~4.0",
|
||||
"nikic/php-parser": "~1.3|~2.0|~3.0|~4.0",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
$config->setRuntimeDir(sys_get_temp_dir() . '/psysh_test/withconfig/temp');
|
||||
$config->setRuntimeDir(\sys_get_temp_dir() . '/psysh_test/withconfig/temp');
|
||||
|
||||
return [
|
||||
'useReadline' => true,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue