Программирование > Perl

Ссылка на дескриптор объекта

(1/1)

skooby:
Доброго времени суток. Начну с того, что решил я написать "движок" сайта. Спроектировал все как надо. Функции работы с шаблонам засунул в отдельный модуль, общие функции в другой модуль. Начал писать функции работы с базой столкнулся с такой проблемой. приведу пример:


--- SQL.pm ---- (модуль работы с базой)

package SQL;

use strict;
use CommonFunc;
use DBI;

my $cf = new CommonFunc;
# -----------------------------------------------
sub new 
{
my $class = shift;
my $self = {};
return bless $self, $class;
}

# ------ Соединение с базой ---------------------
sub connector 
{
my $self = shift;
my $dsn = qq{DBI:mysql:$cf->Config(\'db_name\');$cf->Config(\'db_hostname\')};
my $dbh = DBI->connect($dsn, $cf->Config(\'db_username\'), $cf->Config(\'db_password\'));

return $dbh;
}

sub selector 
{
  ...
}
...

1;


Далее в основном скрипте, я вызываю SQL.pm, создаю объект, т.е. связываю модуль и методы хранящиеся в нем. При вызове метода connector(), произойдет соединение и метод возвратит ссылку на дескриптор объекта БД. Вопрос как мне дальше передавать данную ссылку на дескриптор объекта в метод selector() для выборки и в другие методы?

--- script.pl ---
#!Perl.exe -w

use strict;
use lib \'./libs\';
use CGI::Carp qw(fatalsToBrowser);
use SQL; <--------

print "Content-Type: text/html\\n\\n";

my $db = new SQL;
my $sql = qq{SELECT * FROM car_types};
$db->connector();
$db->selector($sql);


Я раньше не писал что-то серьозное и обходился простыми скриптами, а тут такое дело решил ООП использовать, так что возможно очень уродливо получилось, не судите строго  :(
Вообще хотелось бы узнать как это у других реализовано...

commander:
skooby
1. какой смысл делать new и не делать connect?
ИМХО:
connector  -> _connector т.е. приватный метод... и вызывать его из констуктора...

2. selector будет на все запросы?

3. похожая структура организованна тут:
http://search.cpan.org/~stellar/SQLayer-1.1/SQLayer.pm
может лучше использовать уже что-то готовое... а не изобретать велосипед... ?

skooby:
Спасибо, наверно SQLayer.pm то что надо ) А то чуть не изобрел что-то страшное и без колес ))

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии