@@ -1,21 +1,21 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | /** |
| 3 | - * Created by PhpStorm. |
|
| 4 | - * User: Claudio Cardinale <[email protected]> |
|
| 5 | - * Date: 07/12/15 |
|
| 6 | - * Time: 21.18 |
|
| 7 | - * This program is free software; you can redistribute it and/or |
|
| 8 | - * modify it under the terms of the GNU General Public License |
|
| 9 | - * as published by the Free Software Foundation; either version 2 |
|
| 10 | - * of the License, or (at your option) any later version. |
|
| 11 | - * This program is distributed in the hope that it will be useful, |
|
| 12 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 13 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
| 14 | - * GNU General Public License for more details. |
|
| 15 | - * You should have received a copy of the GNU General Public License |
|
| 16 | - * along with this program; if not, write to the Free Software |
|
| 17 | - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
| 18 | - */ |
|
| 3 | + * Created by PhpStorm. |
|
| 4 | + * User: Claudio Cardinale <[email protected]> |
|
| 5 | + * Date: 07/12/15 |
|
| 6 | + * Time: 21.18 |
|
| 7 | + * This program is free software; you can redistribute it and/or |
|
| 8 | + * modify it under the terms of the GNU General Public License |
|
| 9 | + * as published by the Free Software Foundation; either version 2 |
|
| 10 | + * of the License, or (at your option) any later version. |
|
| 11 | + * This program is distributed in the hope that it will be useful, |
|
| 12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
| 14 | + * GNU General Public License for more details. |
|
| 15 | + * You should have received a copy of the GNU General Public License |
|
| 16 | + * along with this program; if not, write to the Free Software |
|
| 17 | + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
| 18 | + */ |
|
| 19 | 19 | |
| 20 | 20 | namespace plunner\Console\Commands\Optimise; |
| 21 | 21 | |
@@ -69,8 +69,8 @@ discard block |
||
| 69 | 69 | private $usersMeetings; |
| 70 | 70 | |
| 71 | 71 | /** |
| 72 | - * @var Schedule laravel schedule object needed to perform command in background |
|
| 73 | - */ |
|
| 72 | + * @var Schedule laravel schedule object needed to perform command in background |
|
| 73 | + */ |
|
| 74 | 74 | private $schedule; |
| 75 | 75 | |
| 76 | 76 | /** |
@@ -143,7 +143,7 @@ discard block |
||
| 143 | 143 | } |
| 144 | 144 | |
| 145 | 145 | /** |
| 146 | - * @return \string[] |
|
| 146 | + * @return string[] |
|
| 147 | 147 | */ |
| 148 | 148 | public function getUsers() |
| 149 | 149 | { |
@@ -389,7 +389,7 @@ discard block |
||
| 389 | 389 | |
| 390 | 390 | /** |
| 391 | 391 | * @param string $file |
| 392 | - * @param array $data |
|
| 392 | + * @param string[] $data |
|
| 393 | 393 | * @throws OptimiseException |
| 394 | 394 | */ |
| 395 | 395 | static private function writeCSVArrayNoKey($file, $data) |
@@ -405,7 +405,7 @@ discard block |
||
| 405 | 405 | |
| 406 | 406 | /** |
| 407 | 407 | * @param string $file |
| 408 | - * @param array $data |
|
| 408 | + * @param string[] $data |
|
| 409 | 409 | * @param string $name |
| 410 | 410 | * @throws OptimiseException |
| 411 | 411 | */ |
@@ -422,7 +422,7 @@ discard block |
||
| 422 | 422 | |
| 423 | 423 | /** |
| 424 | 424 | * @param string $file |
| 425 | - * @param array $data |
|
| 425 | + * @param string[] $data |
|
| 426 | 426 | * @param string $name |
| 427 | 427 | * @throws OptimiseException |
| 428 | 428 | */ |
@@ -441,7 +441,7 @@ discard block |
||
| 441 | 441 | /** |
| 442 | 442 | * @param string $file |
| 443 | 443 | * @param array $data |
| 444 | - * @param array $heading |
|
| 444 | + * @param string[] $heading |
|
| 445 | 445 | * @param \Closure $writer |
| 446 | 446 | * @throws OptimiseException |
| 447 | 447 | */ |
@@ -572,7 +572,7 @@ discard block |
||
| 572 | 572 | } |
| 573 | 573 | |
| 574 | 574 | /** |
| 575 | - * @param $proprieties |
|
| 575 | + * @param string[] $proprieties |
|
| 576 | 576 | * @throws OptimiseException |
| 577 | 577 | */ |
| 578 | 578 | private function checkArrayProprieties($proprieties) |
@@ -583,7 +583,7 @@ discard block |
||
| 583 | 583 | } |
| 584 | 584 | |
| 585 | 585 | /** |
| 586 | - * @param $proprieties |
|
| 586 | + * @param string[] $proprieties |
|
| 587 | 587 | * @throws OptimiseException |
| 588 | 588 | */ |
| 589 | 589 | private function checkIntProprieties($proprieties) |
@@ -597,6 +597,8 @@ discard block |
||
| 597 | 597 | * implementation of arraypad that doesn't change original keys<br/> |
| 598 | 598 | * <strong>CAUTION: Only positive $len</strong> |
| 599 | 599 | * @param array $array |
| 600 | + * @param integer $len |
|
| 601 | + * @param integer $pad |
|
| 600 | 602 | * @return array |
| 601 | 603 | */ |
| 602 | 604 | static private function arrayPad(array $array, $len, $pad) |
@@ -112,7 +112,7 @@ discard block |
||
| 112 | 112 | */ |
| 113 | 113 | static private function checkGlpsol() |
| 114 | 114 | { |
| 115 | - if(!(`which glpsol`)) |
|
| 115 | + if (!(`which glpsol`)) |
|
| 116 | 116 | throw new OptimiseException('glpsol is not installed'); |
| 117 | 117 | } |
| 118 | 118 | |
@@ -193,7 +193,7 @@ discard block |
||
| 193 | 193 | */ |
| 194 | 194 | public function setTimeSlots($timeSlots) |
| 195 | 195 | { |
| 196 | - if(!is_int($timeSlots) || $timeSlots <=0) |
|
| 196 | + if (!is_int($timeSlots) || $timeSlots <= 0) |
|
| 197 | 197 | throw new OptimiseException('$timeSlots is not integer or it is not >0'); |
| 198 | 198 | |
| 199 | 199 | $this->timeSlots = $timeSlots; |
@@ -215,7 +215,7 @@ discard block |
||
| 215 | 215 | */ |
| 216 | 216 | public function setMaxTimeSlots($maxTimeSlots) |
| 217 | 217 | { |
| 218 | - if(!is_int($maxTimeSlots) || $maxTimeSlots <=0) |
|
| 218 | + if (!is_int($maxTimeSlots) || $maxTimeSlots <= 0) |
|
| 219 | 219 | throw new OptimiseException('$maxTimeSlots is not integer or it is not >0'); |
| 220 | 220 | |
| 221 | 221 | $this->maxTimeSlots = $maxTimeSlots; |
@@ -238,13 +238,13 @@ discard block |
||
| 238 | 238 | public function setMeetingsAvailability($meetingsAvailability) |
| 239 | 239 | { |
| 240 | 240 | $meetings = array_keys($meetingsAvailability); |
| 241 | - if(array_diff($meetings, $this->meetings)) |
|
| 241 | + if (array_diff($meetings, $this->meetings)) |
|
| 242 | 242 | throw new OptimiseException('meetings different from meetings set'); |
| 243 | - foreach($meetingsAvailability as $key=>$meetingsAvailabilityS) { |
|
| 243 | + foreach ($meetingsAvailability as $key=>$meetingsAvailabilityS) { |
|
| 244 | 244 | $timeSlots = array_keys($meetingsAvailabilityS); |
| 245 | - if(count($timeSlots) != $this->timeSlots) |
|
| 245 | + if (count($timeSlots) != $this->timeSlots) |
|
| 246 | 246 | throw new OptimiseException('timeSlots different from timeSlots set'); |
| 247 | - $meetingsAvailability[$key] = self::arrayPad($meetingsAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
| 247 | + $meetingsAvailability[ $key ] = self::arrayPad($meetingsAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
| 248 | 248 | } |
| 249 | 249 | |
| 250 | 250 | $this->meetingsAvailability = $meetingsAvailability; |
@@ -267,13 +267,13 @@ discard block |
||
| 267 | 267 | public function setMeetingsDuration($meetingsDuration) |
| 268 | 268 | { |
| 269 | 269 | $meetings = array_keys($meetingsDuration); |
| 270 | - if(array_diff($meetings, $this->meetings)) { |
|
| 270 | + if (array_diff($meetings, $this->meetings)) { |
|
| 271 | 271 | print ""; |
| 272 | 272 | throw new OptimiseException('meetings different from meetings set'); |
| 273 | 273 | } |
| 274 | - foreach($meetingsDuration as $duration) { |
|
| 274 | + foreach ($meetingsDuration as $duration) { |
|
| 275 | 275 | $duration = (int) $duration; //TODO fix this (fix for optimise) |
| 276 | - if(!is_int($duration) || $duration <=0) |
|
| 276 | + if (!is_int($duration) || $duration <= 0) |
|
| 277 | 277 | throw new OptimiseException('duration is not integer or it is not >0'); |
| 278 | 278 | } |
| 279 | 279 | |
@@ -297,14 +297,14 @@ discard block |
||
| 297 | 297 | public function setUsersAvailability($usersAvailability) |
| 298 | 298 | { |
| 299 | 299 | $users = array_keys($usersAvailability); |
| 300 | - if(array_diff($users, $this->users)) |
|
| 300 | + if (array_diff($users, $this->users)) |
|
| 301 | 301 | throw new OptimiseException('users different from users set'); |
| 302 | - foreach($usersAvailability as $key=>$usersAvailabilityS) { |
|
| 302 | + foreach ($usersAvailability as $key=>$usersAvailabilityS) { |
|
| 303 | 303 | $timeSlots = array_keys($usersAvailabilityS); |
| 304 | - if(count($timeSlots) != $this->timeSlots) |
|
| 304 | + if (count($timeSlots) != $this->timeSlots) |
|
| 305 | 305 | throw new OptimiseException('timeSlots different from timeSlots set'); |
| 306 | 306 | |
| 307 | - $usersAvailability[$key] = self::arrayPad($usersAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
| 307 | + $usersAvailability[ $key ] = self::arrayPad($usersAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
|
| 308 | 308 | } |
| 309 | 309 | |
| 310 | 310 | $this->usersAvailability = $usersAvailability; |
@@ -327,11 +327,11 @@ discard block |
||
| 327 | 327 | public function setUsersMeetings($usersMeetings) |
| 328 | 328 | { |
| 329 | 329 | $users = array_keys($usersMeetings); |
| 330 | - if(array_diff($users, $this->users)) |
|
| 330 | + if (array_diff($users, $this->users)) |
|
| 331 | 331 | throw new OptimiseException('users different from users set'); |
| 332 | - foreach($usersMeetings as $usersMeetingsS) { |
|
| 332 | + foreach ($usersMeetings as $usersMeetingsS) { |
|
| 333 | 333 | $meetings = array_keys($usersMeetingsS); |
| 334 | - if(array_diff($meetings, $this->meetings)) |
|
| 334 | + if (array_diff($meetings, $this->meetings)) |
|
| 335 | 335 | throw new OptimiseException('meetings different from meetings set'); |
| 336 | 336 | } |
| 337 | 337 | |
@@ -394,13 +394,13 @@ discard block |
||
| 394 | 394 | */ |
| 395 | 395 | static private function writeCSVArrayNoKey($file, $data) |
| 396 | 396 | { |
| 397 | - $f = function ($fp, $data){ |
|
| 397 | + $f = function($fp, $data) { |
|
| 398 | 398 | foreach ($data as $field) { |
| 399 | - fputcsv($fp, [$field]); |
|
| 399 | + fputcsv($fp, [ $field ]); |
|
| 400 | 400 | } |
| 401 | 401 | }; |
| 402 | 402 | |
| 403 | - self::writeCSV($file, $data, ['i'], $f); |
|
| 403 | + self::writeCSV($file, $data, [ 'i' ], $f); |
|
| 404 | 404 | } |
| 405 | 405 | |
| 406 | 406 | /** |
@@ -411,13 +411,13 @@ discard block |
||
| 411 | 411 | */ |
| 412 | 412 | static private function writeCSVArray($file, $data, $name) |
| 413 | 413 | { |
| 414 | - $f = function ($fp, $data){ |
|
| 414 | + $f = function($fp, $data) { |
|
| 415 | 415 | foreach ($data as $key=>$field) { |
| 416 | - fputcsv($fp, [$key, $field]); |
|
| 416 | + fputcsv($fp, [ $key, $field ]); |
|
| 417 | 417 | } |
| 418 | 418 | }; |
| 419 | 419 | |
| 420 | - self::writeCSV($file, $data, ['i', $name], $f); |
|
| 420 | + self::writeCSV($file, $data, [ 'i', $name ], $f); |
|
| 421 | 421 | } |
| 422 | 422 | |
| 423 | 423 | /** |
@@ -428,14 +428,14 @@ discard block |
||
| 428 | 428 | */ |
| 429 | 429 | static private function writeCSVMatrix($file, $data, $name) |
| 430 | 430 | { |
| 431 | - $f = function ($fp, $data){ |
|
| 431 | + $f = function($fp, $data) { |
|
| 432 | 432 | foreach ($data as $key=>$field) { |
| 433 | 433 | foreach ($field as $key2=>$field2) |
| 434 | - fputcsv($fp, [$key, $key2, $field2]); |
|
| 434 | + fputcsv($fp, [ $key, $key2, $field2 ]); |
|
| 435 | 435 | } |
| 436 | 436 | }; |
| 437 | 437 | |
| 438 | - self::writeCSV($file, $data, ['i', 'j', $name], $f); |
|
| 438 | + self::writeCSV($file, $data, [ 'i', 'j', $name ], $f); |
|
| 439 | 439 | } |
| 440 | 440 | |
| 441 | 441 | /** |
@@ -448,7 +448,7 @@ discard block |
||
| 448 | 448 | static private function writeCSV($file, $data, $heading, \Closure $writer) |
| 449 | 449 | { |
| 450 | 450 | $fp = @fopen($file, 'w'); |
| 451 | - if(!$fp) |
|
| 451 | + if (!$fp) |
|
| 452 | 452 | throw new OptimiseException('problem during creation of a file'); |
| 453 | 453 | |
| 454 | 454 | fputcsv($fp, $heading); |
@@ -468,8 +468,8 @@ discard block |
||
| 468 | 468 | { |
| 469 | 469 | $this->writeData(); |
| 470 | 470 | $this->writeModelFile(); |
| 471 | - $event = $this->schedule->exec('glpsol --math '.$this->path->getModelPath())->sendOutputTo($this->path->getOutputPath())->after(function () { }); //this just to execute in foreground |
|
| 472 | - if($event->isDue($this->laravel)) |
|
| 471 | + $event = $this->schedule->exec('glpsol --math '.$this->path->getModelPath())->sendOutputTo($this->path->getOutputPath())->after(function() { }); //this just to execute in foreground |
|
| 472 | + if ($event->isDue($this->laravel)) |
|
| 473 | 473 | $event->run($this->laravel); |
| 474 | 474 | //TODO catch glpsol errors |
| 475 | 475 | return $this; |
@@ -483,9 +483,9 @@ discard block |
||
| 483 | 483 | $strReplaceS = array('{USERS_PATH}', '{MEETINGS_PATH}', '{USER_AVAILABILITY_PATH}', '{MEETINGS_AVAILABILITY_PATH}', '{USER_MEETINGS_PATH}', '{MEETINGS_DURATION_PATH}', '{TIME_SLOTS}', '{MAX_TIME_SLOTS}', '{X_OUT_PATH}', '{Y_OUT_PATH}'); |
| 484 | 484 | $strReplaceR = array($this->path->getUsersPath(), $this->path->getMeetingsPath(), $this->path->getUsersAvailabilityPath(), $this->path->getMeetingsAvailabilityPath(), $this->path->getUsersMeetingsPath(), $this->path->getMeetingsDurationPath(), $this->timeSlots, $this->maxTimeSlots, $this->path->getXPath(), $this->path->getYPath()); |
| 485 | 485 | $f = @fopen($this->path->getModelPath(), "w"); |
| 486 | - if(!$f) |
|
| 486 | + if (!$f) |
|
| 487 | 487 | throw new OptimiseException('problem during creation of a file'); |
| 488 | - fwrite($f, str_replace($strReplaceS, $strReplaceR, file_get_contents(__DIR__ . "/model.stub"))); |
|
| 488 | + fwrite($f, str_replace($strReplaceS, $strReplaceR, file_get_contents(__DIR__."/model.stub"))); |
|
| 489 | 489 | fclose($f); |
| 490 | 490 | } |
| 491 | 491 | |
@@ -513,7 +513,7 @@ discard block |
||
| 513 | 513 | */ |
| 514 | 514 | public function getOutput() |
| 515 | 515 | { |
| 516 | - if(!($data = file_get_contents($this->path->getOutputPath()))) |
|
| 516 | + if (!($data = file_get_contents($this->path->getOutputPath()))) |
|
| 517 | 517 | throw new OptimiseException('problems during reading the file'); |
| 518 | 518 | return $data; |
| 519 | 519 | } |
@@ -525,22 +525,22 @@ discard block |
||
| 525 | 525 | */ |
| 526 | 526 | static private function readCSVFile($file) |
| 527 | 527 | { |
| 528 | - if(!file_exists($file) || !filesize($file)) |
|
| 528 | + if (!file_exists($file) || !filesize($file)) |
|
| 529 | 529 | throw new OptimiseException('no results file'); |
| 530 | 530 | |
| 531 | - $handle = @fopen($file,"r"); |
|
| 532 | - if(!$handle) |
|
| 531 | + $handle = @fopen($file, "r"); |
|
| 532 | + if (!$handle) |
|
| 533 | 533 | throw new OptimiseException('problems during reading the file'); |
| 534 | 534 | |
| 535 | - $ret = []; |
|
| 535 | + $ret = [ ]; |
|
| 536 | 536 | fgetcsv($handle); //skip head |
| 537 | 537 | while (($data = fgetcsv($handle)) !== FALSE) { |
| 538 | - if(count($data) != 3) { |
|
| 538 | + if (count($data) != 3) { |
|
| 539 | 539 | fclose($handle); |
| 540 | 540 | throw new OptimiseException('problems during parsing the file'); |
| 541 | 541 | } |
| 542 | 542 | |
| 543 | - $ret[$data[0]][$data[1]] = $data[2]; |
|
| 543 | + $ret[ $data[ 0 ] ][ $data[ 1 ] ] = $data[ 2 ]; |
|
| 544 | 544 | } |
| 545 | 545 | |
| 546 | 546 | fclose($handle); |
@@ -567,8 +567,8 @@ discard block |
||
| 567 | 567 | */ |
| 568 | 568 | private function checkData() |
| 569 | 569 | { |
| 570 | - $this->checkArrayProprieties(['users', 'meetings', 'meetingsAvailability', 'meetingsDuration', 'usersAvailability', 'usersMeetings']); |
|
| 571 | - $this->checkIntProprieties(['timeSlots', 'maxTimeSlots']); |
|
| 570 | + $this->checkArrayProprieties([ 'users', 'meetings', 'meetingsAvailability', 'meetingsDuration', 'usersAvailability', 'usersMeetings' ]); |
|
| 571 | + $this->checkIntProprieties([ 'timeSlots', 'maxTimeSlots' ]); |
|
| 572 | 572 | } |
| 573 | 573 | |
| 574 | 574 | /** |
@@ -577,8 +577,8 @@ discard block |
||
| 577 | 577 | */ |
| 578 | 578 | private function checkArrayProprieties($proprieties) |
| 579 | 579 | { |
| 580 | - foreach($proprieties as $propriety) |
|
| 581 | - if(count($this->$propriety)==0) |
|
| 580 | + foreach ($proprieties as $propriety) |
|
| 581 | + if (count($this->$propriety) == 0) |
|
| 582 | 582 | throw new OptimiseException($propriety.' is not set correctly'); |
| 583 | 583 | } |
| 584 | 584 | |
@@ -588,8 +588,8 @@ discard block |
||
| 588 | 588 | */ |
| 589 | 589 | private function checkIntProprieties($proprieties) |
| 590 | 590 | { |
| 591 | - foreach($proprieties as $propriety) |
|
| 592 | - if(!is_int($this->$propriety) || $this->$propriety <= 0) |
|
| 591 | + foreach ($proprieties as $propriety) |
|
| 592 | + if (!is_int($this->$propriety) || $this->$propriety <= 0) |
|
| 593 | 593 | throw new OptimiseException($propriety.' is not set correctly'); |
| 594 | 594 | } |
| 595 | 595 | |
@@ -602,8 +602,8 @@ discard block |
||
| 602 | 602 | static private function arrayPad(array $array, $len, $pad) |
| 603 | 603 | { |
| 604 | 604 | $len = $len - count($array); |
| 605 | - for($i = 0; $i<$len; $i++) |
|
| 606 | - $array[] = $pad; |
|
| 605 | + for ($i = 0; $i < $len; $i++) |
|
| 606 | + $array[ ] = $pad; |
|
| 607 | 607 | return $array; |
| 608 | 608 | } |
| 609 | 609 | } |
| 610 | 610 | \ No newline at end of file |
@@ -112,8 +112,9 @@ discard block |
||
| 112 | 112 | */ |
| 113 | 113 | static private function checkGlpsol() |
| 114 | 114 | { |
| 115 | - if(!(`which glpsol`)) |
|
| 116 | - throw new OptimiseException('glpsol is not installed'); |
|
| 115 | + if(!(`which glpsol`)) { |
|
| 116 | + throw new OptimiseException('glpsol is not installed'); |
|
| 117 | + } |
|
| 117 | 118 | } |
| 118 | 119 | |
| 119 | 120 | /** |
@@ -193,8 +194,9 @@ discard block |
||
| 193 | 194 | */ |
| 194 | 195 | public function setTimeSlots($timeSlots) |
| 195 | 196 | { |
| 196 | - if(!is_int($timeSlots) || $timeSlots <=0) |
|
| 197 | - throw new OptimiseException('$timeSlots is not integer or it is not >0'); |
|
| 197 | + if(!is_int($timeSlots) || $timeSlots <=0) { |
|
| 198 | + throw new OptimiseException('$timeSlots is not integer or it is not >0'); |
|
| 199 | + } |
|
| 198 | 200 | |
| 199 | 201 | $this->timeSlots = $timeSlots; |
| 200 | 202 | return $this; |
@@ -215,8 +217,9 @@ discard block |
||
| 215 | 217 | */ |
| 216 | 218 | public function setMaxTimeSlots($maxTimeSlots) |
| 217 | 219 | { |
| 218 | - if(!is_int($maxTimeSlots) || $maxTimeSlots <=0) |
|
| 219 | - throw new OptimiseException('$maxTimeSlots is not integer or it is not >0'); |
|
| 220 | + if(!is_int($maxTimeSlots) || $maxTimeSlots <=0) { |
|
| 221 | + throw new OptimiseException('$maxTimeSlots is not integer or it is not >0'); |
|
| 222 | + } |
|
| 220 | 223 | |
| 221 | 224 | $this->maxTimeSlots = $maxTimeSlots; |
| 222 | 225 | return $this; |
@@ -238,12 +241,14 @@ discard block |
||
| 238 | 241 | public function setMeetingsAvailability($meetingsAvailability) |
| 239 | 242 | { |
| 240 | 243 | $meetings = array_keys($meetingsAvailability); |
| 241 | - if(array_diff($meetings, $this->meetings)) |
|
| 242 | - throw new OptimiseException('meetings different from meetings set'); |
|
| 244 | + if(array_diff($meetings, $this->meetings)) { |
|
| 245 | + throw new OptimiseException('meetings different from meetings set'); |
|
| 246 | + } |
|
| 243 | 247 | foreach($meetingsAvailability as $key=>$meetingsAvailabilityS) { |
| 244 | 248 | $timeSlots = array_keys($meetingsAvailabilityS); |
| 245 | - if(count($timeSlots) != $this->timeSlots) |
|
| 246 | - throw new OptimiseException('timeSlots different from timeSlots set'); |
|
| 249 | + if(count($timeSlots) != $this->timeSlots) { |
|
| 250 | + throw new OptimiseException('timeSlots different from timeSlots set'); |
|
| 251 | + } |
|
| 247 | 252 | $meetingsAvailability[$key] = self::arrayPad($meetingsAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
| 248 | 253 | } |
| 249 | 254 | |
@@ -273,8 +278,9 @@ discard block |
||
| 273 | 278 | } |
| 274 | 279 | foreach($meetingsDuration as $duration) { |
| 275 | 280 | $duration = (int) $duration; //TODO fix this (fix for optimise) |
| 276 | - if(!is_int($duration) || $duration <=0) |
|
| 277 | - throw new OptimiseException('duration is not integer or it is not >0'); |
|
| 281 | + if(!is_int($duration) || $duration <=0) { |
|
| 282 | + throw new OptimiseException('duration is not integer or it is not >0'); |
|
| 283 | + } |
|
| 278 | 284 | } |
| 279 | 285 | |
| 280 | 286 | $this->meetingsDuration = $meetingsDuration; |
@@ -297,12 +303,14 @@ discard block |
||
| 297 | 303 | public function setUsersAvailability($usersAvailability) |
| 298 | 304 | { |
| 299 | 305 | $users = array_keys($usersAvailability); |
| 300 | - if(array_diff($users, $this->users)) |
|
| 301 | - throw new OptimiseException('users different from users set'); |
|
| 306 | + if(array_diff($users, $this->users)) { |
|
| 307 | + throw new OptimiseException('users different from users set'); |
|
| 308 | + } |
|
| 302 | 309 | foreach($usersAvailability as $key=>$usersAvailabilityS) { |
| 303 | 310 | $timeSlots = array_keys($usersAvailabilityS); |
| 304 | - if(count($timeSlots) != $this->timeSlots) |
|
| 305 | - throw new OptimiseException('timeSlots different from timeSlots set'); |
|
| 311 | + if(count($timeSlots) != $this->timeSlots) { |
|
| 312 | + throw new OptimiseException('timeSlots different from timeSlots set'); |
|
| 313 | + } |
|
| 306 | 314 | |
| 307 | 315 | $usersAvailability[$key] = self::arrayPad($usersAvailabilityS, $this->timeSlots + $this->maxTimeSlots, 0); |
| 308 | 316 | } |
@@ -327,12 +335,14 @@ discard block |
||
| 327 | 335 | public function setUsersMeetings($usersMeetings) |
| 328 | 336 | { |
| 329 | 337 | $users = array_keys($usersMeetings); |
| 330 | - if(array_diff($users, $this->users)) |
|
| 331 | - throw new OptimiseException('users different from users set'); |
|
| 338 | + if(array_diff($users, $this->users)) { |
|
| 339 | + throw new OptimiseException('users different from users set'); |
|
| 340 | + } |
|
| 332 | 341 | foreach($usersMeetings as $usersMeetingsS) { |
| 333 | 342 | $meetings = array_keys($usersMeetingsS); |
| 334 | - if(array_diff($meetings, $this->meetings)) |
|
| 335 | - throw new OptimiseException('meetings different from meetings set'); |
|
| 343 | + if(array_diff($meetings, $this->meetings)) { |
|
| 344 | + throw new OptimiseException('meetings different from meetings set'); |
|
| 345 | + } |
|
| 336 | 346 | } |
| 337 | 347 | |
| 338 | 348 | $this->usersMeetings = $usersMeetings; |
@@ -430,8 +440,9 @@ discard block |
||
| 430 | 440 | { |
| 431 | 441 | $f = function ($fp, $data){ |
| 432 | 442 | foreach ($data as $key=>$field) { |
| 433 | - foreach ($field as $key2=>$field2) |
|
| 434 | - fputcsv($fp, [$key, $key2, $field2]); |
|
| 443 | + foreach ($field as $key2=>$field2) { |
|
| 444 | + fputcsv($fp, [$key, $key2, $field2]); |
|
| 445 | + } |
|
| 435 | 446 | } |
| 436 | 447 | }; |
| 437 | 448 | |
@@ -448,8 +459,9 @@ discard block |
||
| 448 | 459 | static private function writeCSV($file, $data, $heading, \Closure $writer) |
| 449 | 460 | { |
| 450 | 461 | $fp = @fopen($file, 'w'); |
| 451 | - if(!$fp) |
|
| 452 | - throw new OptimiseException('problem during creation of a file'); |
|
| 462 | + if(!$fp) { |
|
| 463 | + throw new OptimiseException('problem during creation of a file'); |
|
| 464 | + } |
|
| 453 | 465 | |
| 454 | 466 | fputcsv($fp, $heading); |
| 455 | 467 | |
@@ -469,8 +481,9 @@ discard block |
||
| 469 | 481 | $this->writeData(); |
| 470 | 482 | $this->writeModelFile(); |
| 471 | 483 | $event = $this->schedule->exec('glpsol --math '.$this->path->getModelPath())->sendOutputTo($this->path->getOutputPath())->after(function () { }); //this just to execute in foreground |
| 472 | - if($event->isDue($this->laravel)) |
|
| 473 | - $event->run($this->laravel); |
|
| 484 | + if($event->isDue($this->laravel)) { |
|
| 485 | + $event->run($this->laravel); |
|
| 486 | + } |
|
| 474 | 487 | //TODO catch glpsol errors |
| 475 | 488 | return $this; |
| 476 | 489 | } |
@@ -483,8 +496,9 @@ discard block |
||
| 483 | 496 | $strReplaceS = array('{USERS_PATH}', '{MEETINGS_PATH}', '{USER_AVAILABILITY_PATH}', '{MEETINGS_AVAILABILITY_PATH}', '{USER_MEETINGS_PATH}', '{MEETINGS_DURATION_PATH}', '{TIME_SLOTS}', '{MAX_TIME_SLOTS}', '{X_OUT_PATH}', '{Y_OUT_PATH}'); |
| 484 | 497 | $strReplaceR = array($this->path->getUsersPath(), $this->path->getMeetingsPath(), $this->path->getUsersAvailabilityPath(), $this->path->getMeetingsAvailabilityPath(), $this->path->getUsersMeetingsPath(), $this->path->getMeetingsDurationPath(), $this->timeSlots, $this->maxTimeSlots, $this->path->getXPath(), $this->path->getYPath()); |
| 485 | 498 | $f = @fopen($this->path->getModelPath(), "w"); |
| 486 | - if(!$f) |
|
| 487 | - throw new OptimiseException('problem during creation of a file'); |
|
| 499 | + if(!$f) { |
|
| 500 | + throw new OptimiseException('problem during creation of a file'); |
|
| 501 | + } |
|
| 488 | 502 | fwrite($f, str_replace($strReplaceS, $strReplaceR, file_get_contents(__DIR__ . "/model.stub"))); |
| 489 | 503 | fclose($f); |
| 490 | 504 | } |
@@ -513,8 +527,9 @@ discard block |
||
| 513 | 527 | */ |
| 514 | 528 | public function getOutput() |
| 515 | 529 | { |
| 516 | - if(!($data = file_get_contents($this->path->getOutputPath()))) |
|
| 517 | - throw new OptimiseException('problems during reading the file'); |
|
| 530 | + if(!($data = file_get_contents($this->path->getOutputPath()))) { |
|
| 531 | + throw new OptimiseException('problems during reading the file'); |
|
| 532 | + } |
|
| 518 | 533 | return $data; |
| 519 | 534 | } |
| 520 | 535 | |
@@ -525,12 +540,14 @@ discard block |
||
| 525 | 540 | */ |
| 526 | 541 | static private function readCSVFile($file) |
| 527 | 542 | { |
| 528 | - if(!file_exists($file) || !filesize($file)) |
|
| 529 | - throw new OptimiseException('no results file'); |
|
| 543 | + if(!file_exists($file) || !filesize($file)) { |
|
| 544 | + throw new OptimiseException('no results file'); |
|
| 545 | + } |
|
| 530 | 546 | |
| 531 | 547 | $handle = @fopen($file,"r"); |
| 532 | - if(!$handle) |
|
| 533 | - throw new OptimiseException('problems during reading the file'); |
|
| 548 | + if(!$handle) { |
|
| 549 | + throw new OptimiseException('problems during reading the file'); |
|
| 550 | + } |
|
| 534 | 551 | |
| 535 | 552 | $ret = []; |
| 536 | 553 | fgetcsv($handle); //skip head |
@@ -577,9 +594,10 @@ discard block |
||
| 577 | 594 | */ |
| 578 | 595 | private function checkArrayProprieties($proprieties) |
| 579 | 596 | { |
| 580 | - foreach($proprieties as $propriety) |
|
| 581 | - if(count($this->$propriety)==0) |
|
| 597 | + foreach($proprieties as $propriety) { |
|
| 598 | + if(count($this->$propriety)==0) |
|
| 582 | 599 | throw new OptimiseException($propriety.' is not set correctly'); |
| 600 | + } |
|
| 583 | 601 | } |
| 584 | 602 | |
| 585 | 603 | /** |
@@ -588,9 +606,10 @@ discard block |
||
| 588 | 606 | */ |
| 589 | 607 | private function checkIntProprieties($proprieties) |
| 590 | 608 | { |
| 591 | - foreach($proprieties as $propriety) |
|
| 592 | - if(!is_int($this->$propriety) || $this->$propriety <= 0) |
|
| 609 | + foreach($proprieties as $propriety) { |
|
| 610 | + if(!is_int($this->$propriety) || $this->$propriety <= 0) |
|
| 593 | 611 | throw new OptimiseException($propriety.' is not set correctly'); |
| 612 | + } |
|
| 594 | 613 | } |
| 595 | 614 | |
| 596 | 615 | /** |
@@ -602,8 +621,9 @@ discard block |
||
| 602 | 621 | static private function arrayPad(array $array, $len, $pad) |
| 603 | 622 | { |
| 604 | 623 | $len = $len - count($array); |
| 605 | - for($i = 0; $i<$len; $i++) |
|
| 606 | - $array[] = $pad; |
|
| 624 | + for($i = 0; $i<$len; $i++) { |
|
| 625 | + $array[] = $pad; |
|
| 626 | + } |
|
| 607 | 627 | return $array; |
| 608 | 628 | } |
| 609 | 629 | } |
| 610 | 630 | \ No newline at end of file |
@@ -76,11 +76,11 @@ discard block |
||
| 76 | 76 | { |
| 77 | 77 | $path = new Path(tempnam(sys_get_temp_dir(), 'OPT')); //TODO check the return in case of errors this return false on failure |
| 78 | 78 | unlink($path->getPath()); //remove file to create a dir |
| 79 | - if(file_exists($path->getPath())) |
|
| 79 | + if (file_exists($path->getPath())) |
|
| 80 | 80 | throw new OptimiseException('problem during creation of tmp dir (the directory already exists)'); |
| 81 | - if(!@mkdir($path->getPath())) |
|
| 82 | - throw new OptimiseException('problem during creation of tmp dir (mkdir problem)');; |
|
| 83 | - if(! is_dir($path->getPath())) |
|
| 81 | + if (!@mkdir($path->getPath())) |
|
| 82 | + throw new OptimiseException('problem during creation of tmp dir (mkdir problem)'); ; |
|
| 83 | + if (!is_dir($path->getPath())) |
|
| 84 | 84 | throw new OptimiseException('problem during creation of tmp dir (it is not possible to create directory)'); |
| 85 | 85 | return $path; |
| 86 | 86 | } |
@@ -91,7 +91,7 @@ discard block |
||
| 91 | 91 | * @return bool |
| 92 | 92 | */ |
| 93 | 93 | private static function delTree($dir) { |
| 94 | - $files = array_diff(scandir($dir), array('.','..')); |
|
| 94 | + $files = array_diff(scandir($dir), array('.', '..')); |
|
| 95 | 95 | foreach ($files as $file) { |
| 96 | 96 | (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file"); |
| 97 | 97 | } |
@@ -48,8 +48,9 @@ discard block |
||
| 48 | 48 | */ |
| 49 | 49 | public function __destruct() |
| 50 | 50 | { |
| 51 | - if ($this->path && is_dir($this->path) && !self::delTree($this->path)) |
|
| 52 | - throw new OptimiseException('problems during removing of path directory'); |
|
| 51 | + if ($this->path && is_dir($this->path) && !self::delTree($this->path)) { |
|
| 52 | + throw new OptimiseException('problems during removing of path directory'); |
|
| 53 | + } |
|
| 53 | 54 | } |
| 54 | 55 | |
| 55 | 56 | /** |
@@ -76,12 +77,16 @@ discard block |
||
| 76 | 77 | { |
| 77 | 78 | $path = new Path(tempnam(sys_get_temp_dir(), 'OPT')); //TODO check the return in case of errors this return false on failure |
| 78 | 79 | unlink($path->getPath()); //remove file to create a dir |
| 79 | - if(file_exists($path->getPath())) |
|
| 80 | - throw new OptimiseException('problem during creation of tmp dir (the directory already exists)'); |
|
| 81 | - if(!@mkdir($path->getPath())) |
|
| 82 | - throw new OptimiseException('problem during creation of tmp dir (mkdir problem)');; |
|
| 83 | - if(! is_dir($path->getPath())) |
|
| 84 | - throw new OptimiseException('problem during creation of tmp dir (it is not possible to create directory)'); |
|
| 80 | + if(file_exists($path->getPath())) { |
|
| 81 | + throw new OptimiseException('problem during creation of tmp dir (the directory already exists)'); |
|
| 82 | + } |
|
| 83 | + if(!@mkdir($path->getPath())) { |
|
| 84 | + throw new OptimiseException('problem during creation of tmp dir (mkdir problem)'); |
|
| 85 | + } |
|
| 86 | + ; |
|
| 87 | + if(! is_dir($path->getPath())) { |
|
| 88 | + throw new OptimiseException('problem during creation of tmp dir (it is not possible to create directory)'); |
|
| 89 | + } |
|
| 85 | 90 | return $path; |
| 86 | 91 | } |
| 87 | 92 | |