예제 #1
1
 protected function tearDown()
 {
     if (is_dir($this->tmpPath)) {
         FileHelper::removeDirectory($this->tmpPath);
     }
     parent::tearDown();
 }
 public function cleanAssetDir()
 {
     $now = time();
     $asset_temp_dirs = glob($this->asset_dir . '/*', GLOB_ONLYDIR);
     // check if less than want to keep
     if (count($asset_temp_dirs) <= $this->keep) {
         return 0;
     }
     // get all dirs and sort by modified
     $modified = [];
     foreach ($asset_temp_dirs as $asset_temp_dir) {
         $modified[$asset_temp_dir] = filemtime($asset_temp_dir);
     }
     asort($modified);
     $nbr_dirs = count($modified);
     // keep last dirs
     for ($i = min($nbr_dirs, $this->keep); $i > 0; $i--) {
         array_pop($modified);
     }
     if ($this->dry_run) {
         $msg_try = 'would have ';
     } else {
         $msg_try = '';
     }
     // remove dirs
     foreach ($modified as $dir => $mod) {
         $this->echo_msg($msg_try . 'removed ' . $dir . ', last modified ' . Yii::$app->formatter->asDatetime($mod));
         if (!$this->dry_run) {
             FileHelper::removeDirectory($dir);
         }
     }
     return $this->dry_run ? 0 : $nbr_dirs;
 }
예제 #3
1
 public function tearDown()
 {
     $filePath = $this->getTestFilePath();
     if (file_exists($filePath)) {
         FileHelper::removeDirectory($filePath);
     }
 }
 public function tearDown()
 {
     FileHelper::removeDirectory($this->sourcePath);
     if (file_exists($this->configFileName)) {
         unlink($this->configFileName);
     }
 }
 protected function tearDown()
 {
     parent::tearDown();
     $keyDir = Yii::getAlias('@canisunit/tokenStorage/runtime/keys');
     if (is_dir($keyDir)) {
         FileHelper::removeDirectory($keyDir);
     }
 }
예제 #6
1
 protected function tearDown()
 {
     //        unlink(__DIR__ . '/runtime/compress.html');
     FileHelper::removeDirectory($this->getParam('components')['view']['minify_path']);
     FileHelper::removeDirectory($this->getParam('components')['assetManager']['basePath']);
     $this->destroyApplication();
     parent::tearDown();
 }
예제 #7
1
 protected function tearDown()
 {
     parent::tearDown();
     $storageDir = Yii::getAlias($this->storagePathAlias);
     if (is_dir($storageDir)) {
         FileHelper::removeDirectory($storageDir);
     }
 }
예제 #8
1
 public static function deleteDomain($domain)
 {
     $dir = static::getDir() . DIRECTORY_SEPARATOR . $domain;
     if (is_dir($dir)) {
         FileHelper::removeDirectory($dir);
     }
     return false;
 }
 /**
  * @inheritdoc
  */
 protected function setUp()
 {
     parent::setUp();
     foreach (glob(Yii::$app->getAssetManager()->basePath . DIRECTORY_SEPARATOR . '*', GLOB_ONLYDIR) as $dir) {
         FileHelper::removeDirectory($dir);
         $this->assertFalse(is_dir($dir));
     }
 }
예제 #10
1
 /**
  * @inheritdoc
  */
 protected function setUp()
 {
     FileHelper::removeDirectory(Yii::getAlias('@tests/uploads'));
     $this->mockApplication();
     Yii::$app->db->createCommand()->truncateTable('attach_file')->execute();
     Yii::$app->db->createCommand()->truncateTable('comment')->execute();
     Yii::$app->db->createCommand()->truncateTable('sqlite_sequence')->execute();
 }
예제 #11
1
 /**
  * @inheritdoc
  */
 public function beforeDelete()
 {
     if (parent::beforeDelete()) {
         FileHelper::removeDirectory(Yii::$app->file->dir . '/' . $this->id . '/');
         return true;
     }
     return false;
 }
 protected function tearDown()
 {
     $filePath = $this->getTestFilePath();
     if (file_exists($filePath)) {
         FileHelper::removeDirectory($filePath);
     }
     $this->dropFileCollection(CustomerFile::collectionName());
     parent::tearDown();
 }
예제 #13
1
 protected function tearDown()
 {
     File::deleteAll();
     News::deleteAll();
     FileHelper::removeDirectory(Yii::getAlias(Yii::$app->fileManager->uploadDirProtected));
     FileHelper::removeDirectory(Yii::getAlias(Yii::$app->fileManager->uploadDirUnprotected));
     FileHelper::removeDirectory(Yii::getAlias('@tests/data/files/tmp'));
     unset($_FILES);
 }
예제 #14
1
파일: IO.php 프로젝트: tsamsiyu/yii2-over
 public function delete($path, array $options = null)
 {
     $options = array_merge(['recursively' => true], $options);
     if (is_dir($path) && $options['recursively']) {
         FileHelper::removeDirectory($path);
     } else {
         @unlink($path);
     }
 }
