Kohana PHP - Multiple apps with shared model
Asked Answered
R

3

11

I'm using Kohana 3 to create a website that has two applications, an admin application and the actual site frontend. I have separated my folders to have the two applications separated, so the hierarchy looks as follows:

/applications
    /admin
        /classes
        /controller
        /...
    /site
        /classes
        /controller
        /....

My question is, how I need to go about creating a shared /model folder. Essentially, both the admin and site itself operates on the same data, so the database layer and business logic remains more or less the same. So to me, it makes sense to have a single model folder, sitting outside of the two application folders. Is it possible to achieve the following hierarchy:

/applications
    /model --> Where model sits in a neatly generic location, accessible to all applications
    /admin
        /classes
        /controller
        /...
    /site
        /classes
        /controller
        /....

Thanks in advance!

Rikki answered 20/5, 2010 at 6:46 Comment(0)
H
5

You can group all your shared models into a module. Basicaly, applications and system directories are just special modules.

Hegelianism answered 20/5, 2010 at 11:49 Comment(1)
This could work, I'll try creating a folder called model inside modules. Seems the most feasible solution.Rikki
C
2

You could change your hierarchy while still keeping the admin and public section separated like so:

/application  
         /classes  
             /controller  
                 /admin  
                 /site  
             /model  
                 /admin  
                 /site  
                 model.php  
         helper.php  

This way both admin admin and site can use common helpers and models

Campball answered 29/5, 2010 at 4:39 Comment(0)
L
0

I don't know if it's what Kohana normally does as I only have cursory knowledge of Kohana's folder heirarchy, but you could do this fairly simply with some symlinks on the file system, assuming you're on a unix/linux architechture.

http://en.wikipedia.org/wiki/Symbolic_link

Lagerkvist answered 20/5, 2010 at 6:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.