init catalyst project in silex
카탈리스트 시작을 위해 Helper를 준비합니다.
$ git clone git://github.com/aanoaa/Catalyst-Helper-View-TTSilex.git
...
$ git clone git://github.com/aanoaa/Catalyst-Helper-Carton.git
...
$ cd Catalyst-Helper-View-TTSilex/
$ git checkout develop
$ dzil build
...
$ cd Catalyst-Helper-View-TTSilex-v0.0.1/
$ perl Makefile.PL
...
$ make && make install
...
$ cd ../../Catalyst-Helper-Carton/
$ dzil build
$ cd Catalyst-Helper-Carton-v0.0.1/
$ perl Makefile.PL
...
$ make && make install
catalyst.pl을 사용 하여 Foo::Web을 생성합니다.
$ cd ~/yourworkspace/
$ catalyst.pl Foo::Web
...
파일명을 수정하여 줍니다.
$ cd Foo-Web/
$ mv foo_web.psgi app.psgi
스크립트를 사용하게 되면 .conf.new 파일이 생성이 되며 .conf파일에 붙여줍니다.
$ script/foo_web_create.pl view Bootstrap TTSilex
...
$ vi foo_web.conf <<--- foo_web.conf.new
카툰을 설치 하고 Make 파일에 추가 하라는 메세지가 나옵니다.
$ script/foo_web_create.pl Carton
...
$ vim Makefile.PL # add dependencies
위의 단계에서 명시된 모듈 및 추가 필요 모듈
//명시
requires "Starman";
requires "Devel::Cover";
requires "Perl::Metrics::Lite";
requires "TAP::Formatter::JUnit";
//추가
requires 'Catalyst::Plugin::Unicode::Encoding';
requires "Catalyst::View::TT";
한글 인코딩 문제
$ lib/Foo/Web.pm
use utf8;
use Catalyst qw/
-Debug
ConfigLoader
Static::Simple
#추가
Unicode::Encoding
/;
인스톨
$ carton install
...
부분 인스톨
$ carton install <모듈네임> 합니다.
Controller 생성
$ script/foo_web_create.pl controller List
$ cd lib/Foo/Web/Controller
$ vi List.pm
// 주석처리
# $c->response->body('Matched Foo::Web::Controller::List in List.');
View 생성
$ mkdir root/templates/bootstap/src/list
$ cd root/templates/bootstrap/src/list
$ vi index.tt
<p>나는 지금 한글을 테스트 중입니다.</p> 작성
실행
$ ./run
.gitignore
# inspire by github/gitignore
blib/
.build/
_build/
cover_db/
inc/
Build
Build.bat
.last_cover_stats
Makefile
Makefile.old
MANIFEST.bak
META.yml
MYMETA.yml
nytprof.out
pm_to_blib
# custom
local/
.sass-cache/
tt_cache/
.carton/
*.log
session
MYMETA.json
carton.lock
script/bootstrap.pl
이건 헬퍼 없습니다. 프로젝트마다 손으로 복사합니다.
https://gist.github.com/2761721