linux mae chmod bas of dir code example

Example: running chmod command using code

private function chmod_r($dir, $permission)
{
  $dp = opendir($dir);

  while($file = readdir($dp))
  {
    if (($file == ".") || ($file == "..")) continue;

    $path = $dir . DIRECTORY_SEPARATOR . $file;
    $is_dir = is_dir($path);

    $this->set_perms($path, $is_dir, $permission);
    if($is_dir) {
    	$this->chmod_r($path, $permission);
    }
  }
  closedir($dp);
}

private function set_perms($file, $is_dir, $permission)
{
  $perm = substr(sprintf("%o", fileperms($file)), -4);
  $dirPermissions = $permission;
  $filePermissions = $permission;

  if($is_dir && $perm != $dirPermissions){
  	chmod($file, octdec($dirPermissions));
  }
  else if(!$is_dir && $perm != $filePermissions){
  chmod($file, octdec($filePermissions));
  }

  flush();
}

$permission = '0777';

$dir = storage_path('framework');

$this->chmod_r($dir, $permission);