选择recess的理由很简单,这个架构看起来很轻量级,很简单。至少是写起应用来感觉不需要考虑太多和架构相关的东西。没有按作者给的过程一步步来,折腾了好久。。。在这里记录一下。

安装过程略,官网文档无压力思密达。

这里主要是添加我们的第一个应用,你可以有两种方法来实现:自己coding;使用recess提供的new app方法。

自己coding的话,你可以更清楚的看到它做了些什么;使用new app方法的话,好处自己看吧。使用new方法的好处。。。唔,产生了一个配置很全面的app?貌似对我没有太多诱惑。

使用recess提供的new app方法就不讲了,自己在装完recess之后点进去慢慢试。这里提供自己写的第一个APP,Hello Recess。这个是仿照官网Hello World写的啦。

首先,你需要把这个APP相关的目录都建好了。

app/
helloRecess/
controllers/
views/
      home/

然后,必须要一个APP的定义文件,而且名称必须是HelloRecessApplication.class.php,放在helloRecess目录下:

<?php
Library::import(‘recess.framework.Application’); class HelloRecessApplication extends Application {
public function __construct() {
$this->name = ‘Hello Recess’;
$this->viewsDir = $_ENV[‘dir.apps’].‘helloRecess/views/’;
$this->modelsPrefix = ‘helloRecess.models.’;
$this->controllersPrefix = ‘helloRecess.controllers.’;
     $this->routingPrefix = ‘helloRecess/’;
}
}
?>

这样一个没有controller,没有model,没有view的三无产品就出炉啦思密达~只需要安装到recess就好啦!安装方法嘛,编辑根目录下的recess-conf.php就好啦~

注意,上面的app行添加的是helloWorld.HelloWorldApplication,这里意思是,从app目录开始找,在一个叫helloWorld的目录下,有一个类文件叫HelloWorldApplication.class.php。根据我们的情况,您看着改吧。

这里作者有解释:

The convention of single classes per file and directories being broken up with dots is taken from the land of Java. The Recess library provides an layer important to auto-loading and performance between framework code and PHP’s native include_once and require_once methods.

好吧,现在点击 http://localhost/helloRecess/ 。你看到了啥?

抛出错误了是吧?第一个高端大气上档次的错误。

Resource does not exist.
throw new RecessResponseException('Resource does not exist.', ResponseCodes::HTTP_NOT_FOUND, get_defined_vars());

这就对了,没有controller是万万不行的!然后,我们在helloRecess/controllers目录下建我们的第一个controller,HelloRecessHomeController.class.php:

<?php
Library::import('recess.framework.controllers.Controller');
/**
* !RespondsWith Layouts
* !Prefix Views: home/, Routes: /
*/
class HelloRecessHomeController extends Controller { /** !Route GET */
function index() {
$this->message = 'Hello Recess!';
}
}
?>

注意注释:

1)!Prefix Views: /home/, Routes: /。这是针对这个类的。这里告诉Recess,我们的HelloRecessHomeController使用的是views/home/下的view文件,整个类的route是APP的根路径helloRecess/

2)!Route GET:这是针对method的。这里是告诉Recess,这个是处理helloRecess这个目录的GET请求时用的。也就是framework的Route定义。每个method对应上面views目录(/views/home/)下的一个html.php文件,比如这里的index方法对应的是/views/home/index.html.php

当然,没有model可以,但是不能没有view啊,然后我们在helloRecess/views/home/目录下创建一个view,index.html.php:

<html>
<header>
<title>Great Works!</title>
</header><body>
<p>Hello Friends,</p>
<p>Message from controller:<?php echo $message; ?></p>
<p>Great Works! You build your first APP in Recess successfully!</p>
<p><strong><a href="http://www.cnblogs.com/pied">Luo Zhenxing</a></strong>
<br />(<a href="mailto:piedgogo@gmail.com">e-mail</a>)</p>
</body>
</html>

然后,你再点点 http://localhost/helloRecess/ 试试?丑就丑点吧,为了例程最简,我把css什么的都去掉了。

recess----1.第一个APP-helloRecess的更多相关文章

  1. Android(4)—Mono For Android 第一个App应用程序

    0.前言 年前就计划着写这篇博客,总结一下自己做的第一个App,却一直被新项目所累,今天抽空把它写完,记录并回顾一下相关知识点,也为刚学习Mono的同学提供佐证->C#也是开发Android的! ...

  2. Android-启动另一个app

    直接上代码: // 通过包名获取要跳转的app,创建intent对象 Intent intent = getPackageManager().getLaunchIntentForPackage(&qu ...

  3. app使用微信支付成功后,点击返回到该app却跳到另外一个app去了

    刚接手了公司iOS的两个APP, 现在碰到了这样一个问题: 有一台iPhone在一个APP中使用了微信支付,支付成功后,点击返回到该APP,结果却跳到了另外一个APP去了. 这两个APP都是公司开发的 ...

  4. 做一个 App 前需要考虑的几件事

    做一个 App 前需要考虑的几件事  来源:limboy的博客   随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了.尽管如此,有些事情最好前期就做起来,避免当 ...

  5. 后移动互联网时代:到底还要不要开发一个App?

    后移动互联网时代,到底是什么样的一个时代? 首先,后移动互联网时代中,产生头部应用的几率变小了,像微信这样巨头式的App很难在产生第二个.其次,后移动互联网时代,物联网发展迅速,所有的智能硬件都需要一 ...

  6. APP开发:一个APP开发需要哪些技术人员?

          亿合科技小编了解到:国民老公王思聪曾经在一个访谈中谈到过,如果他是一个普通人,他会选择移动互联网去创业,因为做个网站或者App开发门槛较低,做大做强的机会也比较多.小编觉得创业就是投资,重 ...

  7. 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 第一个APP

    参考博文: [Phonegap+Sencha Touch] 移动开发1.准备工作 [Phonegap+Sencha Touch] 移动开发2.PhoneGap/Cordova初步使用   经过差不多1 ...

  8. 一个App Widget实例第一次创建时被调用

    事实上已经有很多的所谓的路由框架做到这一点,我也没有去研究别的,加上一直对backbone这个框架的评价不错,所以就琢磨着怎么用它实现我所需要的SPA的url管理了. 比如,你可能会说"如果 ...

  9. Android Studio 1.0.2项目实战——从一个APP的开发过程认识Android Studio

    Android Studio 1.0.1刚刚发布不久,谷歌紧接着发布了Android Studio 1.0.2版本,和1.0.0一样,是一个Bug修复版本.在上一篇Android Studio 1.0 ...

  10. Android项目实战(二十二):启动另一个APP or 重启本APP

    一.启动另一个APP 目前公司项目需求,一个主APP,需要打开某些小APP,这些小APP是整合了Unity的,但是还是android程序(所有小APP的包名是已知的). 以前没做过,查询了一下实现方法 ...

随机推荐

  1. js相关数组迭代方法图解

  2. WPS设置去广告

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha WPS设置去广告 设置密码和权限

  3. smail修改字符串 汉字

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha  313134555@qq.com 将smali文件中的unicode字符串变为汉字

  4. JZYZOJ 1375 双亲数 莫比乌斯反演

    http://172.20.6.3/Problem_Show.asp?id=1375 网上搜推理图. 有一段没有写莫比乌斯反演都快忘了..数学能力--,定理完全不会推,但是这道题整体来说应该是比较好写 ...

  5. (疯狂java)第四课(上)

    趁着周末玩爽了,兴致来了,继续玩玩java(估计再玩下去,就要被java玩了),第六章实在是很长,那就两个阶段来看吧. 1.java 7的增强包装类 这些包装类就是java上的基本类型,只不过人人基本 ...

  6. Maven的内置属性

    Maven共有6类属性: ①内置属性(Maven预定义属性,用户可以直接使用) ${basedir}表示项目的根路径,即包含pom.xml文件的目录 ${version}表示项目版本 ${projec ...

  7. foreach循环时动态往数组里添加数据

    今天在用TP做项目的时候遇到一个问题,foreach的时候需要动态往数组里添加数据,示例代码如下: $arr = array( array('id'=>'字符串1','name'=>'字符 ...

  8. HDU 4635 Strongly connected (2013多校4 1004 有向图的强连通分量)

    Strongly connected Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. DN安卓2014版(5-9)

    DN安卓2014版(5-9) 联系2g32@sina.com

  10. php判断手机客户端

    <?php // check if wap function check_wap(){ if(stristr($_SERVER['HTTP_VIA'],"wap")){// ...