/** * fixing laravel bootstrapper * @param string $public alias public directory * @param string $core alias core directory * @return void */ protected function fixBootstrapper($public, $core) { $_core = Utility::getCorePath($this->getAlias(), $core); $_public = Utility::getPublicPath($this->getAlias(), $public); $core = Utility::findRelativePath($_public, $_core); $indexPath = Utility::combinePath(Utility::getPublicPath($this->getAlias(), $public), 'index.php'); # Auto Loader $autoLoader = \file_get_contents(__DIR__ . '/../Stubs/autoLoader.tpl'); $autoLoader = Utility::renderTemplate($autoLoader, ['{{CORE_PATH}}' => $core]); $autoLoader = Utility::normalizePath($autoLoader); # Bootstrap $bootstrapper = \file_get_contents(__DIR__ . '/../Stubs/bootstrapper.tpl'); $bootstrapper = Utility::renderTemplate($bootstrapper, ['{{CORE_PATH}}' => $core]); $bootstrapper = Utility::normalizePath($bootstrapper); Utility::replaceInFile($indexPath, ['require __DIR__.\'/../bootstrap/autoload.php\';' => $autoLoader, '$app = require_once __DIR__.\'/../bootstrap/app.php\';' => $bootstrapper]); }
/** * start publishing * @param function $progressCallback callback function for tracking publish progress * @param function $doneCallback callback function for calling when publish complete * @return void */ public function startPublish($progressCallback = null, $doneCallback = null) { # Copy core files $coreDirectoryName = ConfigurationManager::Get("profiles.{$this->getProfileName()}.coreDirectory"); $coreDirectoryName = Utility::getCorePath($this->getAlias(), $coreDirectoryName); $this->ignores[] = 'public'; Utility::copyFiles(\base_path(), $coreDirectoryName, $progressCallback, $this->getIngoresList()); $this->ignores = \array_except($this->ignores, ['public']); # Copy public files $publicDirectoryName = ConfigurationManager::Get("profiles.{$this->getProfileName()}.publicDirectory"); $publicDirectoryName = Utility::getPublicPath($this->getAlias(), $publicDirectoryName); Utility::copyFiles(\base_path('public'), $publicDirectoryName, $progressCallback, $this->getIngoresList()); # Copy env file $envFileName = ConfigurationManager::Get("profiles.{$this->getProfileName()}.env"); if ($envFileName != null && file_exists(\base_path($envFileName))) { @\copy(\base_path($envFileName), Utility::combinePath($coreDirectoryName, '.env')); } # Completing progress if (\is_callable($doneCallback)) { \call_user_func($doneCallback); } }