Cmd-Dwarf

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

# NAME

Dwarf - Web Application Framework (Perl5)

# SYNOPSIS

        package App::Controller::Web;
        use Dwarf::Pragma;
        use parent 'App::Controller::WebBase';
        use Dwarf::DSL;

        sub get {
                render 'index.html';
        }

        1;

# DESCRIPTION

Dwarf は小規模グループ(1〜5人)向け Plack ベースのウェブアプリケーションフレームワークです。<br />

- ある程度の作業単位 (モジュール単位) で分業がし易い
- 設計の美しさより、簡潔性と利便性を重視

といった特徴があります。<br />
<br />
Catalyst に比べるとかなり軽量。多くの Sinatraish な WAF と発想や規模は近いがスタイルが異なります。

## プロジェクト初期化

        % dwarf hello_world

もしくは

        % dir=${dwarf_cloned_dir}
        % mkdir hello_world
        % perl ${dir}/bin/dwarf --share_dir=${dir}/share --output=. hello_world
        created ./hello_world/app
        created ./hello_world/htdocs

## èµ·å‹•

デフォルトでは plackup で起動します。<br />
オプション -m に production と指定することで starman で起動します。<br />
この起動スクリプトは自由に編集して使われることを想定しています。

        % cd hello_world/app
        % ./script/start_searver.sh

## プロジェクト構造

Dwarf は「プロジェクト毎に使い捨てる」という思想で作られています。<br />
よってフレームワーク本体もローカルに置かれるのが特徴です。

        app/
                app.psgi                   ... PSGI ファイル
                cli.psgi                   ... コマンドラインツール用 PSGI ファイル
                cpanfile                   ... cpanfile
                Makefile                   ... Make ファイル
            lib/                           ... プログラム本体
                App.pm                     ... アプリケーションクラス
                App/
                        Config/            ... 設定ファイル
                        Constant.pm        ... 定数定義
                        DB.pm              ... Teng のサブクラス
                        DB/
                                Schema.pm  ... スキーマクラス
                        Controller/        ... コントローラ
                                Api/       ... JSON や XML を返す API 用コントローラ
                                ApiBase.pm ... API 用コントローラのベースクラス
                                Cli/       ... コマンドラインツール用コントローラ
                                CliBase.pm ... コマンドラインツール用コントローラのベースクラス
                                Web/       ... HTML を返す Web ページ用コントローラ
                                WebBase.pm ... Web ページ用コントローラのベースクラス
                        Model/             ... モデル
                        Test.pm            ... テストクラス
                        Util/              ... ユーティリティクラス
                Dwarf.pm                   ... Dwarf 本体
                Dwarf/
            script/                        ... コマンドラインツール
            sql/                           ... SQL
            t/                             ... テスト
            tmpl/                          ... HTML のテンプレート
        htdocs/                            ... ドキュメントルート

## 設定ファイル

設定ファイルは Perl オブジェクトで記述します。<br />
デフォルトで記述されている項目以外については自由に編集することが出来ます。<br />

        package App::Config::Production;
        use Dwarf::Pragma;
        use parent 'Dwarf::Config';

        sub setup {
                my $self = shift;
                return (
                        db => {
                                master => {
                                        dsn      => 'dbi:Pg:dbname=hello_world',
                                        username => 'www',
                                        password => '',
                                        opts     => { pg_enable_utf8 => 1 },
                                },



( run in 0.831 second using v1.01-cache-2.11-cpan-e93a5daba3e )