初次接触复杂项目的众多开发者,面对繁杂的目录常常不知如何着手,清晰合理的目录结构乃是项目可维护性的基础,本文会为你详尽剖析一个典型企业级Web应用的目录设计,还会提供从环境准备直至安装部署的完整实操指南。
在刚开始筹备安装以前,请先确认你的服务器或者本地开发环境符合以下这些条件。操作系统方面,推荐使用Linux发行版本(像是CentOS 7及其以上版本或者Ubuntu 18.04及其以上版本)或者Windows Server 2016以上的版本。软件环境方面,需要安装PHP 7.2以及以上的版本,并且要开启必要的扩展比如PDO、Mbstring。数据库推荐MySQL 5.7么或许是MariaDB 10.3,与此同时要确保Web服务器,比如说Nginx 1.18以上版本或者Apache 2.4,已经被正确配置并且处于运行状态 。
核心在于获取完整的项目源代码包来进行准备工作,你能够经由Git去克隆仓库又或者下载官方所发布的压缩包。把文件解压到Web服务器的根目录,就像/var/www/html/或者C:inetpubwwwroot这样。随后,要对目录权限做检查,在Linux环境下一般会把运行时目录以及上传目录设置成可写状态(好比chmod -R 755这种操作)。
所有请求的单一入口是入口文件index.php,它承担着加载框架引导文件以及启动应用的职责。你需要在这个文件里定义应用的绝对路径还有运行模式(开发或者生产)。全局配置文件一般处在应用目录的Conf文件夹当中,其中config.php放置着数据库连接、缓存设置等基础信息。
还有一个关键的文件,是那个.env环境配置文件,它被用来区分不同环境下的变量,像是数据库密码,以及API密钥。一定要在安装完成之后,去检查这些配置是不是正确的,特别是数据库连接参数。要是出错配置,就会直接致使应用没办法连接数据库,进而导致启动失败。
该架构运用模块化设计方式,各个功能模块,像是Admin、Home,均为独立的子应用,后台模块Admin含有控制器、模型以及视图,用以对所有管理行动予以处理,举例来说,用户管理控制器或许处于Admin/Controller/UserController.class.php里,与之对应的模型则处在Model目录 。
后台目录清晰地划分,对团队协作以及权限管理是有帮助的。不同管理功能的控制器,你能够把它们分组存放,可以按控制器名称建立子目录来存放视图文件。这样的结构,对查找且修改特定的后台功能而言,变得极为直观,不用在大量文件里进行搜索。
存放被多个前台或者后台模块所共享代码的是公共模块,像用户认证类、数据验证工具以及通用模型这类东西。公共控制器Common/Controller/BaseController.class.php可用作其他控制器的父类,去实现公共的初始化或者权限检查逻辑 。
被称作公共函数文件的Common/Common/function.php,它所放置的是全局辅助函数,像是格式化日期、生成订单号这类的函数。把这一类代码集中起来管理,能够有效地防止重复情况的出现,在有需要对某个通用函数作出修改的时候,仅仅只要在一个地方进行变动,那么所有调用这个函数的地方就都会自动产生效果。
前端模块Home承担着针对终端用户的网页呈现职责,在其视图目录View里面,应当依据控制器以及方法名来对模板文件进行组织,并且,前端的静态资源,像是图片、样式、脚本等,理应统一放置在应用资源文件目录Public之下,同时借助版本控制或者CDN加速。
提出建议,使用Gulp或者Webpack等工具,开展前端资源管理,将页面的源代码放置在名为src的目录里,而那经过编译输出所产生的CSS与JS文件,却要放置到指定的css以及js目录之中。如此这般方可保证在生产环境里所使用的是那些经过压缩合并之后的文件,进而实现提升页面加载速度这件事。
前往应用的安装模块而开启正式的安装流程,于浏览器内里键入你的域名,系统一般会自行跳转至安装向导页面,依据向导给出的提示陆续检查环境(PHP版本、扩展、目录权限),填入数据库配置信息,并且初始化数据库表结构以及默认数据。
安装完毕之后,一定要将安装模块目录清除或者重新命名,以此来避免被其他人恶意重新安装。在日常维护期间,要留意定期把应用运行时目录Runtime里的缓存以及日志文件清理掉。对于能够装卸的功能扩展模块,应该借助管理后台的模块管理功能来启用或者停用,防止直接对文件系统进行操作。
经上述步骤,你的应用理应已然成功部署且运行。你于部署相似项目之际,所遭遇的最为棘手的目录权限或者环境配置问题是啥?欢迎于评论区分享你的经验以及解决方案,要是觉得本文对你有所助益,请点赞并分享予更多开发者。



