关于ZendFramework:的几个问题
-
创建新项目时,是否可以将所有内容都放在一个文件夹中,如CodeIgniter。那么一个应用程序和一个系统文件夹,或者类似的东西?
-
当我用ZendFramework完成一个项目时,把它放在服务器上(不使用控制台共享主机)有多难?
-
在开发时,我可以在没有终端的情况下使用ZendFramework吗?假设我正在使用FTP客户端创建一个新类?
提前感谢!:)
最佳实践是使用类似于以下形式的手动方法:
/project/
/project/vendors/... - all vendor libraries you may use in your project
/project/lib/... - your common libraries (if you have some)
/project/application/... - application files like controllers, views, temp folders etc...
示例:
/project/vendors/Zend/... (zend framework)
/project/vendors/Symfony/... (symfony framework)
/project/lib/MyLib/... (your lib)
/project/application/Bootstrap.php
/project/public_html/index.php
index.php片段:
<?php
define('VENDORS_PATH', '/project/vendors');
define('LIB_PATH', '/project/lib');
set_include_path(
LIB_PATH . PATH_SEPARATOR .
VENDORS_PATH . PATH_SEPARATOR .
get_include_path()
);
// setup class autoloading
require_once VENDORS_PATH . '/Zend/Loader/Autoloader';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setDefaultAutoloader(create_function('$class', "include str_replace('_', '/', '$class) . '.php';"));
$autoloader->setFallbackAutoloader(true);
// run application, include Symfony or MyLib files...
至于在生产服务器上迁移项目,您应该首先使用环境设置设置项目配置。
setup.ini示例:
[production]
database.hostname = localhost
database.username = username
database.password = password1
database.dbname = live_db
[staging:production]
database.hostname = localhost
database.username = root
database.password = password2
database.dbname = local_db
使用apache.htaccess文件可以轻松地设置要加载的配置的环境:
本地环境中的.htaccess文件:
SetEnv APPLICATION_ENV staging
生产环境中的.htaccess文件:
SetEnv APPLICATION_ENV production
使用环境变量的index.php代码段:
<?php
...
define('APPLICATION_ENV', getenv('APPLICATION_ENV'));
$config = new Zend_Config_Ini(APPLICATION_LIB . '/setup.ini', APPLICATION_ENV);
...