-
Zend Framework的项目目录结构
Posted on 九月 25th, 2008 No comments参考ZF1.6版本之前建议的通用目录结构 ,或许你能找到你现在的代码所使用的目录结构。目前我们开发使用的文件结构
框架遵循Zend Framework 1.6 Proposal Project Structure如下:<project name>/ application/ apis/ config/ controllers/ helpers/ layouts/ filters/ helpers/ scripts/ models/ modules/ views/ filters/ helpers/ scripts/ bootstrap.php data/ cache/ indexes/ locales/ logs/ sessions/ uploads/ docs/ library/ public/ css/ js/ images/ .htaccess index.php scripts/ jobs/ build/ temp/ tests/2009/7/30更新:ZF1.8的推荐项目目录结构:
根据项目的复杂度不同和需要不同,可以有不同的目录构造,Zend Framework所推荐的目录结构如这篇proposal所示。我所使用的目录结构图和ZF的规范相同,可以用zend tool直接生成:
dev:~# cd /var/www/jefflei dev:~# zf create project . Creating project at /var/www/jefflei
目录结构大致如示意图所示,因为比较懒,借用了别人的结构图。我们使用的有如下几点不同:
1. .htaccess, index.php是放在public目录下的,这样方便将document root设置到public目录下,增强安全性。
2. library。如果不是需要同时在多个项目中使用不同版本的Zend Framework类库,建议将ZendFramework类库放在项目目录的外面,这样减少主项目的size。
3. Modules目录下通常是application目录结构的迭代,比如:
`-- application | `-- controllers | `-- models | `-- views | `-- modules | | `-- foo | | `-- controllers | | `-- models | | `-- views | | `-- Bootstrap.php ⇐ class Foo_Bootstrap extends Zend_Application_Module_Bootstrap | `-- Bootstrap.php ⇐ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap `-- public
以上部分也可以用Zend Tool来生成:
dev:~# zf create module foo Creating the following module and artifacts: /var/www/jefflei/application/modules/foo/controllers /var/www/jefflei/application/modules/foo/models /var/www/jefflei/application/modules/foo/views /var/www/jefflei/application/modules/foo/views/scripts /var/www/jefflei/application/modules/foo/views/helpers /var/www/jefflei/application/modules/foo/views/filters Updating project profile '/var/www/jefflei/.zfproject.xml' dev:~# zf create controller index index-action-included=1 foo
另外一些大型项目一般都会另外单独建立extension目录,运行项目之间共享common的代码,大致结构如下:
;;;;extensions?;;;; ; extensions/ ; <extension_name> ; application/ ; configs/ ; ownroute.ini ; extension.ini ; controllers/ ; helpers/ ; views/ ; filters/ ; helpers/ ; scripts/ ; layouts/ ; filters/ ; helpers/ ; scripts/ ; models/ ; docs/ ; data/ ; indexes/ ; locales/ ; logs/ ; uploads/ ; library/ ; override_public/ ; scripts/ ; styles/ ; images/ ;;;;extensions?;;;;
Leave a reply