예제 #15
1
 public function actionClearAssets()
 {
     if (Yii::$app->assetManager->linkAssets == false) {
         foreach (glob(Yii::$app->assetManager->basePath . DIRECTORY_SEPARATOR . '*') as $asset) {
             \yii\helpers\FileHelper::removeDirectory($asset);
         }
     }
     $this->flash('success', Yii::t('hass', 'Assets cleared'));
     return $this->goReferrer();
 }
예제 #16
1
 /**
  * Remove images after model deletion
  */
 public function afterDelete()
 {
     // Remove children Photo models
     foreach ($this->photos as $photo) {
         $photo->delete();
     }
     // Remove directory
     FileHelper::removeDirectory(Yii::getAlias('@webroot/images/' . $this->id));
     parent::afterDelete();
 }
 /**
  * Delete all files of sitemap
  */
 private function deleteFiles()
 {
     // Clear old files
     FileHelper::removeDirectory($this->_pageDir);
     FileHelper::createDirectory($this->_pageDir, 0777);
     // Delete sitemap file
     if (file_exists($this->_pathMainFile)) {
         unlink($this->_pathMainFile);
     }
 }
 public function actionClearCache()
 {
     RequestHelper::allowAjaxOnly();
     RequestHelper::allowOnlyJsonRequest();
     FileHelper::removeDirectory(Yii::getAlias('@app/monster/cache/'));
     FileHelper::removeDirectory(Yii::getAlias('@app/monster/templates/'));
     /** @var Repository $repository */
     $repository = Yii::$app->monsterRepository;
     $repository->reloadBundles();
     return true;
 }
예제 #19
1
    public function init()
    {
        parent::init();
        // TODO: Change the autogenerated stub
        if (empty($this->model)) {
            throw new InvalidConfigException("Property {model} cannot be blank");
        }
        FileHelper::removeDirectory($this->getModule()->getUserDirPath());
        // Delete all uploaded files in past
        $this->pluginOptions = array_replace($this->pluginOptions, ['uploadUrl' => Url::toRoute('/attachments/file/upload'), 'initialPreview' => $this->model->isNewRecord ? [] : $this->model->getInitialPreview(), 'initialPreviewConfig' => $this->model->isNewRecord ? [] : $this->model->getInitialPreviewConfig(), 'uploadAsync' => false]);
        $this->options = array_replace($this->options, ['id' => $this->id]);
        $js = <<<JS
var fileInput = \$('#file-input');
var form = fileInput.closest('form');
var filesUploaded = false;
var filesToUpload = 0;
var uploadButtonClicked = false;
//var formSubmit = false;
form.on('beforeSubmit', function(event) { // form submit event
    console.log('submit');
    if (!filesUploaded && filesToUpload) {
        console.log('upload');
        \$('#file-input').fileinput('upload').fileinput('lock');

        return false;
    }
});

fileInput.on('filebatchpreupload', function(event, data, previewId, index) {
    uploadButtonClicked = true;
});

//fileInput.on('filebatchuploadcomplete', function(event, files, extra) { // all files successfully uploaded
fileInput.on('filebatchuploadsuccess', function(event, data, previewId, index) {
    filesUploaded = true;
    \$('#file-input').fileinput('unlock');
    if (uploadButtonClicked) {
        form.submit();
    } else {
        uploadButtonClicked = false;
    }
});

fileInput.on('filebatchselected', function(event, files) { // there are some files to upload
    filesToUpload = files.length
});

fileInput.on('filecleared', function(event) { // no files to upload
    filesToUpload = 0;
});

JS;
        \Yii::$app->view->registerJs($js);
    }
예제 #20
1
 /**
  * Clears all currently published assets
  */
 public function clear()
 {
     if ($this->basePath == '') {
         return;
     }
     foreach (scandir($this->basePath) as $file) {
         if (substr($file, 0, 1) === '.') {
             continue;
         }
         FileHelper::removeDirectory($this->basePath . DIRECTORY_SEPARATOR . $file);
     }
 }
예제 #21
0
 protected function tearDown()
 {
     parent::tearDown();
     FileHelper::removeDirectory(\Yii::$app->getModule('file')->upload_path);
     FileHelper::removeDirectory(\Yii::$app->getModule('file')->storage_path);
     $this->destroyApplication();
 }
예제 #22
0
 public function removeAttachments($event)
 {
     $model = $this->owner;
     $dir = false;
     foreach ($model->getAllAttachments() as $file) {
         if (!$dir) {
             $dir = $file->getPath(false, true);
         }
         $file->delete();
     }
     if ($dir) {
         FileHelper::removeDirectory($dir);
     }
 }
예제 #23
0
    public function actionUninstall()
    {
        $migrator = new \common\modules\radiata\components\Migrator();
        $migrator->direction = "down";
        $migrator->migrate();
        if($migrator->error) {
            print_r('Error: ' . $migrator->error);
        } else {
            echo 'Done!';
            Yii::$app->cache->flush();
        }

        FileHelper::removeDirectory(Yii::getAlias('@frontend/web/uploads'));
    }
