php.MVC系列教程之目录文件

类别:网站制作 点击:0 评论:0 推荐:

        现在让我们来分析一个典型的php.MVC Web应用程序的结构。

        图3显示了如何布置一个php.MVC应用程序和其核心类库


                                                     图3
php.MVC类库

        从上图我们可以看到php.MVC类库被安装在服务器的DEV目录下,这个目录用来放置一些通用类库。为了安全起见,该目录不允许Web用户访问,因此最好不要将该目录建立在Web根目录。如果由于某种原因需要将php.MVC类库安装在Web 根目录,那你必须用.htaccess文件来控制其访问对象。
        下面显示的是Apache的.htaccess文件

# options the .htaccess files in directories can override.
   # Edit apache/conf/httpd.conf to AllowOverride in .htaccess
   # AllowOverride AuthConfig

# Stop the directory list from being shown
  Options -Indexes

# Controls who can get stuff from this server.
  Order Deny,Allow
  Deny from all
  Allow from localhost

        这将指示Apache服务器
                拒绝所有人访问包含有该.htaccess的目录及其子目录,在本例中是php.MVC类库的/WEB-INF目录下包含的文件及子目录。
                允许从服务器主机可以访问,这允许使用Web 服务器的开发者能够浏览该类库下的测试目录以及执行单元测试。

        php.MVC文件不必做任何修改即可正常使用,为了能够访问到类库文件,我们需要在Web应用程序的Main.php文件中设置php.MVC类库根目录,如下所示:

$appServerRootDir = 'D:/Dev/PHP/phpmvc-base'; // no trailing slash


php.MVC Web应用程序

        从图3我们可以看出一个Web应用程序目录SalesReport被放置在Web根目录WWW下。
        在SalesReports下的一级目录下我们可以看到几个目录和Main.php文件,art目录用来存放应用图像,style目录用来存放样式表,这两个目录可以通过Web访问,并且可以根据实际需要重新命名,我们能够在模板文件中访问这些资源,如下所示:

<link rel='stylesheet' type='text/css' href="./style/mystyles.css">

        接下来是WEB-INF目录,该目录存放应用类和资源。它不能通过Web访问,这是通过.htaccess文件来实现的。开发者可以在该目录下自由创建目录及子目录,但需要在WEB-INF目录下的ModulePaths.php中声明。在WEB-INF目录下,class目录用来存放应用类和资源文件,tpl目录用来存放显示资源,比如网页模板。

        在WEB-INF目录下还有.htaccess,ModulePaths.php, phpmvc-config.xml, phpmvc-config_1_1.dtd, phpmvc-config.data and prepend.php files。其中.htaccess文件已经在前面讨论过了。

        ModulePaths.php文件用来定义指定应用类及资源的路径,我们可以象下面一样定义:

 $appDirs   = array();
 $appDirs[] = ''; // starting with the sub-application home directory
 $appDirs[] = 'WEB-INF';
 $appDirs[] = 'WEB-INF/classes';
 $appDirs[] = 'WEB-INF/tpl';

        phpmvc-config.xml文件是php.MVC应用程序的中心组件,可以通过XML来定义应用程序的行为和属性,在后面将有更为详细的介绍。
        phpmvc-config_1_1.dtd文件是phpmvc-config.xml的文档类型定义文件,DTD文件指定了在phpmvc-config.xml文件中可以包含的节点,它是应用程序行为和属性的最终参照。大部分XML编辑器都可以用DTD文件来验证phpmvc-config.xml文件的有效性。
        phpmvc-config.data文件包含了应用程序的一些配置数据,这些配置数据是根据phpmvc-config.xml文件的最新信息动态生成的。假如你的应用程序得不到期望结果时,可以在phpmvc-config.xml中增加空格键以修改它,重新运行应用程序时配置数据就会被重新生成。

        prepend.php文件常用来包含应用文件,前面,我们已经包含了应用类和模板文件,我们可以用它来包含其他类和资源文件,如下:

include_once 'Locale.php';
include_once 'PropertyMessageResources.php';

        Main.php就是php.MVC应用程序的那个单一入口点,它被放置在应用程序根目录。所有的请求都需要通过它来完成。
        从上面我们可以看出,Main.php文件中必须定义php.MVC类库的路径

$appServerRootDir = 'D:/Dev/PHP/phpmvc-base'; // no trailing slash

        接下来我们将指定应用程序路径

$moduleRootDir = 'C:/WWW/SalesReports'; // no trailing slash

        我们也可以设置应用程序的ActionDispatcher路径。每个php.MVC应用程序通常都要自定义一个
ActionDispatcher来处理指定的请求,我们需要定义ActionDispatcher变量,如下所示:

$actionDispatcher = 'ReportActionDispatcher';

        $osType变量用于指定php.MVC所在主机的操作系统类型,通常框架能够自动检测出来并以此来设置应用路径,但是如果你的应用程序运行出现路径错误,请手工设置该变量。如下所示:

$osType = 'UNIX';

        正常情况下,包含在Main.php中的其它参数可以不做修改。

本文地址:http://com.8s8s.com/it/it31363.htm