Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Class Configuration
 
 автор: freeing   (27.01.2010 в 14:23)   письмо автору
 
 

Есть ли смысл работать с конфигурацией в таком виде:


<?php
/*--------------------------------------------------*/

    // Class Configuration

    
final class Configuration
    
{
        
// MySQL- Connect

        
public $mysql_server "MyServer";
        public 
$mysql_username "MyName";
        public 
$mysql_password "MyPass";

        
// MySQL- Select DB

        
public $mysql_database "MyDB";
    }

/*--------------------------------------------------*/
    
$cfg = new Configuration();
/*--------------------------------------------------*/
?>


Пример использования:


<?php
//*--------------------------------------------------*/
    
require_once "configuration.php";
//*--------------------------------------------------*/
    
$cfg->mysql_server;
    
$cfg->mysql_username;
    
$cfg->mysql_password;
    
$cfg->mysql_database;
//*--------------------------------------------------*/
?>

  Ответить  
 
 автор: Лена   (27.01.2010 в 15:45)   письмо автору
 
   для: freeing   (27.01.2010 в 14:23)
 

Допустим, Вы меняете сервер, логин, пароль, базу, вы каждый раз класс ваш будете заново переписывать?
Можно еще коннект сделать отдельным методом и запихнуть его в конструктор. Чтобы можно было в конструктор передать параметры и сразу приконнектиться.
Если без интерфейсов(хотя правильнее через них), то надо так:


<?php
/*--------------------------------------------------*/

    // Class Configuration

    
final class Configuration{
        
// MySQL- Connect

        
private $mysql_server;
        private 
$mysql_username;
        private 
$mysql_password;
        private 
$mysql_database;

         public function 
MyConnect($server,$username,$password,$database){
         
$this->mysql_server $server;
         
$this->mysql_username $username;
         
$this->mysql_password $password;
         
$this->mysql_database $database;
     }
      
//здесь надо поставить метод для обработки ошибок

      //здесь поставить метод на коннект с базой
    
}

/*--------------------------------------------------*/
    
$cfg = new Configuration();
    
$cfg->MyConnect("MyServer","MyName","MyPass","MyDB");
//здесь вызвать метод на коннект с базой
/*--------------------------------------------------*/
?>

  Ответить  
 
 автор: Тень   (27.01.2010 в 15:59)
 
   для: freeing   (27.01.2010 в 14:23)
 

Нет, смысла нет.

  Ответить  
 
 автор: freeing   (27.01.2010 в 16:54)   письмо автору
 
   для: Тень   (27.01.2010 в 15:59)
 

Ну а если так? Так же надежнее с точки зрения безопасности?

Файл configuration.php

<?php
/*--------------------------------------------------*/

    // Class Configuration

    
class Configuration
    
{
        
// MySQL- Connect

        
protected $mysql_server "MyServer";
        protected 
$mysql_username "MyName";
        protected 
$mysql_password "MyPass";

        
// MySQL- Select DB

        
protected $mysql_database_name "MyDB";
    }

/*--------------------------------------------------*/
?>

Файл mysql.php

<?php
/*--------------------------------------------------*/
    
require_once "configuration.php"
/*--------------------------------------------------*/

    // Class MySQL

    
final class MySQL extends Configuration
    
{
        private 
$resource;

        
// Function Connect

        
public function Connect()
        {
            
$this->resource mysql_connect
            
(
                
$this->mysql_server,
                
$this->mysql_username,
                
$this->mysql_password
            
);
        }

        
// Function Close

        
public function Close()
        {
            
mysql_close($this->resource);
        }
    }

/*--------------------------------------------------*/
    
$MySQL = new MySQL();
/*--------------------------------------------------*/
?>

Пример использования:

<?php
/*--------------------------------------------------*/
    
require_once "mysql.php"
/*--------------------------------------------------*/

    
$MySQL->Connect();

    
//
    /* какое то действие */
    //

    
$MySQL->Close();

/*--------------------------------------------------*/
?>

  Ответить  
 
 автор: Тень   (27.01.2010 в 18:34)
 
   для: freeing   (27.01.2010 в 16:54)
 

Ну безопасность тут не при чём (пока).

Пока что у Вас практически пустая обёртка вокруг mysql_* функций, для чего Вам она? Есть смысл её использовать, если Вам она кажется удобнее.

  Ответить  
 
 автор: Тень   (27.01.2010 в 18:35)
 
   для: Тень   (27.01.2010 в 18:34)
 

Да, ещё: не делайте тогда уж обёртку MySQL-зависимой, и тогда от неё появится хоть какой-то плюс (лёгкая смена СУБД).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования