私は次のようなクラスを持っています:
package MyApp::Model::Skunk::Find::Images;
use Moose;
use namespace::autoclean;
extends 'Catalyst::Model::Factory';
use Data::Dump qw/dump/;
sub prepare_arguments {
my ($self, $c) = @_;
# these are for debugging purposes only
$c->log->info("package: " . __PACKAGE__);
$c->log->info("catalyst config: " . dump $c->config);
$c->log->info("images class: " . __PACKAGE__->config->{class});
$c->log->info("images root: " . __PACKAGE__->config->{root});
return { root => __PACKAGE__->config->{root} };
}
myapp.confは次のようになります(スニペット):
<Model::Skunk::Find::Images>
root '/foo/bar/myapp/data/img'
class MyApp::Find
</Model::Skunk::Find::Images>
アプリケーション構成ハッシュ全体にアクセスできますが(この回答を認識しています)、クラスの構成に直接アクセスできないようです。
$c->log->info("images class: " . __PACKAGE__->config->{class});
$c->log->info("images root: " . __PACKAGE__->config->{root});
MyApp :: Skunk :: Find::Images内からはどちらも何も生成しません。
パッケージ内から次のように変数を構成すると、次のようになります。
__PACKAGE__->config(
class => 'MyApp::Find',
root => '/foo/bar/myapp/data/img'
);
すべてが正常に動作します。
誰かが説明するのを手伝ってもらえますか?