您好,欢迎访问一九零五行业门户网

Studs MVC Framework-----PHP的Struts1.X实现

jakarta struts结构移植过来的php开发框架,使用面向对象的开发结构和api,模拟了一个http servlet容器和使用了php服务页面引擎技术。
下载地址:http://mojavelinux.com/projects/studs/
文件结构如下:
如上图,web-inf中的文件都是studs框架的核心文件(尤其是lib和tld下的文件),其中:
1.messages.properties文件:
welcome.title=studs :: welcome
welcome.heading=welcome to studs!
welcome.message=the application has been successfully installed!
pageviews.message=this page has been viewed {0} times.2.struts-config.xml文件:
xml version=1.0 encoding=iso-8859-1?>
doctype struts-config public -//apache software foundation//dtd struts configuration 1.2//en
    http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd>
struts-config>
form-beans>
form-beans>
global-exceptions>
global-exceptions>
global-forwards>
forward name=welcome path=/welcome.do/>
    global-forwards>
action-mappings>
action path=/welcome forward=/pages/welcome.psp/>
        action path=/example forward=/pages/example.psp/>
action-mappings>
controller locale=false inputforward=true/>
message-resources parameter=/web-inf/messages.properties/>
struts-config>3.web.xml文件:
xml version=1.0 encoding=utf-8?>
doctype web-app public -//sun microsystems, inc.//dtd web application 2.3//en http://java.sun.com/dtd/web-app_2_3.dtd>
web-app>
display-name>studs basic applicationdisplay-name>
    description>a bare-bones foundation for creating a web application based on the studs mvc framework+description>
    context-param>
param-name>controlallresourcesparam-name>
        param-value>falseparam-value>
    context-param>
servlet>
        servlet-name>defaultservlet-name>
        servlet-class>stratus.servlets.defaultservletservlet-class>
        init-param>
            param-name>listingsparam-name>
            param-value>trueparam-value>
        init-param>
        load-on-startup>1load-on-startup>
    servlet>
    servlet>
        servlet-name>phaseservlet-name>
        servlet-class>phase.servlet.phaseservletservlet-class>
        init-param>
            param-name>scratchdirparam-name>
            param-value>/web-inf/workparam-value>
        init-param>
        init-param>
            param-name>tldresourcedirparam-name>
            param-value>/web-inf/tldparam-value>
        init-param>
        init-param>
            param-name>ignoreelparam-name>
            param-value>falseparam-value>
        init-param>
        load-on-startup>2load-on-startup>
    servlet>
    servlet>
        servlet-name>actionservlet-name>
        servlet-class>studs.action.actionservletservlet-class>
        init-param>
            param-name>configparam-name>
            param-value>/web-inf/struts-config.xmlparam-value>
        init-param>
        init-param>
            param-name>validatingparam-name>
            param-value>trueparam-value>
        init-param>
        load-on-startup>3load-on-startup>
    servlet>
servlet-mapping>
        servlet-name>defaultservlet-name>
        url-pattern>/url-pattern>
    servlet-mapping>
    servlet-mapping>
        servlet-name>phaseservlet-name>
        url-pattern>*.pspurl-pattern>
    servlet-mapping>
    servlet-mapping>
        servlet-name>actionservlet-name>
        url-pattern>*.dourl-pattern>
    servlet-mapping>
mime-mapping>
        extension>htmlextension>
        mime-type>text/htmlmime-type>
    mime-mapping>
    mime-mapping>
        extension>cssextension>
        mime-type>text/cssmime-type>
    mime-mapping>
    mime-mapping>
        extension>jsextension>
        mime-type>text/javascriptmime-type>
    mime-mapping>
    mime-mapping>
        extension>pngextension>
        mime-type>image/pngmime-type>
    mime-mapping>
    mime-mapping>
        extension>jpgextension>
        mime-type>image/jpegmime-type>
    mime-mapping>
    mime-mapping>
        extension>jpegextension>
        mime-type>image/jpegmime-type>
    mime-mapping>
    mime-mapping>
        extension>gifextension>
        mime-type>image/gifmime-type>
    mime-mapping>
welcome-file-list>
        welcome-file>index.pspwelcome-file>
    welcome-file-list>
web-app>4.文件build.xml:
xml version=1.0?>
project name=studs basic basedir=../.. default=package>
    property file=../../build.properties />
target name=package depends=prepare>
        mkdir dir=../../${release.dir}/${project.release.version}/>
        tar destfile=../../${release.dir}/${project.release.version}/studs-basic-${project.release.version}.tar.gz compression=gzip>
            tarfileset dir=. prefix=studs-basic defaultexcludes=yes>
                exclude name=classes/build.xml/>
                exclude name=**/todo/>
                exclude name=**/notes/>
            tarfileset>
        tar>
    target>
target name=clean>
symlink action=delete link=${basedir}/web-inf/lib failonerror=no/>
        symlink action=delete link=${basedir}/web-inf/tld failonerror=no/>
delete includeemptydirs=yes failonerror=no>
            fileset dir=web-inf/work>
                include name=**/>
            fileset>
            fileset dir=web-inf/lib>
                include name=**/>
            fileset>
            fileset dir=web-inf/tld>
                include name=**/>
            fileset>
        delete>
    target>
target name=prepare depends=clean>
mkdir dir=web-inf/work/>
        chmod dir=web-inf/work perm=0777 type=dir/>
mkdir dir=web-inf/lib/>
        copy todir=web-inf/lib>
            fileset dir=../../src>
                include name=**/>
            fileset>
        copy>
mkdir dir=web-inf/tld/>
        copy todir=web-inf/tld>
            fileset dir=../../conf/tld>
                include name=*.tld/>
            fileset>
        copy>
copy todir=.>
            fileset dir=../../conf>
                include name=index.php/>
                include name=.htaccess/>
            fileset>
        copy>
    target>
project>5.logging.properties文件:
# == setup log appenders ==
#logging.rootlogger=debug, file
#logging.appender.file=horizon.util.logging.filelogappender
#logging.appender.file.file=/tmp/studs-basic.log
# == specific logging per category ==
#logging.logger.[partial package or classname]=debug其他文件基本上都可以在框架源代码中找到。
页面文件如下:
1.index.php:
php
error_reporting(e_all);
ini_set(''include_path'', ''web-inf/lib'' . (directory_separator == ''/'' ? '':'' : '';'') . ''web-inf/classes'');
umask(0002);
require_once ''horizon/init.php'';
import(''stratus.connector.httpprocessor'');
import(''stratus.config.contextconfig'');
$config = & new contextconfig(dirname(__file__));
$processor = & new httpprocessor($config->getcontext());
$processor->run();
?>2.index.psp:
其它类似信息

推荐信息