当前位置: 首页 > 文档资料 > DoitPHP 帮助文档 >

8.2 大项目的文件管理

优质
小牛编辑
130浏览
2023-12-01

所谓的“大项目”,我这里真没有一个明确的概念。是文件数据达到具体多少个文件?还是业务逻辑模块达到多少个?还是项目的访问量达到多少PV?至今没有一个精确的数字来定义什么程序是“大项目”。这里姑且认为:业务功能模块众多(访问流量流量暂且不理)。纵使业务功能模块再多,就算一个application也可以容纳的下。对于业务模块众多的项目,文件管理解决方案如下:

1、使用子目录。经常业务模块相近的控制器文件可以统一使用controllers的子目录来管理。将这些Controller文件统一放在controllers的子目录中。这样相应的视图文件也会存在于视图目录(views)同一个子目录中。当然models目录也支持子目录的。

2、使用多个入口文件。首先声明,这个方法真的是不常用,或是在特殊情况下的解决方式。不过以往有很多的DoitPHP用户通过qq、邮件联系我,问及这种情况如何处置。如:DoitPHP项目下有博客程序(blog),有文章管理程序(cms),还有商城程序(b2b),还有其它程序。这种情况建议每个独立的项目各自使用各自的application目录。至多共用DoitPHP框架文件。目录结构如下:

- blog
|- config
|- application.php
|- controllers
|- models
|- views
|- widgets
|- library
|- extensions
|- index.php

- cms
|- config
|- application.php
|- controllers
|- models
|- views
|- widgets
|- library
|- extensions
|- index.php

- b2c
|- config
|- application.php
|- controllers
|- models
|- views
|- widgets
|- library
|- extensions
|- index.php

- doitphp
|- core
|- library
|- views
|- App.php

每个项目的入口文件代码:

/**
* 加载DoitPHP框架的初始化文件,如果必要可以修改文件路径
*/
require_once APP_ROOT . '/doitphp/App.php';

$configFile = APP_ROOT . '/application/config/application.php';

/**
* 启动应用程序(网站)进程
*/
App::run($configFile);

上面这种方案算是上上策了,如果非要将这些项目合在同一个application目录中,实在不是上上策,不过可以解决。目录结构如下:

- application
|- config
|- blog.php
|- cms.php
|- shop.php
|- controllers
|- blog
|- b2c
|- models
|- views
|- widgets
|- library
|- extensions
|- index.php
|- blog.php
|- shop.php

- doitphp
|- core
|- library
|- views
|- App.php

同一个application目录,使用不同的入口文件。如上面所示:index.php用于cms项目,blog.php用于blog项目,shop.php用于b2c项目。

入口文件代码格式如下:

/**
* 加载DoitPHP框架的初始化文件,如果必要可以修改文件路径
*/
require_once APP_ROOT . '/doitphp/App.php';

$configFile = APP_ROOT . '/application/config/cms.php';

/**
* 启动应用程序(网站)进程
*/
App::run($configFile);

三个入口文件内容,也仅$config(主配置文件)路径不同,这样每个入口文件都加载各自的主配置文件,主配置文件又可以设置具体的控制器目录、模型目录、视图目录等。不同项目的文件使用子目录(如:controllers的子目录),这样文件就便于管理了。尽管如此,还是不推荐这种方案。还是推崇最开始那种方案,多个项目浑在同一个application里,加大代码管理难度,尤其是当多人的开发团队,当对代码开发维护时,增加的管理难度就更明显了。

所以,运用之巧,存乎一心!学会使用DoitPHP框架不能算作高手,能够领悟其中内部原理,又能灵活地与自己所开发的业务需求相结合,才算高手。想要将DoitPHP框架使用的炉火纯青,除了要经过几个DoitPHP开发的项目实践之外,最好有时间阅读下它的源代码。知其然,还要知其所以然,这样我们众PHP程序员才有进步。