first commit
This commit is contained in:
		
							
								
								
									
										19
									
								
								vendor/psr/log/LICENSE
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								vendor/psr/log/LICENSE
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Copyright (c) 2012 PHP Framework Interoperability Group | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy  | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights  | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell  | ||||
| copies of the Software, and to permit persons to whom the Software is  | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in  | ||||
| all copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
| THE SOFTWARE. | ||||
							
								
								
									
										128
									
								
								vendor/psr/log/Psr/Log/AbstractLogger.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								vendor/psr/log/Psr/Log/AbstractLogger.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,128 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log; | ||||
|  | ||||
| /** | ||||
|  * This is a simple Logger implementation that other Loggers can inherit from. | ||||
|  * | ||||
|  * It simply delegates all log-level-specific methods to the `log` method to | ||||
|  * reduce boilerplate code that a simple Logger that does the same thing with | ||||
|  * messages regardless of the error level has to implement. | ||||
|  */ | ||||
| abstract class AbstractLogger implements LoggerInterface | ||||
| { | ||||
|     /** | ||||
|      * System is unusable. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function emergency($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::EMERGENCY, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Action must be taken immediately. | ||||
|      * | ||||
|      * Example: Entire website down, database unavailable, etc. This should | ||||
|      * trigger the SMS alerts and wake you up. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function alert($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::ALERT, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Critical conditions. | ||||
|      * | ||||
|      * Example: Application component unavailable, unexpected exception. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function critical($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::CRITICAL, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Runtime errors that do not require immediate action but should typically | ||||
|      * be logged and monitored. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function error($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::ERROR, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Exceptional occurrences that are not errors. | ||||
|      * | ||||
|      * Example: Use of deprecated APIs, poor use of an API, undesirable things | ||||
|      * that are not necessarily wrong. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function warning($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::WARNING, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Normal but significant events. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function notice($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::NOTICE, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Interesting events. | ||||
|      * | ||||
|      * Example: User logs in, SQL logs. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function info($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::INFO, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Detailed debug information. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function debug($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::DEBUG, $message, $context); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										7
									
								
								vendor/psr/log/Psr/Log/InvalidArgumentException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								vendor/psr/log/Psr/Log/InvalidArgumentException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log; | ||||
|  | ||||
| class InvalidArgumentException extends \InvalidArgumentException | ||||
| { | ||||
| } | ||||
							
								
								
									
										18
									
								
								vendor/psr/log/Psr/Log/LogLevel.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								vendor/psr/log/Psr/Log/LogLevel.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log; | ||||
|  | ||||
| /** | ||||
|  * Describes log levels. | ||||
|  */ | ||||
| class LogLevel | ||||
| { | ||||
|     const EMERGENCY = 'emergency'; | ||||
|     const ALERT     = 'alert'; | ||||
|     const CRITICAL  = 'critical'; | ||||
|     const ERROR     = 'error'; | ||||
|     const WARNING   = 'warning'; | ||||
|     const NOTICE    = 'notice'; | ||||
|     const INFO      = 'info'; | ||||
|     const DEBUG     = 'debug'; | ||||
| } | ||||
							
								
								
									
										18
									
								
								vendor/psr/log/Psr/Log/LoggerAwareInterface.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								vendor/psr/log/Psr/Log/LoggerAwareInterface.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log; | ||||
|  | ||||
| /** | ||||
|  * Describes a logger-aware instance. | ||||
|  */ | ||||
| interface LoggerAwareInterface | ||||
| { | ||||
|     /** | ||||
|      * Sets a logger instance on the object. | ||||
|      * | ||||
|      * @param LoggerInterface $logger | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function setLogger(LoggerInterface $logger); | ||||
| } | ||||
							
								
								
									
										26
									
								
								vendor/psr/log/Psr/Log/LoggerAwareTrait.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								vendor/psr/log/Psr/Log/LoggerAwareTrait.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log; | ||||
|  | ||||
| /** | ||||
|  * Basic Implementation of LoggerAwareInterface. | ||||
|  */ | ||||
| trait LoggerAwareTrait | ||||
| { | ||||
|     /** | ||||
|      * The logger instance. | ||||
|      * | ||||
|      * @var LoggerInterface | ||||
|      */ | ||||
|     protected $logger; | ||||
|  | ||||
|     /** | ||||
|      * Sets a logger. | ||||
|      * | ||||
|      * @param LoggerInterface $logger | ||||
|      */ | ||||
|     public function setLogger(LoggerInterface $logger) | ||||
|     { | ||||
|         $this->logger = $logger; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										125
									
								
								vendor/psr/log/Psr/Log/LoggerInterface.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								vendor/psr/log/Psr/Log/LoggerInterface.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,125 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log; | ||||
|  | ||||
| /** | ||||
|  * Describes a logger instance. | ||||
|  * | ||||
|  * The message MUST be a string or object implementing __toString(). | ||||
|  * | ||||
|  * The message MAY contain placeholders in the form: {foo} where foo | ||||
|  * will be replaced by the context data in key "foo". | ||||
|  * | ||||
|  * The context array can contain arbitrary data. The only assumption that | ||||
|  * can be made by implementors is that if an Exception instance is given | ||||
|  * to produce a stack trace, it MUST be in a key named "exception". | ||||
|  * | ||||
|  * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md | ||||
|  * for the full interface specification. | ||||
|  */ | ||||
| interface LoggerInterface | ||||
| { | ||||
|     /** | ||||
|      * System is unusable. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function emergency($message, array $context = array()); | ||||
|  | ||||
|     /** | ||||
|      * Action must be taken immediately. | ||||
|      * | ||||
|      * Example: Entire website down, database unavailable, etc. This should | ||||
|      * trigger the SMS alerts and wake you up. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function alert($message, array $context = array()); | ||||
|  | ||||
|     /** | ||||
|      * Critical conditions. | ||||
|      * | ||||
|      * Example: Application component unavailable, unexpected exception. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function critical($message, array $context = array()); | ||||
|  | ||||
|     /** | ||||
|      * Runtime errors that do not require immediate action but should typically | ||||
|      * be logged and monitored. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function error($message, array $context = array()); | ||||
|  | ||||
|     /** | ||||
|      * Exceptional occurrences that are not errors. | ||||
|      * | ||||
|      * Example: Use of deprecated APIs, poor use of an API, undesirable things | ||||
|      * that are not necessarily wrong. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function warning($message, array $context = array()); | ||||
|  | ||||
|     /** | ||||
|      * Normal but significant events. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function notice($message, array $context = array()); | ||||
|  | ||||
|     /** | ||||
|      * Interesting events. | ||||
|      * | ||||
|      * Example: User logs in, SQL logs. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function info($message, array $context = array()); | ||||
|  | ||||
|     /** | ||||
|      * Detailed debug information. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function debug($message, array $context = array()); | ||||
|  | ||||
|     /** | ||||
|      * Logs with an arbitrary level. | ||||
|      * | ||||
|      * @param mixed  $level | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      * | ||||
|      * @throws \Psr\Log\InvalidArgumentException | ||||
|      */ | ||||
|     public function log($level, $message, array $context = array()); | ||||
| } | ||||
							
								
								
									
										142
									
								
								vendor/psr/log/Psr/Log/LoggerTrait.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								vendor/psr/log/Psr/Log/LoggerTrait.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,142 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log; | ||||
|  | ||||
| /** | ||||
|  * This is a simple Logger trait that classes unable to extend AbstractLogger | ||||
|  * (because they extend another class, etc) can include. | ||||
|  * | ||||
|  * It simply delegates all log-level-specific methods to the `log` method to | ||||
|  * reduce boilerplate code that a simple Logger that does the same thing with | ||||
|  * messages regardless of the error level has to implement. | ||||
|  */ | ||||
| trait LoggerTrait | ||||
| { | ||||
|     /** | ||||
|      * System is unusable. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function emergency($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::EMERGENCY, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Action must be taken immediately. | ||||
|      * | ||||
|      * Example: Entire website down, database unavailable, etc. This should | ||||
|      * trigger the SMS alerts and wake you up. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function alert($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::ALERT, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Critical conditions. | ||||
|      * | ||||
|      * Example: Application component unavailable, unexpected exception. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function critical($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::CRITICAL, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Runtime errors that do not require immediate action but should typically | ||||
|      * be logged and monitored. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function error($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::ERROR, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Exceptional occurrences that are not errors. | ||||
|      * | ||||
|      * Example: Use of deprecated APIs, poor use of an API, undesirable things | ||||
|      * that are not necessarily wrong. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function warning($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::WARNING, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Normal but significant events. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function notice($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::NOTICE, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Interesting events. | ||||
|      * | ||||
|      * Example: User logs in, SQL logs. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function info($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::INFO, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Detailed debug information. | ||||
|      * | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function debug($message, array $context = array()) | ||||
|     { | ||||
|         $this->log(LogLevel::DEBUG, $message, $context); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Logs with an arbitrary level. | ||||
|      * | ||||
|      * @param mixed  $level | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      * | ||||
|      * @throws \Psr\Log\InvalidArgumentException | ||||
|      */ | ||||
|     abstract public function log($level, $message, array $context = array()); | ||||
| } | ||||
							
								
								
									
										30
									
								
								vendor/psr/log/Psr/Log/NullLogger.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								vendor/psr/log/Psr/Log/NullLogger.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log; | ||||
|  | ||||
| /** | ||||
|  * This Logger can be used to avoid conditional log calls. | ||||
|  * | ||||
|  * Logging should always be optional, and if no logger is provided to your | ||||
|  * library creating a NullLogger instance to have something to throw logs at | ||||
|  * is a good way to avoid littering your code with `if ($this->logger) { }` | ||||
|  * blocks. | ||||
|  */ | ||||
| class NullLogger extends AbstractLogger | ||||
| { | ||||
|     /** | ||||
|      * Logs with an arbitrary level. | ||||
|      * | ||||
|      * @param mixed  $level | ||||
|      * @param string $message | ||||
|      * @param array  $context | ||||
|      * | ||||
|      * @return void | ||||
|      * | ||||
|      * @throws \Psr\Log\InvalidArgumentException | ||||
|      */ | ||||
|     public function log($level, $message, array $context = array()) | ||||
|     { | ||||
|         // noop | ||||
|     } | ||||
| } | ||||
							
								
								
									
										146
									
								
								vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,146 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log\Test; | ||||
|  | ||||
| use Psr\Log\LoggerInterface; | ||||
| use Psr\Log\LogLevel; | ||||
| use PHPUnit\Framework\TestCase; | ||||
|  | ||||
| /** | ||||
|  * Provides a base test class for ensuring compliance with the LoggerInterface. | ||||
|  * | ||||
|  * Implementors can extend the class and implement abstract methods to run this | ||||
|  * as part of their test suite. | ||||
|  */ | ||||
| abstract class LoggerInterfaceTest extends TestCase | ||||
| { | ||||
|     /** | ||||
|      * @return LoggerInterface | ||||
|      */ | ||||
|     abstract public function getLogger(); | ||||
|  | ||||
|     /** | ||||
|      * This must return the log messages in order. | ||||
|      * | ||||
|      * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>". | ||||
|      * | ||||
|      * Example ->error('Foo') would yield "error Foo". | ||||
|      * | ||||
|      * @return string[] | ||||
|      */ | ||||
|     abstract public function getLogs(); | ||||
|  | ||||
|     public function testImplements() | ||||
|     { | ||||
|         $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @dataProvider provideLevelsAndMessages | ||||
|      */ | ||||
|     public function testLogsAtAllLevels($level, $message) | ||||
|     { | ||||
|         $logger = $this->getLogger(); | ||||
|         $logger->{$level}($message, array('user' => 'Bob')); | ||||
|         $logger->log($level, $message, array('user' => 'Bob')); | ||||
|  | ||||
|         $expected = array( | ||||
|             $level.' message of level '.$level.' with context: Bob', | ||||
|             $level.' message of level '.$level.' with context: Bob', | ||||
|         ); | ||||
|         $this->assertEquals($expected, $this->getLogs()); | ||||
|     } | ||||
|  | ||||
|     public function provideLevelsAndMessages() | ||||
|     { | ||||
|         return array( | ||||
|             LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'), | ||||
|             LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'), | ||||
|             LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'), | ||||
|             LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'), | ||||
|             LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'), | ||||
|             LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'), | ||||
|             LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'), | ||||
|             LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'), | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @expectedException \Psr\Log\InvalidArgumentException | ||||
|      */ | ||||
|     public function testThrowsOnInvalidLevel() | ||||
|     { | ||||
|         $logger = $this->getLogger(); | ||||
|         $logger->log('invalid level', 'Foo'); | ||||
|     } | ||||
|  | ||||
|     public function testContextReplacement() | ||||
|     { | ||||
|         $logger = $this->getLogger(); | ||||
|         $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar')); | ||||
|  | ||||
|         $expected = array('info {Message {nothing} Bob Bar a}'); | ||||
|         $this->assertEquals($expected, $this->getLogs()); | ||||
|     } | ||||
|  | ||||
|     public function testObjectCastToString() | ||||
|     { | ||||
|         if (method_exists($this, 'createPartialMock')) { | ||||
|             $dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString')); | ||||
|         } else { | ||||
|             $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString')); | ||||
|         } | ||||
|         $dummy->expects($this->once()) | ||||
|             ->method('__toString') | ||||
|             ->will($this->returnValue('DUMMY')); | ||||
|  | ||||
|         $this->getLogger()->warning($dummy); | ||||
|  | ||||
|         $expected = array('warning DUMMY'); | ||||
|         $this->assertEquals($expected, $this->getLogs()); | ||||
|     } | ||||
|  | ||||
|     public function testContextCanContainAnything() | ||||
|     { | ||||
|         $closed = fopen('php://memory', 'r'); | ||||
|         fclose($closed); | ||||
|  | ||||
|         $context = array( | ||||
|             'bool' => true, | ||||
|             'null' => null, | ||||
|             'string' => 'Foo', | ||||
|             'int' => 0, | ||||
|             'float' => 0.5, | ||||
|             'nested' => array('with object' => new DummyTest), | ||||
|             'object' => new \DateTime, | ||||
|             'resource' => fopen('php://memory', 'r'), | ||||
|             'closed' => $closed, | ||||
|         ); | ||||
|  | ||||
|         $this->getLogger()->warning('Crazy context data', $context); | ||||
|  | ||||
|         $expected = array('warning Crazy context data'); | ||||
|         $this->assertEquals($expected, $this->getLogs()); | ||||
|     } | ||||
|  | ||||
|     public function testContextExceptionKeyCanBeExceptionOrOtherValues() | ||||
|     { | ||||
|         $logger = $this->getLogger(); | ||||
|         $logger->warning('Random message', array('exception' => 'oops')); | ||||
|         $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail'))); | ||||
|  | ||||
|         $expected = array( | ||||
|             'warning Random message', | ||||
|             'critical Uncaught Exception!' | ||||
|         ); | ||||
|         $this->assertEquals($expected, $this->getLogs()); | ||||
|     } | ||||
| } | ||||
|  | ||||
| class DummyTest | ||||
| { | ||||
|     public function __toString() | ||||
|     { | ||||
|         return 'DummyTest'; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										147
									
								
								vendor/psr/log/Psr/Log/Test/TestLogger.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										147
									
								
								vendor/psr/log/Psr/Log/Test/TestLogger.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,147 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Psr\Log\Test; | ||||
|  | ||||
| use Psr\Log\AbstractLogger; | ||||
|  | ||||
| /** | ||||
|  * Used for testing purposes. | ||||
|  * | ||||
|  * It records all records and gives you access to them for verification. | ||||
|  * | ||||
|  * @method bool hasEmergency($record) | ||||
|  * @method bool hasAlert($record) | ||||
|  * @method bool hasCritical($record) | ||||
|  * @method bool hasError($record) | ||||
|  * @method bool hasWarning($record) | ||||
|  * @method bool hasNotice($record) | ||||
|  * @method bool hasInfo($record) | ||||
|  * @method bool hasDebug($record) | ||||
|  * | ||||
|  * @method bool hasEmergencyRecords() | ||||
|  * @method bool hasAlertRecords() | ||||
|  * @method bool hasCriticalRecords() | ||||
|  * @method bool hasErrorRecords() | ||||
|  * @method bool hasWarningRecords() | ||||
|  * @method bool hasNoticeRecords() | ||||
|  * @method bool hasInfoRecords() | ||||
|  * @method bool hasDebugRecords() | ||||
|  * | ||||
|  * @method bool hasEmergencyThatContains($message) | ||||
|  * @method bool hasAlertThatContains($message) | ||||
|  * @method bool hasCriticalThatContains($message) | ||||
|  * @method bool hasErrorThatContains($message) | ||||
|  * @method bool hasWarningThatContains($message) | ||||
|  * @method bool hasNoticeThatContains($message) | ||||
|  * @method bool hasInfoThatContains($message) | ||||
|  * @method bool hasDebugThatContains($message) | ||||
|  * | ||||
|  * @method bool hasEmergencyThatMatches($message) | ||||
|  * @method bool hasAlertThatMatches($message) | ||||
|  * @method bool hasCriticalThatMatches($message) | ||||
|  * @method bool hasErrorThatMatches($message) | ||||
|  * @method bool hasWarningThatMatches($message) | ||||
|  * @method bool hasNoticeThatMatches($message) | ||||
|  * @method bool hasInfoThatMatches($message) | ||||
|  * @method bool hasDebugThatMatches($message) | ||||
|  * | ||||
|  * @method bool hasEmergencyThatPasses($message) | ||||
|  * @method bool hasAlertThatPasses($message) | ||||
|  * @method bool hasCriticalThatPasses($message) | ||||
|  * @method bool hasErrorThatPasses($message) | ||||
|  * @method bool hasWarningThatPasses($message) | ||||
|  * @method bool hasNoticeThatPasses($message) | ||||
|  * @method bool hasInfoThatPasses($message) | ||||
|  * @method bool hasDebugThatPasses($message) | ||||
|  */ | ||||
| class TestLogger extends AbstractLogger | ||||
| { | ||||
|     /** | ||||
|      * @var array | ||||
|      */ | ||||
|     public $records = []; | ||||
|  | ||||
|     public $recordsByLevel = []; | ||||
|  | ||||
|     /** | ||||
|      * @inheritdoc | ||||
|      */ | ||||
|     public function log($level, $message, array $context = []) | ||||
|     { | ||||
|         $record = [ | ||||
|             'level' => $level, | ||||
|             'message' => $message, | ||||
|             'context' => $context, | ||||
|         ]; | ||||
|  | ||||
|         $this->recordsByLevel[$record['level']][] = $record; | ||||
|         $this->records[] = $record; | ||||
|     } | ||||
|  | ||||
|     public function hasRecords($level) | ||||
|     { | ||||
|         return isset($this->recordsByLevel[$level]); | ||||
|     } | ||||
|  | ||||
|     public function hasRecord($record, $level) | ||||
|     { | ||||
|         if (is_string($record)) { | ||||
|             $record = ['message' => $record]; | ||||
|         } | ||||
|         return $this->hasRecordThatPasses(function ($rec) use ($record) { | ||||
|             if ($rec['message'] !== $record['message']) { | ||||
|                 return false; | ||||
|             } | ||||
|             if (isset($record['context']) && $rec['context'] !== $record['context']) { | ||||
|                 return false; | ||||
|             } | ||||
|             return true; | ||||
|         }, $level); | ||||
|     } | ||||
|  | ||||
|     public function hasRecordThatContains($message, $level) | ||||
|     { | ||||
|         return $this->hasRecordThatPasses(function ($rec) use ($message) { | ||||
|             return strpos($rec['message'], $message) !== false; | ||||
|         }, $level); | ||||
|     } | ||||
|  | ||||
|     public function hasRecordThatMatches($regex, $level) | ||||
|     { | ||||
|         return $this->hasRecordThatPasses(function ($rec) use ($regex) { | ||||
|             return preg_match($regex, $rec['message']) > 0; | ||||
|         }, $level); | ||||
|     } | ||||
|  | ||||
|     public function hasRecordThatPasses(callable $predicate, $level) | ||||
|     { | ||||
|         if (!isset($this->recordsByLevel[$level])) { | ||||
|             return false; | ||||
|         } | ||||
|         foreach ($this->recordsByLevel[$level] as $i => $rec) { | ||||
|             if (call_user_func($predicate, $rec, $i)) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function __call($method, $args) | ||||
|     { | ||||
|         if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) { | ||||
|             $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3]; | ||||
|             $level = strtolower($matches[2]); | ||||
|             if (method_exists($this, $genericMethod)) { | ||||
|                 $args[] = $level; | ||||
|                 return call_user_func_array([$this, $genericMethod], $args); | ||||
|             } | ||||
|         } | ||||
|         throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()'); | ||||
|     } | ||||
|  | ||||
|     public function reset() | ||||
|     { | ||||
|         $this->records = []; | ||||
|         $this->recordsByLevel = []; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										58
									
								
								vendor/psr/log/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								vendor/psr/log/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| PSR Log | ||||
| ======= | ||||
|  | ||||
| This repository holds all interfaces/classes/traits related to | ||||
| [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md). | ||||
|  | ||||
| Note that this is not a logger of its own. It is merely an interface that | ||||
| describes a logger. See the specification for more details. | ||||
|  | ||||
| Installation | ||||
| ------------ | ||||
|  | ||||
| ```bash | ||||
| composer require psr/log | ||||
| ``` | ||||
|  | ||||
| Usage | ||||
| ----- | ||||
|  | ||||
| If you need a logger, you can use the interface like this: | ||||
|  | ||||
| ```php | ||||
| <?php | ||||
|  | ||||
| use Psr\Log\LoggerInterface; | ||||
|  | ||||
| class Foo | ||||
| { | ||||
|     private $logger; | ||||
|  | ||||
|     public function __construct(LoggerInterface $logger = null) | ||||
|     { | ||||
|         $this->logger = $logger; | ||||
|     } | ||||
|  | ||||
|     public function doSomething() | ||||
|     { | ||||
|         if ($this->logger) { | ||||
|             $this->logger->info('Doing work'); | ||||
|         } | ||||
|             | ||||
|         try { | ||||
|             $this->doSomethingElse(); | ||||
|         } catch (Exception $exception) { | ||||
|             $this->logger->error('Oh no!', array('exception' => $exception)); | ||||
|         } | ||||
|  | ||||
|         // do something useful | ||||
|     } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| You can then pick one of the implementations of the interface to get a logger. | ||||
|  | ||||
| If you want to implement the interface, you can require this package and | ||||
| implement `Psr\Log\LoggerInterface` in your code. Please read the | ||||
| [specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) | ||||
| for details. | ||||
		Reference in New Issue
	
	Block a user