LotusPhp推荐的程序目录_PHP教程
第一种是Lotusphp推荐的目录结构,首先要确保服务器开启了父目录引用的功能,或者通过rewrite引导到 wwwroot/frontend 里(但是不建议这样,因为可能存在多个应用,除非你就一个应用,默认引导到index.php)
├─framework ├─app │ └─frontend 应用名称 │ ├─action │ ├─conf │ ├─lib │ └─view │ └─layout ├─conf │ ├─dev │ └─standard ├─lib │ ├─Dao │ ├─Util │ └─Service └─wwwroot └─frontend
wwwroot大家一看就明白,就是web根目录,所有的程序运行文件,包括框架、程序、类库、插件、配置文件等都在wwwroot的父目录中,即使被黑,也只被黑了服务器,单纯从web服务器上浏览,是无法看到任何程序文件和类库的,wwwroot目录中只能访问到图片,脚本等资源。这样的配置安全系数相对会比较高。最上面的app文件夹就是应用程序文件夹,下面可以新建多个应用,一般像我们经常是前台一个应用,后台一个应用,2个应用足够了,对于复杂的逻辑,可以根据需要定义应用的数量,wwwroot中对应的文件夹和app对应的文件夹名称应该一致,app中存放的后台程序文件,而wwwroot中存放的应该是前台脚本,图片,样式等文件。应用目录下还有几个文件夹,对应的功能分布是action对应的是应用程序文件,负责解析后台逻辑部分,conf而已定义该应用的配置文件,lib是定义插件,各种该应用使用的公用类库,Dao数据表类,view里面存放视图,也可以理解为我们常说的模板,其中的子文件夹layout是存放布局视图文件的
conf目录存放的是配置文件,其中下面的dev目录是开发模式中应用的配置文件,而standard则是生产模式存放的配置文件,举个简单的例子,本地和服务器上的数据库配置不一样,就可以存为不一样的配置,在本地启用开发模式,传到服务器启用生产模式,可以从容应对不同运行环境。所有的配置文件放到conf目录。全局配置是所有应用共享的配置,每个应用特殊的配置放到应用名称目录下的conf。生产环境下只加载标准配置,开发模式下先加载标准配置,然后加载开发配置,覆盖掉标准配置中相同的。
lib目录里存放的是一些基础类库,框架外的插件也可以存放在这里,lotus被声明后,会自动加载这个文件夹,里面所有的类库和函数会被自动加载,Dao存放的是数据表声明的类,Util存放的是常用的函数和类库,Service存放的是程序的一些复杂逻辑的类库,比如我们经常后台登陆,要判断用户的合法性,就可以写成一个类库,action里调用该类库的一个check方法,就可以判断出用户是否合法。
你可以把自己定义的php类放到lib和action目录,在其它地方直接new使用,不需要有include/require语句。autoloader组件会自动加载用到的类,这是按需加载哟。
lib和action目录下的目录结构和文件名随意,只要保证类名字唯一就好了,目前的autoloader没有使用php5.3的name space特性。
请注意,lotusphp运行目录中,除了conf,view文件夹下的文件外其余文件必须以类或者函数的形式存在。
还有一种目录结构是针对无法开启父目录引用的,一般虚拟主机里应用会比较多
wwwroot ├─cache ├─framework ├─runtime │ ├─app │ │ └─frontend │ │ ├─action │ │ ├─conf │ │ ├─lib │ │ └─view │ │ └─layout │ ├─conf │ │ ├─dev │ │ └─standard │ └─lib └─static
cache是缓存目录,结构很多人要问为什么上面的第一种结构没有设置这个文件夹,因为上面的结构是适合自己的服务器的,所以缓存可以设置到自己设定的文件夹中,甚至设置到内存中,但是虚拟主机是不可能给你这个权限的,要设置只能设置在自己的目录里,所以加了这么一个目录,runtime是程序运行文件目录,static是存放样式表,脚本,图片文件的。其他目录的功能和上面是一样的。
这两个推荐的目录方式基本适合大多数人的需求。