YII框架前后台应用目录结构
大型应用程序通常分为前端和后端(或更完)根据目标用户群体。 前端应使用普通用户,而后端主要是管理人员或工作人员。 两端通常有显着不同的外观,尽管他们可能有着大量的代码下面。 在本教程中,我们描述一个组织的两端代码目录的方式。
注: 本教程中描述的目录组织,这是旨在作为一个参照执行。 它不是一个标准。 为您提供完全的自由来组织目录。
首先,我们给出了如下的目录组织,
wwwroot/
index.php
backend.php
assets/
images/
js/
protected/
config/
main.php
components/
controllers/
models/
views/
runtime/
backend/
config/
main.php
components/
controllers/
models/
views/
runtime/
我们这里有两个入口脚本: 的index.php 和 backend.php 。 前者是用于前端,而后者最终由备用。 所有的应用程序代码被放置在 相应的应用程序目录 的保护 应配置为防止用户直接访问的结束。
在 protected ,我们有正常Yii应用典型的A组子目录需要的: config,components, controllers, models, views,runtime 。
额外的 后端 目录用于存储代码是专门月底书面后台。 类似的前端,我们组织这些代码方面的config, components, controllers, models, views, runtime. 。
对于前端及类似以下后端看入口脚本代码。 他们的主要区别在于使用不同的应用配置。
// index.php:
require('path/to/yii.php');
Yii::app()->createWebApplication('protected/config/main.php')->run();
// backend.php:
require('path/to/yii.php');
Yii::app()->createWebApplication('protected/backend/config/main.php')->run();
前端应用程序的配置是非常正常的,就像我们通常为单端应用程序。 后端应用程序的配置是一个比较特殊。 其内容简述如下:
$backend=dirname(dirname(__FILE__));
$frontend=dirname($backend);
Yii::setPathOfAlias('backend', $backend);
return array(
'basePath' => $frontend,
'controllerPath' => $backend.'/controllers',
'viewPath' => $backend.'/views',
'runtimePath' => $backend.'/runtime',
'import' => array(
'backend.models.*',
'backend.components.*',
'application.models.*',
'application.components.*',
),
// ... other configurations ...
);
在上面的,我们首先定义 $backend 和 前端$ 是目录 protected/backend 和 protected/ 分别。 然后,我们定义一个根别名命名的backend 是目录 protected/backend 。 在配置阵列,我们指定了 相应的应用程序目录 的后端将在年底前相同,正面的,即 protected/(所谓的理由解释这样做是为了在短期内)。 在(controllerPath, viewPath ,runtimePath)被定义为在位于 protected/backend。 最后,我们导入多个目录,年底开始与后台 的组件 和 部件 目录应用正常,其次是 元器件 和 组件的 目录。
那么,为什么我们使用 的保护 为 基础的应用程序目录 为前端和后端? 这是因为后端通常需要复用的代码结束前设计的,而不是相反。 具有相同的 基本应用程序的目录 是指两端具有相同的路径为 应用程序的 根路径的别名。因此,代码指的是 应用程序的 别名可重复使用没有任何问题,都结束。
后端,除了重用前端代码,通常有自己的特殊代码来处理,例如内容管理。 我们根据这些代码存储 protected/backend/目录和子目录。 在其应用程序的配置,我们还可以导入这些附加分的两端,两个目录一起与这些意思。