Platformsh\Cli\Local\LocalBuild::build PHP Method

build() public method

Build a project from any source directory, targeting any destination.
public build ( string $sourceDir, string $destination = null, array $apps = [] ) : boolean
$sourceDir string The absolute path to the source directory.
$destination string Where the web root(s) will be linked (absolute path).
$apps array An array of application names to build.
return boolean
    public function build($sourceDir, $destination = null, array $apps = [])
    {
        $success = true;
        if (file_exists($sourceDir . '/.git')) {
            (new LocalProject())->writeGitExclude($sourceDir);
        }
        $ids = [];
        foreach (LocalApplication::getApplications($sourceDir, $this->config) as $app) {
            $id = $app->getId();
            $ids[] = $id;
            if ($apps && !in_array($id, $apps)) {
                continue;
            }
            $success = $this->buildApp($app, $sourceDir, $destination) && $success;
        }
        $notFounds = array_diff($apps, $ids);
        if ($notFounds) {
            foreach ($notFounds as $notFound) {
                $this->output->writeln("Application not found: <comment>{$notFound}</comment>");
            }
        }
        if (empty($this->settings['no-clean'])) {
            $this->output->writeln("Cleaning up...");
            $this->cleanBuilds($sourceDir);
            $this->cleanArchives($sourceDir);
        }
        return $success;
    }

Usage Example

 /**
  * Test with a custom destination.
  */
 public function testBuildCustomDestination()
 {
     $projectRoot = $this->createDummyProject('tests/data/apps/vanilla');
     $destination = $projectRoot . '/web';
     $builder = new LocalBuild($this->buildSettings, null, self::$output);
     $builder->build($projectRoot, $destination);
     $this->assertFileExists($destination . '/index.html');
 }
All Usage Examples Of Platformsh\Cli\Local\LocalBuild::build