예제 #24
0
 private function clearAliases($assets)
 {
     $len = count($assets);
     $message = '';
     Console::startProgress(0, $len, 'Doing Updates: ', false);
     foreach ($assets as $key => $asset) {
         $uri = Yii::getAlias($asset);
         FileHelper::removeDirectory($uri);
         FileHelper::createDirectory($uri);
         Console::updateProgress($key + 1, $len);
         $message .= 'cleared: ' . $this->ansiFormat($uri, Console::FG_GREEN) . PHP_EOL;
     }
     Console::endProgress("done." . PHP_EOL);
     echo $message;
 }
 public function cleanAssetsDir()
 {
     $this->message("Cleaning assets dir...\n", Console::FG_GREEN);
     $assetsDirs = glob(Yii::getAlias($this->assetsDir) . '/*', GLOB_ONLYDIR);
     foreach ($assetsDirs as $dir) {
         if (in_array(basename($dir), $this->ignoreDirs)) {
             $this->message('ignored ' . $dir . ', last modified ' . Yii::$app->formatter->asDatetime(filemtime($dir)) . "\n", Console::FG_YELLOW);
             continue;
         }
         $this->message('removed ' . $dir . ', last modified ' . Yii::$app->formatter->asDatetime(filemtime($dir)) . "\n", Console::BOLD);
         if (!$this->dryRun) {
             FileHelper::removeDirectory($dir);
         }
     }
     $this->message("Done. Assets dir cleaned\n", Console::FG_GREEN);
 }
예제 #26
0
 /**
  * @inheritdoc
  */
 public function run(&$cmdParams, &$params)
 {
     $taskRunner = $this->taskRunner;
     $path = !empty($cmdParams[0]) ? $taskRunner->parsePath($cmdParams[0]) : '';
     if (empty($path)) {
         throw new Exception('rmdir: Path cannot be empty');
     }
     $this->controller->stdout('Removing directory: ' . $path);
     if (!$this->controller->dryRun) {
         FileHelper::removeDirectory($path);
     } else {
         $this->controller->stdout(' [dry run]', Console::FG_YELLOW);
     }
     $this->controller->stdout("\n");
     return true;
 }
예제 #27
0
 public function actionClear()
 {
     defined('DS') or define('DS', DIRECTORY_SEPARATOR);
     defined('ROOT_DIR') or define('ROOT_DIR', dirname(dirname(__DIR__)));
     //Yii::setAlias('runtime',  . DS . 'runtime');
     //vd(Yii::getAlias('@runtime'));
     $assetsDir = Yii::getAlias('@runtime');
     //vd($assetsDir);
     $dirs = glob($assetsDir . DS . '*', GLOB_ONLYDIR);
     //vd($dirs);
     if (is_array($dirs)) {
         foreach ($dirs as $dir) {
             FileHelper::removeDirectory($dir);
         }
     }
     Yii::$app->session->setFlash('success', 'Кеш успешно удален!');
     return $this->redirect('/admin/index');
 }
예제 #28
0
 public function removeImages($event = false)
 {
     if ($event) {
         $model = $event->sender;
     } else {
         $model = $this->owner;
     }
     $dirs = [];
     foreach ($model->getImages() as $image) {
         if (!$dirs) {
             $dirs[] = $image->getPath(false, false, true);
             $dirs[] = $image->getPath(true, false, true);
         }
         $image->delete();
     }
     foreach ($dirs as $dir) {
         FileHelper::removeDirectory($dir);
     }
 }
예제 #29
0
 /**
  * @param $dir
  * @param $name
  * @param bool|true $removeCacheDir
  * @return bool
  */
 public function moveFileTo($dir, $name = null, $removeCacheDir = true)
 {
     if ($name !== null) {
         $this->setName($name);
     }
     $this->buildId();
     $path = $this->getPath();
     $files = FileHelper::findFiles($path);
     if ($files) {
         foreach ($files as $file) {
             rename($file, Yii::getAlias($dir) . '/' . basename($file));
         }
         if ($removeCacheDir) {
             FileHelper::removeDirectory($path);
         }
         return true;
     }
     return false;
 }
예제 #30
0
 /**
  * Очищает папку '@web/assets'
  */
 public function actionClear_assets()
 {
     $path = \Yii::getAlias('@web/assets');
     $files = scandir($path);
     $c = 0;
     foreach ($files as $folder) {
         if (!in_array($folder, ['.', '..'])) {
             $objectPathFull = $path . DIRECTORY_SEPARATOR . $folder;
             if (is_dir($objectPathFull)) {
                 FileHelper::removeDirectory($objectPathFull);
                 $c++;
             }
         }
     }
     echo 'Готово.' . "\n";
     echo 'Удалено: ' . $c . "\n";
     \Yii::info('Очищена папка @web/assets', 'gs\\site\\clear_assets');
     \Yii::$app->end();
 }