Giới thiệu hàm rmdir sucks trong Drupal 8

Drupal 8 & Composer

>> Nhìn lại các phiên bản Versioning trong Drupal

During my work with Drupal 8 & Composer I created a PHP scrip that runs after Composer’s autoload dump. This does many things, such as setup settings.php, move some files and setup a local vagrant environment. As part of the Composer process for Drupal I end up with two vendor directories (long story) so I wanted to add something to this PHP script to delete the vendor directory. The obvious choice is rmdir, but it doesn’t work recursively, which is when I found the example below.

function rrmdir($dir) {
  foreach(glob($dir . '/{,.}*', GLOB_BRACE) as $file) {
    if(is_dir($file)) rrmdir($file); else unlink($file);
  } rmdir($dir);
}

You’ll notice this is looking through all directories, all sub-directories, ell sub-sub-directories, etc. This seemed to work well until I hit the following error:

glob(): Pattern exceeds the maximum allowed length of 1024 characters

This is the point I gave up, decided I had beter thing to procrastinate over and wen’t with passthrucontaining rm -rfto delete the duplicate vendor directory.