예제 #1
0
파일: Logger.php 프로젝트: 4Publish/4p_core
 /**
  * Logs with an arbitrary level.
  *
  * @param mixed $level
  * @param string $message
  * @param array $context
  * @return null
  */
 public function log($level, $message, array $context = array())
 {
     $errstr = $backtrace = $errno = $errfile = $errline = $code = null;
     if (isset($context[0]) && $context[0] instanceof \Exception) {
         $errstr = $context[0]->getMessage();
         $backtrace = $context[0]->getTraceAsString();
         $errfile = $context[0]->getFile();
         $errline = $context[0]->getLine();
         $code = $context[0]->getCode();
     } else {
         if (array_key_exists('exception', $context) and $context['exception'] instanceof \Exception) {
             $errstr = $context['exception']->getMessage();
             $backtrace = $context['exception']->getTraceAsString();
             $errfile = $context['exception']->getFile();
             $errline = $context['exception']->getLine();
             $code = $context['exception']->getCode();
         } else {
             $errortype = array(E_ERROR => 'Erreur', E_WARNING => 'Alerte', E_PARSE => 'Erreur d\'analyse', E_NOTICE => 'Notice', E_CORE_ERROR => 'Core Error', E_CORE_WARNING => 'Core Warning', E_COMPILE_ERROR => 'Compile Error', E_COMPILE_WARNING => 'Compile Warning', E_USER_ERROR => 'Erreur spécifique', E_USER_WARNING => 'Alerte spécifique', E_USER_NOTICE => 'Note spécifique', E_STRICT => 'Runtime Notice', E_RECOVERABLE_ERROR => 'Catchable Fatal Error');
             $errno = Filter::int($level);
             if ($errno && array_key_exists($errno, $errortype)) {
                 $level = $errortype[$errno];
             }
             $errfile = Filter::raw('file', $context);
             $errline = Filter::raw('line', $context);
             $code = null;
         }
     }
     \Fp\Core\Debug::msg($message, $backtrace, $errno, $errfile, $errline, $level);
     self::$logMessage[] = "<div><b>{$level}:</b> {$message}<div>{$errfile} {$errline}<pre>{$backtrace}</pre></div></div>";
 }
예제 #2
0
 /**
  * @covers Fp\Core\Filter::int
  */
 public function testInt()
 {
     $this->assertEquals(null, \Fp\Core\Filter::int(null));
     $this->assertEquals(0, \Fp\Core\Filter::int(0));
     $this->assertEquals(1425, \Fp\Core\Filter::int(14.25));
     $this->assertEquals(16, \Fp\Core\Filter::int(16));
     $this->assertEquals(null, \Fp\Core\Filter::int('test string'));
     $this->assertEquals(null, \Fp\Core\Filter::int(['test key']));
     $this->assertEquals(99, \Fp\Core\Filter::int(['test'], ['test' => 99]));
     $this->assertEquals(99, \Fp\Core\Filter::int(['test', 'test1'], ['test' => ['test1' => 99]]));
     $this->assertEquals(null, \Fp\Core\Filter::int(['test', 'test1'], ['test' => ['test1' => 'string']]));
 }
예제 #3
0
 /**
  * @param uid $uid
  * @param id $group
  */
 public function removeUserFromGroup($uid, $group)
 {
     if ($uid == 1 && $group == 1) {
         throw new Exception('super admin can\'t be removed from group admin');
     }
     $gid = $this->idGroup($group);
     $uid = Filter::int($uid);
     $q = $this->dbGroupUser->duplicate();
     $q->andWhere(array('uid' => $uid, 'gid' => $gid));
     return $q->delete();
 }