예제 #1
0
 public function actionCheckTest()
 {
     $rr = new RequestResponse();
     if ($rr->isRequestAjaxPost()) {
         if (\Yii::$app->request->post('className')) {
             $className = \Yii::$app->request->post('className');
             if (!class_exists($className)) {
                 $rr->message = \Yii::t('app', 'Test is not found');
                 return (array) $rr;
             }
             if (!is_subclass_of($className, CheckComponent::className())) {
                 $rr->message = \Yii::t('app', 'Incorrect test');
                 return (array) $rr;
             }
             /**
              * @var $checkTest CheckComponent
              */
             try {
                 $checkTest = new $className();
                 if ($lastValue = \Yii::$app->request->post('lastValue')) {
                     $checkTest->lastValue = $lastValue;
                 }
                 $checkTest->run();
                 $rr->success = true;
                 $rr->data = (array) $checkTest;
             } catch (\Exception $e) {
                 $rr->message = \Yii::t('app', 'Test is not done') . ': ' . $e->getMessage();
             }
         }
     }
     return (array) $rr;
 }
예제 #2
0
파일: Module.php 프로젝트: Liv1020/cms
 /**
  * @return CheckComponent[]
  */
 public function loadChecksComponents()
 {
     $result = [];
     $dir = new Dir($this->basePath . "/" . static::CHECKS_DIR_NAME);
     if ($dir->isExist()) {
         if ($files = $dir->findFiles()) {
             foreach ($files as $file) {
                 $className = $this->checkNamespace . "\\" . $file->getFileName();
                 if (class_exists($className)) {
                     $component = new $className();
                     if (is_subclass_of($component, CheckComponent::className())) {
                         $result[$component->className()] = $component;
                     }
                 }
             }
         }
     }
     return $result;
 }