小生自08年开始接触并使用ZF框架,当时的版本还是1.4.2,时隔一年,版本号犹如房价一般,刷刷的往上攀升,此时此刻已经是1.9.41.9.6(update:2009.12.05)了。话说在1.8版本以前,项目的配置大多是利用ini或者xml格式的文件通过Zend_Config类装载。而之后的版本发生逆转型的变化,导致一时间坊间流传的各版ZF葵花宝典均在1.8版本升级后一一失效,导致很多欲入此门的侠士们犹如走火入魔一般,误入歧途。
1.8版本以后有两个巨大的变化:1.Zend_Application类的引入,导致了项目的启动配置结构发生差异;2.Zend_Tool工具,可以让用户方便快捷的创建项目以及控制器,模型,视图等属于ZF体系结构的文件。
利用工具的方法这里暂且跳过,因为工具的使用对学习和理解框架结构没有好的帮助,可以在熟悉之后用以提高开发效率时再用不迟。
为了迎合项目在虚拟主机中的使用,项目的入口文件index.php并未放在public文件夹中,而是放在了项目的根目录下。下面以minhlog项目结构为例,截图一张供大家参考建档。
特别需要值得一提的是,.htaccess这个文件是和index.php文件位于同一级目录下,它将所有的请求提交给index.php入口文件处理,而public文件夹下由于是公开的如CSS,JS等类型文件,无需url重写或提交给index.php解析处理,因此该目录下的.htaccess文件需要将rewrite功能关闭(RewriteEngine Off即可)。library文件夹下通常放置项目的类库文件,如使用虚拟主机的时候,可以将Zend框架的类库放置于此,截图中的Minh文件夹则放置的是由自己实现的类库文件。
当然每个人对于项目结构的定义和理解都是不一样的,但是Minhlog的项目结构应该说具有一定的代表性和通用性,尽可能的保持和官方推荐目录结构相一致。不会造成文件或文件夹冗余,个人认为是比较科学合理的。