コード例 #1
0
 /**
  * Create MySQL databases, users and grant permissions.
  */
 public function createDatabases()
 {
     /** @var $dbs MysqlDatabase[] */
     $dbs = $this->_getRepository()->findAll();
     foreach ($dbs as $db) {
         $userModel = new MysqlUserModel();
         $userModel->setUsername($db->getName())->setPassword($this->_cryptservice->decrypt($db->getPassword()));
         $dbModel = new MysqlDatabaseModel();
         $dbModel->setName($db->getName())->setUsers(array($userModel));
         if ($this->_mysqladmin->checkUserExists($userModel)) {
             $this->_mysqladmin->setUserPassword($userModel);
         } else {
             $this->_mysqladmin->createUser($userModel);
         }
         if (!$this->_mysqladmin->checkDatabaseExists($dbModel)) {
             $this->_mysqladmin->createDatabase($dbModel);
             $this->_mysqladmin->grantPermissionsOnDatabase($dbModel);
         }
     }
 }
コード例 #2
0
ファイル: MysqlAdminService.php プロジェクト: jeboehm/lampcp
 /**
  * Get MySQL databases with specified prefix.
  *
  * @param string $prefix
  *
  * @return MysqlDatabaseModel[]
  */
 public function getDatabases($prefix = '')
 {
     /** @var $dbs MysqlDatabaseModel[] */
     $dbs = array();
     $q = sprintf('show databases');
     $result = $this->_mysqli->query($q);
     while ($row = $result->fetch_assoc()) {
         $db = new MysqlDatabaseModel();
         $db->setName($row['Database']);
         if (!empty($prefix)) {
             if (substr($db->getName(), 0, strlen($prefix)) === $prefix) {
                 $dbs[] = $db;
             }
         } else {
             $dbs[] = $db;
         }
     }
     return $dbs;
 }