public function deploy() { set_time_limit(0); $statuses = array(); // application configs $configs = Input::get('config', array()); $configs['security'] = Input::get('security', array()); // Flush cache on deployment Cache\Cache::flush(); // Migrate and keep schema cache $collections_migrated = 0; foreach (Input::get('schema', array()) as $collection => $config) { if (Schema\Builder::getInstance()->migrate(Model\App::collection($collection)->getModel(), $config)) { $collections_migrated += 1; } } $statuses['schema'] = $collections_migrated; // do we have write permission on this server? if (is_writable(storage_dir())) { $statuses['config'] = Config::deploy($configs); $statuses['schedule'] = Model\ScheduledTask::deploy(Input::get('schedule', array())); // install composer packages $statuses['packages'] = Package\Manager::install(Input::get('packages', array())); } else { $error_message = array('error' => 'without write permissions'); $statuses['error'] = "Without write permissions. Ignoring 'config', 'schedule' and 'packages'."; } // modules $statuses['modules'] = Model\Module::deploy(Input::get('modules', array())); return $statuses; }