选择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. ES5 Object.create 方法

    Object.create(proto[, propertiesObject])The Object.create() method creates a new object with the spe ...

  2. BZOJ 4802 欧拉函数(Pollard_Rho)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4802 [题目大意] 已知N,求phi(N),N<=10^18 [题解] 我们用P ...

  3. 【斜率优化】bzoj3675-[Apio2014]序列分割&&Uoj104

    题目大意 将一个长度为N的非负整数序列分割成k+l个非空的子序列,每次选择一位置分割后,将会得到一定的分数,这个分数为两个新序列中元素和的乘积.求最大的分数. [UOJ104]并输出任意一种方案 思路 ...

  4. 【动态规划】POJ2385-Apple Catching

    [题目大意] 有两棵树1和2,奶牛Bessie位于树1下,每个单位时间会有一个苹果从其中一棵树掉下来,同时Bessie也可以移动一次,但是Bessie不希望移动超过W次,问T时间内Bessie最多得到 ...

  5. bzoj 2468: [中山市选2010]三核苷酸

    2468: [中山市选2010]三核苷酸 Description 三核苷酸是组成DNA序列的基本片段.具体来说,核苷酸一共有4种,分别用’A’,’G’,’C’,’T’来表示.而三核苷酸就是由3个核苷酸 ...

  6. 分页器与form表单

    分页器 分页器对象 from django.core.paginator import Paginator Paginator对象: paginator = Paginator(user_list, ...

  7. 记录SSD中的一些东西

    AnnotatedDatum是存放图片和BBox的类 // 估计是一张图片就对应于一个AnnotatedDatummessage AnnotatedDatum { enum AnnotationTyp ...

  8. Problem E: 零起点学算法34——3n+1问题

    #include<stdio.h> #include<math.h> int main() { int n; n<=pow(,); ; scanf("%d&qu ...

  9. [转]spring property标签中的 ref属性和ref 标签有什么不同

    spring property标签中的 ref属性和ref 标签有什么不同? 如下:<property name="a" ref="b" /> sp ...

  10. [51nod1357]密码锁 暨 GDOI2018d1t2

    有一个密码锁,其有N位,每一位可以是一个0~9的数字,开启密码锁需要将锁上每一位数字转到解锁密码一致.这个类似你旅行用的行李箱上的密码锁,密码锁的每一位其实是一个圆形转盘,上面依次标了0,1,...9 ...