【发布时间】:2013-05-21 01:04:06
【问题描述】:
我正在构建一个文件夹结构和全局配置,以允许我在 Yii 框架上创建应用程序,所有应用程序都可以共享通用代码、扩展或模块。
这个想法是,每个应用程序都有该应用程序的业务级别,但是,可以在应用程序之间共享的所有内容,我们都希望用作公共存储库(模型、扩展、小部件等)
例如,我们想共享Auth扩展名来控制系统权限,但我想在公共文件夹下“安装”Auth而不是在每个应用程序下。
下面是我要构建的架构:
我发现YiiBoilerplate 是类似的东西,但他们没有按照我们想要的方式配置 Yii。
想要的文件夹结构是:
common/
css/
images/
protected/
commands/
components/
config/
controllers/
extensions/
models/
views/
Application1/
css/
images/
protected/
commands/
components/
config/
controllers/
extensions/
models/
views/
那么,让我们来看看几点:
如果我的用户在应用程序 X (www.applicationx.com) 下,并且登录页面是“通用”结构,我想向用户显示如下内容:www.applicationx.com/index.php ?r=user/login。
我希望能够轻松地在应用程序文件夹和公共文件夹之间“导航”。
我不想使用Theme,因为我有不同的应用程序,具有不同的视觉要求和行为。
对此有什么想法吗?有什么好的建议吗?提前致谢!
【问题讨论】:
-
您所需要的一切都已经在样板中,除了所有应用程序的通用身份验证。 Yii 用户身份验证是基于应用程序或模块的,我认为它不能通过通用的方式应用于所有应用程序。
-
您可以在 yii 内置自动加载器之前添加自定义自动加载器并注册它以加载。加载您的任何常用组件,如果找不到,则让 yii autoloder 在每个应用程序中处理它。
标签: php yii yii-extensions boilerplate