[Catalyst] reference lib outside Catalyst web applicationdirectory

Hermida, Leandro Leandro.Hermida at fmi.ch
Wed Dec 13 10:03:54 GMT 2006


> From: Matt S Trout [mailto:dbix-class at trout.me.uk] 
> On 12 Dec 2006, at 16:57, Hermida, Leandro wrote:
> 
> > Hello,
> >
> > I have the following folder hierarchy for a project which 
> will have a 
> > web component that is driven by Catalyst:
> >
> > MyProj/
> >      lib/
> >      sql/
> >      web/  <--- Catalyst application dir created using catalyst.pl
> >          lib/
> >          root/
> >          script/
> >          t/
> 
> Why not just make your Catalyst app as MyProj::Web so its 
> files live in
> 
> MyProj/lib/MyProj/Web.pm
> MyProj/lib/MyProj/Web/(Controller|Model|View)/...

Hello,

Sorry for not mentioning it in the original email but I did run
catalyst.pl MyProj::Web to create the Catalyst project (based on your
and A. Berlin's earlier advice, thank you) so that in the lib directory
catalyst related stuff has its own namespace and separation.  But it
doesn't seem to fix the problem (maybe I am not seeing something?).  It
seems from what you suggest that then all web application stuff has to
then be in the top-level MyProj folder.  If I start over: 

[hermida at dla2 ~]$ catalyst.pl MyProj::Web
created "MyProj-Web"
created "MyProj-Web/script"
created "MyProj-Web/lib"
created "MyProj-Web/root"
created "MyProj-Web/root/static"
created "MyProj-Web/root/static/images"
created "MyProj-Web/t"
created "MyProj-Web/lib/MyProj/Web"
created "MyProj-Web/lib/MyProj/Web/Model"
created "MyProj-Web/lib/MyProj/Web/View"
created "MyProj-Web/lib/MyProj/Web/Controller"
created "MyProj-Web/myproj_web.yml"
created "MyProj-Web/lib/MyProj/Web.pm"
created "MyProj-Web/lib/MyProj/Web/Controller/Root.pm"
created "MyProj-Web/README"
created "MyProj-Web/Changes"
created "MyProj-Web/t/01app.t"
created "MyProj-Web/t/02pod.t"
created "MyProj-Web/t/03podcoverage.t"
created "MyProj-Web/root/static/images/catalyst_logo.png"
created "MyProj-Web/root/static/images/btn_120x50_built.png"
created "MyProj-Web/root/static/images/btn_120x50_built_shadow.png"
created "MyProj-Web/root/static/images/btn_120x50_powered.png"
created "MyProj-Web/root/static/images/btn_120x50_powered_shadow.png"
created "MyProj-Web/root/static/images/btn_88x31_built.png"
created "MyProj-Web/root/static/images/btn_88x31_built_shadow.png"
created "MyProj-Web/root/static/images/btn_88x31_powered.png"
created "MyProj-Web/root/static/images/btn_88x31_powered_shadow.png"
created "MyProj-Web/root/favicon.ico"
created "MyProj-Web/Makefile.PL"
created "MyProj-Web/script/myproj_web_cgi.pl"
created "MyProj-Web/script/myproj_web_fastcgi.pl"
created "MyProj-Web/script/myproj_web_server.pl"
created "MyProj-Web/script/myproj_web_test.pl"
created "MyProj-Web/script/myproj_web_create.pl"
[hermida at dla2 ~]$ ll MyProj-Web/
total 32
-rw-rw-r--  1 hermida hermida  150 Dec 13 10:44 Changes
drwxrwxr-x  3 hermida hermida 4096 Dec 13 10:44 lib
-rw-rw-r--  1 hermida hermida  462 Dec 13 10:44 Makefile.PL
-rw-rw-r--  1 hermida hermida   22 Dec 13 10:44 myproj_web.yml
-rw-rw-r--  1 hermida hermida   57 Dec 13 10:44 README
drwxrwxr-x  3 hermida hermida 4096 Dec 13 10:44 root
drwxrwxr-x  2 hermida hermida 4096 Dec 13 10:44 script
drwxrwxr-x  2 hermida hermida 4096 Dec 13 10:44 t
[hermida at dla2 ~]$ 

As mentioned this will be a larger project where only a part of it is
the web application but all the code will need to share libraries.
Where will I put all of the directories, code and other files that are
not related at all to the web application but will need to use libraries
in lib?  It doesn't seem to make sense to have it right in the web
application folder.  This is why I made a master MyProj folder, renamed
MyProj-Web to "web" and put it inside of MyProj.  Then there can be a
nice separation of components and the project can grow.  

Leandro





More information about the Catalyst mailing list