skeeks\cms\helpers\FileHelper::findExtensionsFiles PHP Method

findExtensionsFiles() public static method

Search for files on all connected extensions
public static findExtensionsFiles ( string $fileName = '/config/main.php', $onlyFileExists = true ) : array
$fileName string
return array
    public static function findExtensionsFiles($fileName = '/config/main.php', $onlyFileExists = true)
    {
        $configs = [];
        $fileNames = [];
        if (is_string($fileName)) {
            $fileNames[] = $fileName;
        } else {
            if (is_array($fileName)) {
                $fileNames = $fileName;
            }
        }
        foreach ((array) \Yii::$app->extensions as $code => $data) {
            if (is_array($data['alias'])) {
                $configTmp = [];
                foreach ($data['alias'] as $code => $path) {
                    foreach ($fileNames as $fileName) {
                        $file = $path . $fileName;
                        if ($onlyFileExists === true) {
                            if (file_exists($file)) {
                                $configs[] = $file;
                            }
                        } else {
                            $configs[] = $file;
                        }
                    }
                }
            }
        }
        return $configs;
    }

Usage Example

Example #1
0
 /**
  * @return bool
  */
 public function generateTmpConsoleConfig()
 {
     $configs = FileHelper::findExtensionsFiles(['/config/main-console.php']);
     $configs = array_unique(array_merge([\Yii::getAlias('@skeeks/cms/config/main-console.php')], $configs));
     $result = [];
     foreach ($configs as $filePath) {
         $fileData = (array) (include $filePath);
         $result = \yii\helpers\ArrayHelper::merge($result, $fileData);
     }
     if (!file_exists(dirname(TMP_CONSOLE_CONFIG_FILE_EXTENSIONS))) {
         mkdir(dirname(TMP_CONSOLE_CONFIG_FILE_EXTENSIONS), 0777, true);
     }
     $string = var_export($result, true);
     file_put_contents(TMP_CONSOLE_CONFIG_FILE_EXTENSIONS, "<?php\n\nreturn {$string};\n");
     // invalidate opcache of extensions.php if exists
     if (function_exists('opcache_invalidate')) {
         opcache_invalidate(TMP_CONSOLE_CONFIG_FILE_EXTENSIONS, true);
     }
     return file_exists(TMP_CONSOLE_CONFIG_FILE_EXTENSIONS);
 }