function composer_replace_vendor_from_cache() { $composer_cache = mw_cache_path() . 'composer' . DS; $vendor_cache = normalize_path($composer_cache . 'vendor', true); $vendor_cache_old = normalize_path($composer_cache . 'vendor_old', false); $vendor_orig_folder = normalize_path(base_path() . DS . 'vendor', false); if (is_dir($vendor_cache_old)) { $file_utils = new Files(); @$file_utils->rmdir($vendor_cache_old, false); } if (!is_dir($vendor_cache_old)) { mkdir_recursive($vendor_cache_old); } $subfolders = scandir($vendor_cache); foreach ($subfolders as $subfolder) { switch ($subfolder) { case '.': case '..': case 'composer': case 'bin': case 'autoload.php': break; default: $base = basename($subfolder); $base_dir = $vendor_cache . DS . $base; if (is_dir($base_dir)) { $vendor_new_sub_folder = normalize_path($vendor_cache . DS . $base, 1); $vendor_orig_sub_folder = normalize_path($vendor_orig_folder . DS . $base, 1); $vendor_old_sub_folder = normalize_path($vendor_cache_old . DS . $base, 1); if (!is_dir(dirname($vendor_orig_sub_folder))) { mkdir_recursive($vendor_orig_sub_folder); } if (is_dir($vendor_orig_sub_folder)) { try { // $file_utils = new Files(); // $file_utils->rmdir($vendor_orig_sub_folder); rename($vendor_orig_sub_folder, $vendor_old_sub_folder); } catch (\ErrorException $e) { $file_utils = new Files(); $file_utils->copy_directory($vendor_new_sub_folder, $vendor_orig_sub_folder); $file_utils->rmdir($vendor_new_sub_folder); } } @rename($vendor_new_sub_folder, $vendor_orig_sub_folder); } break; } } $config_params = array('no-progress' => true, 'preferred-install' => 'dist'); $runner = new \Microweber\Utils\ComposerUpdate(); $out = $runner->run($config_params); if ($out == 2) { return array('error' => 'Error resolving Composer dependencies'); } elseif ($out == 1) { return array('error' => 'Composer has an unknown error'); } elseif ($out === 0) { return array('success' => 1, 'message' => 'Composer has completed installing'); } else { return array('success' => 1, 'message' => $out); } dd($subfolders); return array('success' => 1, 'message' => "asdasdasdasdas"); if (is_dir($vendor_orig_folder)) { rename($vendor_orig_folder, $vendor_cache_old); } if (is_dir($vendor_cache)) { if (rename($vendor_cache, $vendor_orig_folder)) { $runner = new \Microweber\Utils\ComposerUpdate(); $out = $runner->run_install(); if ($out == 2) { return array('error' => 'Error resolving Composer dependencies'); } elseif ($out == 1) { return array('error' => 'Composer has an unknown error'); } elseif ($out === 0) { return array('success' => 1, 'message' => 'Composer has completed download'); } else { return array('success' => 1, 'message' => $out); } } } // if (is_file($vendor_files_to_move)) { // $move_all = file_get_contents($vendor_files_to_move); // $move_all = json_decode($move_all, true); // if (!empty($move_all)) { // $move_all_chunk = (array_chunk($move_all, 50, true)); // foreach ($move_all_chunk as $items) { // foreach ($items as $k => $item) { // if (isset($move_all[$k])) { // unset($move_all[$k]); // } // $item = normalize_path($item, false); // if (is_file($item)) { // $item_relative = str_replace($vendor_cache, '', $item); // $item_move = $vendor_orig_folder . $item_relative; // $item_move_to_folder = dirname($item_move); // if (!is_dir($item_move_to_folder)) { // mkdir_recursive($item_move_to_folder); // } // rename($item, $item_move); // } // @file_put_contents($vendor_files_to_move, json_encode($move_all, JSON_PRETTY_PRINT)); // break; // } // // } // return array('move_vendor' => 1, 'working' => 1, 'message' => count($move_all, 1) . " files remaining"); // // } else { // @unlink($vendor_files_to_move); // return array('move_vendor' => 1, 'working' => 1, 'message' => "Vedonr files moved"); // } // } elseif (is_file($vendor_files_to_move_autoloader)) { // $move_all = file_get_contents($vendor_files_to_move_autoloader); // $items = @json_decode($move_all, true); // if (!empty($items)) { // foreach ($items as $k => $item) { // unset($items[$k]); // $item = normalize_path($item, false); // if (is_file($item)) { // $item_relative = str_replace($vendor_cache, '', $item); // $item_move = $vendor_orig_folder . $item_relative; // $item_move_to_folder = dirname($item_move); // if (!is_dir($item_move_to_folder)) { // mkdir_recursive($item_move_to_folder); // } // rename($item, $item_move); // } // // @file_put_contents($vendor_files_to_move_autoloader, json_encode($items, JSON_PRETTY_PRINT)); // if (!empty($items)) { // return array('move_vendor' => 1, 'working' => 1, 'message' => count($items, 1) . " autoloader files remaining"); // } // } // } else { // @unlink($vendor_files_to_move_autoloader); // } // // } else { // // return array('success' => 1, 'message' => "All done"); // } }