Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Igor Mikhailov                       2:5005/42.21   13 Mar 2001  05:29:49
 To : All
 Subject : mason, mod_perl
 -------------------------------------------------------------------------------- 
 
 password: :-P
 
 В статье про мазон на http://www2.linuxjournal.com/lj-issues/issue74/4002.html
 приводится такой пример:
 ============================
 <%once>
 my $dbh;    # Declare $dbh only once
 </%once>
 <%init>
 # If this is the first time we're running,
 # connect to the database
 if ($m->current_comp->first_time)
 {
 $dbh = DBI->connect("DBI:mysql:$database:localhost",
                  $username, $password) ||
 die qq{DBI error from connect: "$DBI::errstr"};
 }
 </init>
 ===========================
 
 Какой смысл DBI->connect делать в <%init>, а не в <%once>, если все равно делаем
 его только один раз?
 
 Дальше. В "Mason Administrator's Guide" в разделе "Using global variables" есть 
 такой намек:
 ==================
     $interp->set_global(dbh => DBI->connect(...));
 
 Again, set_global will do the right thing if you've chosen a different package
 for components.
 
 Now when referring to these globals inside components, you can use the plain
 variable name:
 
     $dbh->prepare...
 ==================
 
 Т.е. типа объявление и инициализация $dbh при старте, и при этом можно вроде как
 DBI->connect не писать в каждой компоненте, а юзать сразу глобальную $dbh.
 Что то я сомниваюсь, что это вообще будет работать (при форке разве разные $dbh 
 будут инициализироваться?). И у меня оно и не заработало.
 
 Сейчас у меня используется Apache::DBI->connect_on_init в handler.pl и
 DBI->connect <%once> в каждом компоненте.
 
 Вроде все работает. Hо неплохо было бы выкинуть DBI->connect из компонент
 вообще, как написано в "Mason Administrator's Guide". Hо - не работает. У кого
 нибудь получилась такая схема?
 
 И еще один вопрос. Похоже что невозможно выйти из компонента таким образом, чтоб
 <%cleanup> все таки вызвался? Т.е. к примеру написать return_n_cleanup - сразу
 прыгаем в конец компоненты, отрабатываем код из <%cleanup>, потом нормально
 завершаемся. Hельзя? :(
 
 With best wishes Igor.
 
     Key fingerprint = 31C3 0B0B 5FF2 FE45 8D64  718D 5BA2 80CC 7B77 88DD
 --- GoldED/LNX 3.0.1
  * Origin: Программа - это последовательность обработки ошибок. (2:5005/42.21)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 mason, mod_perl   Igor Mikhailov   13 Mar 2001 05:29:49 
 mason, mod_perl   Pavel Serdukoff   13 Mar 2001 10:13:30 
 mason, mod_perl   Igor Mikhailov   15 Mar 2001 11:47:26 
 Re: mason, mod_perl   Pavel V. Ammosov   16 Mar 2001 22:07:22 
 mason, mod_perl   Igor Mikhailov   17 Mar 2001 23:19:25 
 Re: mason, mod_perl   Pavel V. Ammosov   18 Mar 2001 00:52:17 
 mason, mod_perl   Igor Mikhailov   18 Mar 2001 07:04:01 
 Re: mason, mod_perl   Pavel V. Ammosov   18 Mar 2001 23:15:52 
 mason, mod_perl   Igor Mikhailov   19 Mar 2001 20:40:59 
 Re: mason, mod_perl   Pavel V. Ammosov   19 Mar 2001 19:34:10 
 mason, mod_perl   Igor Mikhailov   20 Mar 2001 04:45:13 
 Re: mason, mod_perl   Pavel V. Ammosov   22 Mar 2001 01:47:46 
 mason, mod_perl   Igor Mikhailov   22 Mar 2001 22:43:47 
 Re: mason, mod_perl   Pavel V. Ammosov   23 Mar 2001 19:45:01 
 Re: mason, mod_perl   Dmitry Dmitriev   13 Mar 2001 12:56:32 
 mason, mod_perl   Igor Mikhailov   15 Mar 2001 23:06:40 
Архивное /ru.cgi.perl/32643aada59e.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional