Revision 5494f687
Von Sven Schöling vor etwa 13 Jahren hinzugefügt
SL/Dispatcher.pm | ||
---|---|---|
168 | 168 |
|
169 | 169 |
$self->unrequire_bin_mozilla; |
170 | 170 |
|
171 |
$::cgi = CGI->new(''); |
|
172 | 171 |
$::locale = Locale->new($::lx_office_conf{system}->{language}); |
173 | 172 |
$::form = Form->new; |
174 | 173 |
$::instance_conf = SL::InstanceConfiguration->new; |
175 |
$::request = { }; |
|
174 |
$::request = { cgi => CGI->new({}) };
|
|
176 | 175 |
|
177 | 176 |
my $session_result = $::auth->restore_session; |
178 | 177 |
$::auth->create_or_refresh_session; |
... | ... | |
240 | 239 |
} or do { |
241 | 240 |
if ($EVAL_ERROR ne END_OF_REQUEST) { |
242 | 241 |
print STDERR $EVAL_ERROR; |
243 |
$::form->{label_error} = $::cgi->pre($EVAL_ERROR);
|
|
242 |
$::form->{label_error} = $::request->{cgi}->pre($EVAL_ERROR);
|
|
244 | 243 |
eval { show_error('generic/error') }; |
245 | 244 |
} |
246 | 245 |
}; |
... | ... | |
311 | 310 |
|
312 | 311 |
1; |
313 | 312 |
} or do { |
314 |
$::form->{label_error} = $::cgi->pre($EVAL_ERROR);
|
|
313 |
$::form->{label_error} = $::request->{cgi}->pre($EVAL_ERROR);
|
|
315 | 314 |
show_error('generic/error'); |
316 | 315 |
}; |
317 | 316 |
|
... | ... | |
328 | 327 |
|
329 | 328 |
1; |
330 | 329 |
} or do { |
331 |
$::form->{label_error} = $::cgi->pre($EVAL_ERROR);
|
|
330 |
$::form->{label_error} = $::request->{cgi}->pre($EVAL_ERROR);
|
|
332 | 331 |
show_error('generic/error'); |
333 | 332 |
}; |
334 | 333 |
|
Auch abrufbar als: Unified diff
$::cgi entfernt.
Verfahren:
- Für alle Vorkommen von "my $cgi = $::cgi;":
ersetzt durch my $cgi = $::request->{cgi}->new({}) ersetzt
- Wenn in einer Datei alle my $cgi rausgefallen sind auch use CGI entfernt.
- Initialisierung von $::cgi in scripts und Dispatcher entfernt und in dei
Initialisierung von $::request eingebaut.
- cgi aus der Liste der kanonischen globals genommen.
Zu CGI:
- CGI::func und CGI->func sind beides valide Werte, sind aber intern buggy wie
Hölle. CGI:: erzeugt ein Dummyobjekt mit CGI->new, und klobbert damit
cookies. CGI-> ist noch schlimmer und ruft ${CGI}->{.cookies} auf.
- CGI->new({}) ist schneller als CGI->new(''), deshalb habe ich diese version genommen.
Auf meinem Rechner schafft die erste Version etwa 32k/s, die zweite 28k/s.
- CGI kompiliert benötigte Funktionen beim ersten Aufruf über AUTOLOAD.
- cookie benötigen ein $cgi Objekt.