LazyRecord\Command\BuildConfCommand::execute PHP Method

execute() public method

public execute ( $configFile = null )
    public function execute($configFile = null)
    {
        /*
         * $ lazy bulid-conf config/lazy.yml phifty/config/lazy.yml
         * 
         * build/lazy/config.php   # is generated
         */
        if (!$configFile && $this->options->{'search'}) {
            $possiblePaths = array('db/config/site_database.yml', 'db/config/database.yml', 'config/database.yml', 'config/site_database.yml');
            foreach ($possiblePaths as $path) {
                if (file_exists($path)) {
                    $this->logger->info("Found default config file: {$path}");
                    $configFile = $path;
                    ConfigLoader::compile($configFile);
                }
            }
        }
        if (!$configFile) {
            throw new Exception('config file is required.');
        }
        $this->logger->info("Building config from {$configFile}");
        $dir = dirname($configFile);
        ConfigLoader::compile($configFile, $this->options->force);
        // make master config link
        $loader = ConfigLoader::getInstance();
        $cleanup = [$loader->symbolFilename, '.lazy.php', '.lazy.yml'];
        foreach ($cleanup as $symlink) {
            if (file_exists($symlink)) {
                $this->logger->debug('Cleaning up symbol link: ' . $symlink);
                unlink($symlink);
            }
        }
        $this->logger->info('Creating symbol link: ' . $loader->symbolFilename . ' -> ' . $configFile);
        if (cross_symlink($configFile, $loader->symbolFilename) === false) {
            $this->logger->error('Config linking failed.');
        }
        $this->logger->info('Done');
    }

Usage Example

Beispiel #1
0
 public function execute()
 {
     $this->mkpath('db/config');
     $this->mkpath('db/migration');
     $command = new InitConfCommand();
     $command->application = $this->application;
     $command->execute();
     $command = new BuildConfCommand();
     $command->application = $this->application;
     $command->execute('db/config/database.yml');
 }