Kohana PHP - несколько приложений с общей моделью - PullRequest
11 голосов
/ 20 мая 2010

Я использую Kohana 3 для создания веб-сайта, который имеет два приложения, приложение администратора и внешний интерфейс сайта. Я разделил свои папки, чтобы два приложения были разделены, поэтому иерархия выглядит следующим образом:

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

У меня вопрос, как мне нужно создать общую папку / модель. По сути, как администратор, так и сам сайт работают с одними и теми же данными, поэтому уровень базы данных и бизнес-логика остаются более или менее одинаковыми. Поэтому для меня имеет смысл иметь одну папку модели, находящуюся за пределами двух папок приложения. Можно ли достичь следующей иерархии:

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

Заранее спасибо!

Ответы [ 3 ]

5 голосов
/ 20 мая 2010

Вы можете сгруппировать все ваши общие модели в модуль. По сути, приложения и системные каталоги - это просто специальные модули.

2 голосов
/ 29 мая 2010

Вы можете изменить свою иерархию, оставив раздел администратора и общедоступным следующим образом:

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

Таким образом, администратор и администратор сайта могут использовать общие помощники и модели

0 голосов
/ 20 мая 2010

Я не знаю, делает ли это то, что обычно делает Kohana, поскольку у меня есть только беглое знание иерархии папок Kohana, но вы могли бы сделать это довольно просто с помощью некоторых символических ссылок в файловой системе, предполагая, что вы работаете в архитектуре unix / linux .

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

...