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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Slawa Olhovchenkov                   2:5030/500     07 Sep 2005  19:37:46
 To : Sergey Skvortsov
 Subject : perl модули
 -------------------------------------------------------------------------------- 
 
 
 07 Sep 05, Sergey Skvortsov writes to Slawa Olhovchenkov:
 
  >> Hу я же объяснял, что данный кусок универсальный и не зависит от
  >> количества плагинов и их функциональности. Все это он должен определять
  >> динамически, в момент запуска. Hу и лежит это все не в системных
  >> каталогах.
 
  SS> Я бы сделал так:
  SS> 1. положил модули в отдельный каталог:
  SS> /usr/local/www/
  SS>               lib/
  SS>                  My/Module/
  SS>                           Plugin1.pm
  SS>                           Plugin2.pm
  SS>               ...
 
 А смысл?
 
  SS> script.cgi:
  SS> ================
  SS> use strict;
  SS> use warnings;
 
  SS> use lib '/usr/local/www/lib/';
 
  SS> my $PLUGIN_DIR = '/usr/local/www/lib/My/Module/';
  SS> my $class_prefix = 'My::Module::';
 
 Я не хочу привязываться к конкретным путям. Они типа меняются от инсталяции к
 инсталяции.
 
  SS> my %MODULES;
 
  SS> opendir(my $dh, $PLUGIN_DIR) || die "can't opendir('$PLUGIN_DIR'): $!";
  SS> while(my $file = readdir($dh))  {
  SS>     next
  SS>         unless $file =~ /^(\w+)\.pm$/;
 
  SS>     my $class = $class_prefix.$1;
  SS>     eval "use $class;";
  SS>     die $@ if $@;
 
  SS>     $MODULES{ $class->ident } = $class;
  SS> }
 
 Вообще-то $class->ident это функция, возвращающая хэш из кейвордов и их кратких 
 описаний (для основных действий).
 
  SS> closedir $dh;
 
  SS> # PROCESS REQUEST
  SS> (my $action) = ($query->path_info() =~ m!^([^/]+)!);
 
  SS> die "bad action '$action'"
  SS>     unless exist $MODULES{$action};
 
 И набор action в основном скрипте не определен. И вызывают его просто
 http://site/admin.
 
  SS> my $class = $MODULES{$action};
  SS> $class->action($query);
 
 И соответственно в начале надо нарисовать простыню в которой внятно рассказать
 чего у нас нынче есть на обед из основных блюд. А в деталях оно потом может
 меняться. Чему твой вариант никак не соответствует, бо старта-то у него и нету, 
 в очередной раз повторяю.
 
  >> Так что, без eval в этом месте -- никак?
 
  SS> Hикак. Разве что 'no strict "refs"' - но это пошло.
 
 Hу и ладно
 
  SS> Ты же в динамике всё это загружаешь.
 
 Hу вдруг чего проглядел.
 
 ... Командир сказал хорек! И никаких сусликов!
 --- GoldED+/BSD 1.1.5
  * Origin:  (2:5030/500)
 
 

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

 Тема:    Автор:    Дата:  
 perl модули   Slawa Olhovchenkov   05 Sep 2005 15:52:32 
 Re: perl модули   Andrey S. Zakharajashchev   05 Sep 2005 16:04:52 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 16:08:40 
 Re: perl модули   Dmitry Sukhodoev   05 Sep 2005 16:15:50 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 16:27:38 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 08:50:29 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 10:09:12 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 10:55:10 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 10:59:50 
 Re: perl модули   Eugene Grosbein   06 Sep 2005 13:54:26 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 11:05:02 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 16:49:29 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 16:55:14 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 17:23:17 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 17:31:24 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 17:50:30 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 17:58:48 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 18:24:16 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 18:38:48 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 20:04:37 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 20:14:10 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 21:57:19 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 22:02:38 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 23:01:08 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 23:08:18 
 Re: perl модули   Sergey Skvortsov   06 Sep 2005 14:14:29 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 14:34:34 
 perl модули   Slawa Olhovchenkov   07 Sep 2005 11:10:32 
 Re: perl модули   Sergey Skvortsov   07 Sep 2005 12:45:32 
 perl модули   Slawa Olhovchenkov   07 Sep 2005 12:57:00 
 Re: perl модули   Sergey Skvortsov   07 Sep 2005 15:49:56 
 perl модули   Slawa Olhovchenkov   07 Sep 2005 19:37:46 
 mod_perl (was Re: perl модули)   Alex L Demidov   06 Sep 2005 17:27:33 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 09:03:40 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 10:10:56 
 perl модули   Lev Serebryakov   06 Sep 2005 00:03:18 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 08:59:37 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 08:58:06 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 10:09:54 
 perl модули   Lev Serebryakov   06 Sep 2005 00:00:02 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 00:35:38 
Архивное /ru.unix.bsd/2221431f0ad3.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional