`
oceanG_Y
  • 浏览: 51473 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

配置mojavi

    博客分类:
  • PHP
阅读更多

第二章:Mojavi安装
1 Mojavi2.0不与php5相对应,必须使用php4
2 mojavi的安装
    mojavi可以从http://www.mojavi.org/的Downloads菜单下载。下载后安装在适合的路径下,此处以C:\apache\htdocs\mojavi\为例,访问路径是http://localhost/mojavi/。安装后直接访问会有错误提示「Fatal error: main(): Failed opening required '' ...」。
3 修改文件
    安装好后对不需要的文件和安全性问题需要修改。首先,因为lib目录内的文件全在mojavi-all-classes.php中表述,所以可以将该文件夹删除。其次,安装好后用户端不应能访问的mojavi,webapp的文件能被访问,这是安全性问题,需要通过对文件构成进行修改来避免。按如下方式修改。
 lib/删除。
 opt/移入到mojavi目录下。
 mojavi-all-class.php移入到mojavi目录下。
 index.php移入到htdocs目录下。

修改结果:
 项目目录/
  htdocs/
   index.php 
  mojavi/
   opt/ 
   mojavi-all-class.php 
  webapp/
   config.php 
   lib/ 
   modules/ 
   templates/ 
修改后可访问根目录由项目目录改为htdocs。
4 设定
    首先设定htdocs/index.php,12行到15行有INCLUDE config.php,config.php是最重要的设定文件,需要给出它的路径。因为config.php在webapp目录内,require_once()部分要这样写
 require_once('../webapp/config.php'); 
index.php设定完毕。
    然后是config.php的设定。由于PHP版本的不同,__FILE__内会发生错误,不能流畅运行,这种情况下的行数和正常时的行数是有差别的。这里使用的是正常时的行数。
    首先16行到19行有「An absolute file-system path to the webapp directory.」,在这里设定路径,它应为以webapp为根目录的绝对路径。
 define('BASE_DIR', dirname(__FILE__) . '/'); 
    在因__FILE__而不能流畅运行的场合,要先定义项目路径,然后定义BASE_DIR
 define('ROOT_DIR', 'C:/apache/htdocs/mojavi/');
 define('BASE_DIR', ROOT_DIR . 'webapp/'); 
    以上定义如果错误的话,将导致以后的设定出现问题。
    接下来,29行到33行有「An absolute file-system path to the all-in-one class file php,mojavi,smarty,mvc uses.」。这里指定了Mojavi所有的类,由于Mojavi所有的类都归纳到mojavi-all-classes.php中,所以设定为mojavi-all-classes.php路径。
    因为这里要用绝对路径指明,所以作如下替换
 __FILE__可以使用的场合
 define('MOJAVI_FILE', ROOT_DIR . '../mojavi/mojavi-all-classes.php'); 
 __FILE__不可以使用的场合
 define('MOJAVI_FILE', BASE_DIR . 'mojavi/mojavi-all-classes.php'); 
    最后从35行到38行有「An absolute file-system path to the optional classes directory.」,在这里指定opt路径,使用绝对路径。
 __FILE__可以使用的场合
 define('OPT_DIR', ROOT_DIR . '../mojavi/opt/'); 
  __FILE__不可以使用的场合
 define('OPT_DIR', BASE_DIR . 'mojavi/opt/');
 opt路径中安放了准备好的方便的功能类,此外,因为自己添加的类也要放到该路径中,要在文件头加上该路径。
    到此设定完了。正常运行应显示Please configure your php,mojavi,smarty,mvc installation and remove this line from index.php.」。
5 第一个程序
    config.php文件中79到84行有「The action to be executed when a request is made that does not specify a module and action.」,这里用来设定当默认执行文件不存在时所作的处理。
    系统将首先寻找index.php,在index.php内找Default,然后寻找DefaultIndex,若无再寻找指定的目录,若再无出错误提示。
6 开发应用程序
    在webapp/modules中有目录Default。webapp/modules中的目录名即项目名。Default程序中有四个目录,actions中放置活动类,config是设定文件,templates是模板,views放置显示文件。mojavi对文件名和类名有严格的命名规则。文件名为活动名+Action.class.php。如活动名为DefaultIndex,actions中的文件名为DefaultIndexAction.class.php。
代码如下
<?PHP
class DefaultIndexAction extends Action
{
    function execute (&$controller, &$request, &$user)
    {
        $request->setAttribute('message', 'Hello World!');

        return VIEW_SUCCESS;
    }
}
?> 
活动必须继承Action类,类名是活动名+Action。
    控制器调用程序,执行execute方法,将被命名为message的文字“Hello World”传递给要求,然后views部分接受文字,最后返回的VIEW_SUCCESS是用来指定将文字转移到那个显示文件中。(在mojavi中,VIEW_SUCCESS被用success定义)。
7 开发显示文件
    活动将success作为execute方法的返回值返回,控制器在相同的项目内查找与活动名和返回值相对应的显示文件。显示文件的命名规则:调用的活动名+View+_+活动返回值+class.php。在这里应为「DefaultIndex」+「View」+「_」+「success」+「.class.php」,要查找的显示文件的位置是「modules/Default/views/DefaultIndexView_success.class.php」。找到后调用显示类的execute方法。现在开发显示文件,MVC的V(View)。
<?PHP
class DefaultIndexView extends View
{
    function & execute (&$controller, &$request, &$user)
    {
        $renderer =& new Renderer($controller, $request, $user);

        $renderer->setTemplate('defaultindex.tpl');
        $renderer->setAttribute('message', $request->getAttribute('message'));

        return $renderer;
    }
}
?> 
    同活动一样,显示文件必须继承View类。execute方法内用到的Renderer类,是用来产生输出画面的。Renderer类产生后,要求中的信息的值设置到Renderer中。然后,设置模板。最后返回Renderer。
8 开发模板
    模板是页面设计的架构,Renderer读入模板,并在显示文件中对用特定格式纪录的部分用关联的数据替换。并且,在templates目录中做成defaultindex.tpl文件。模板没有固定的命名规则。
<div><?= $template['message'] ?></div> 
    在模板内部,$template['message']部分与显示文件中与Renderer相关联的值message替换。
9 完成
    浏览器中输入地址http://localhost/mojavi/运行程序。
10 总结
    控制器是在index.php内生成的,所以运行以上程序必须输入http://localhost/mojavi/。开始要求中没有与项目和活动相关的数据,控制器按config.php的设定寻找项目和活动。DefaultIndex活动中,将文字“Hello World!”命名为message传送给要求。然后控制器为调用显示文件而返回必要的信息。
    顺利调用显示文件后首先生成Renderer。Renderer是将活动的结果合并到模板中并做成页面的对象。然后活动把要求中的信息设置到Renderer中,同时设置模板。最后将Renderer返回给控制器。
    控制器是好东西,他几乎不需要编辑。 

 

mojavi3 与php5相对应!

虽然,这是mojavi2的配置步骤,其它和mojavi3的配置非常的类似,但mojavi2和mojavi3之间还是有很多的不同的地方;只要认真地看它们的配置文件的信息,问题是不大的。

分享到:
评论
2 楼 oceanG_Y 2009-03-21  
这个框架和struts1的差不多,也是分三部分,视图,控制器,template;初学者用的时候,就是在配置环境的时候,可能有些不习惯,因为要关注的参数比struts1和struts2要多很大,而且也要更细心,但是比用struts做WEB方面的应用效率要快很多。
1 楼 liyh 2009-02-20  
你觉得这个框架怎么样。

相关推荐

    Mojavi-开源

    - **配置**:根据项目需求配置Mojavi的配置文件,包括数据库连接、错误处理等设置。 - **创建控制器**:编写控制器类,定义处理用户请求的方法。 - **设计模型**:为应用创建模型类,实现与数据库的交互。 - **...

    Propel Accelerator PWAS Administration-开源

    propelAdmin是用NSIS(Nullsoft可脚本安装系统)编写的一组工具,用于处理Propel Accelerator的管理。 它的创建是为了向Propel PWAS订户提供更有效的客户支持。

    小程序商城源码带后台

    1. "mojavi":可能是一个基于Mojavi框架的代码库,Mojavi是一个轻量级的PHP框架,用于构建高效和可维护的Web应用。 2. "log":通常用于存放系统日志,记录系统运行时的错误信息和其他关键事件,有助于调试和问题排查...

    symfony教程

    随着PHP5的发布,他开始着手开发Symfony的核心,其基于Mojavi MVC框架、Propel ORM以及Ruby on Rails的模板辅助方法。Symfony最初是为了Sensio的项目而开发的,目的是提高开发效率,让Web应用开发更加直观和易于维护...

    symfony权威指南

    - **技术基础**:Symfony的核心基于Mojavi MVC框架、Propel ORM以及Ruby on Rails的模板辅助方法。 - **应用场景**:最初是为了解决一个女性内衣零售网站的开发需求而诞生,之后逐步发展成为了一个广受欢迎的开发...

    The Fresh Toolkit-开源

    在压缩包`fresh-0.871`中,包含了Fresh Toolkit的具体版本,你可以解压后按照文档进行安装和配置。使用这个工具包,开发者可以更快地开发出高质量的Web应用,同时也能够享受到开源社区的持续支持和更新。 总的来说...

    ZesticCMS-开源

    对于ZesticCMS,这个文件会指导用户如何正确安装和配置系统,了解其运行环境需求,以及如何获取技术支持和社区资源。 **lib目录** `lib`目录包含了ZesticCMS的核心库文件,这些文件通常包含类和函数,用于实现系统...

    PHP的开发框架的现状和展望

     在RoR流行之前,PHP领域也有不少开发框架,例如Mojavi、WACT、PHPMvc和Seagull等。这些框架虽然也采用了MVC模式、数据库抽象层等技术。但由于当时PHP本身不像现在这样流行,所以这些框架都没有得到大量应用,最终...

    B002 外包目件

    - **开发ノウハウ**:分享负载均衡和集群的配置与管理经验。 ### 测试部分知识点 #### 品质意识的建立(1级) - **品质的重要性**:阐述软件质量对于用户体验和业务价值的影响。 - **糟糕的品质会带来什么**:...

    PHP开发框架比较

    - **Mojavi**: 用于MVC模型层,增强了模型层的灵活性。 - **扩展性**: 极具扩展性,允许开发者根据需求定制框架。 - **兼容性**: 不支持PHP 4,要求PHP 5及以上版本。 - **复杂性**: 相较于其他框架,使用起来稍微...

Global site tag (gtag.js) - Google Analytics