コード例 #1
0
 public function execute($request)
 {
     $this->database = array();
     $this->form = new sfForm();
     // Do *NOT* load defaults from existing database configuration because
     // anyone can access install actions if the database can't be accessed.
     // Never expose the database configuration, even to administrators
     $this->form->setValidator('databaseHost', new sfValidatorString());
     $this->form->setWidget('databaseHost', new sfWidgetFormInput());
     $this->form->setDefault('databaseName', 'qubit');
     $this->form->setValidator('databaseName', new sfValidatorString(array('required' => true)));
     $this->form->setWidget('databaseName', new sfWidgetFormInput());
     $this->form->setValidator('databasePassword', new sfValidatorString());
     $this->form->setWidget('databasePassword', new sfWidgetFormInputPassword());
     $this->form->setValidator('databasePort', new sfValidatorString());
     $this->form->setWidget('databasePort', new sfWidgetFormInput());
     $this->form->setDefault('databaseUsername', 'root');
     $this->form->setValidator('databaseUsername', new sfValidatorString());
     $this->form->setWidget('databaseUsername', new sfWidgetFormInput());
     if ($request->isMethod('post')) {
         $this->form->bind($request->getPostParameters());
         if ($this->form->isValid()) {
             $this->database = sfInstall::configureDatabase($this->form->getValues());
             if (count($this->database) < 1) {
                 $symlinks = sfInstall::addSymlinks();
                 $this->redirect(array('module' => 'sfInstallPlugin', 'action' => 'loadData'));
             }
         }
     }
 }