У меня сегодня проблема с FileSystem::makeDirectory
, которая напрямую вызывает mkdir
. Я пытаюсь создать каталог рекурсивно вытягивать нужный режим из моей конфигурации, как так:Laravel 5: mkdir/Filesystem :: makeDirectory с разрешениями из конфигурации
$filesystem->makeDirectory($path, config('permissions.directory'), true);
конфиг/permissions.php
<?php
return [
'directory' => env('PERMISSIONS_DIRECTORY', 0755),
'file' => env('PERMISSIONS_FILE', 0644)
];
.env
...
PERMISSIONS_DIRECTORY=0775
PERMISSIONS_FILE=0664
Когда это вызывается, каталог создается, но разрешения, которые он получает, испорчены. Он получает что-то вроде линии dr----Sr-t+
. После некоторых исследований я пришел к выводу, что когда я передаю значение параметру режима из моей конфигурации, используя config('permissions.directory')
, режим рассматривается как десятичный, а не восьмеричный. Таким образом, вызов config, скорее всего, возвращает 775
, который передается в функцию, а не 0775
.
Если удалить вызов config
, каталог создается с правильными разрешениями:
$filesystem->makeDirectory($path, 0775, true);
Кто-нибудь есть идеи, как обойти эту проблему, пока еще в состоянии сохранить свои права на мой конфигурационный файл ?
Try в 'intval' функции:' intval ('0755', 8) ' –
Это, кажется, работает отлично, спасибо. Я соглашусь, если вы создадите ответ. – Jonathon