{"record":{"id":"ca7e74c8a44fd523","repo":"yiisoft/yii2","slug":"directory-dir-can-not-be-created","errorCode":null,"errorMessage":"Directory '{$dir}' can not be created.","messagePattern":"Directory '(.+?)' can not be created\\.","errorType":"console","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"framework/console/controllers/MessageController.php","lineNumber":317,"sourceCode":"     */\n    public function actionExtract($configFile = null)\n    {\n        $this->initConfig($configFile);\n\n        $files = FileHelper::findFiles(realpath($this->config['sourcePath']), $this->config);\n\n        $messages = [];\n        foreach ($files as $file) {\n            $messages = array_merge_recursive($messages, $this->extractMessages($file, $this->config['translator'], $this->config['ignoreCategories']));\n        }\n\n        $catalog = isset($this->config['catalog']) ? $this->config['catalog'] : 'messages';\n\n        if (in_array($this->config['format'], ['php', 'po'])) {\n            foreach ($this->config['languages'] as $language) {\n                $dir = $this->config['messagePath'] . DIRECTORY_SEPARATOR . $language;\n                if (!is_dir($dir) && !@mkdir($dir)) {\n                    throw new Exception(\"Directory '{$dir}' can not be created.\");\n                }\n                if ($this->config['format'] === 'po') {\n                    $this->saveMessagesToPO($messages, $dir, $this->config['overwrite'], $this->config['removeUnused'], $this->config['sort'], $catalog, $this->config['markUnused']);\n                } else {\n                    $this->saveMessagesToPHP($messages, $dir, $this->config['overwrite'], $this->config['removeUnused'], $this->config['sort'], $this->config['markUnused']);\n                }\n            }\n        } elseif ($this->config['format'] === 'db') {\n            /** @var Connection $db */\n            $db = Instance::ensure($this->config['db'], Connection::className());\n            $sourceMessageTable = isset($this->config['sourceMessageTable']) ? $this->config['sourceMessageTable'] : '{{%source_message}}';\n            $messageTable = isset($this->config['messageTable']) ? $this->config['messageTable'] : '{{%message}}';\n            $this->saveMessagesToDb(\n                $messages,\n                $db,\n                $sourceMessageTable,\n                $messageTable,\n                $this->config['removeUnused'],","sourceCodeStart":299,"sourceCodeEnd":335,"githubUrl":"https://github.com/yiisoft/yii2/blob/66f00d18a29b520f85e8e8f1e32d1e7e7b556cac/framework/console/controllers/MessageController.php#L299-L335","documentation":"Error \"Directory '{$dir}' can not be created.\" thrown in yiisoft/yii2.","triggerScenarios":"Thrown at framework/console/controllers/MessageController.php:317 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"66f00d18a29b520f85e8e8f1e32d1e7e7b556cac","analyzedAt":"2026-08-17T05:17:23.470Z","schemaVersion":2},"datasetVersion":"2026-08-17T09:17:11.063Z"}