选择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. 第1天:Ansible安装部署

    Ansible介绍 Ansible是一个简单的自动化引擎,可完成配置管理.应用部署.服务编排以及各种IT需求.它是一款使用Python语言开发实现的开源软件,其依赖Jinjia2.paramiko和P ...

  2. Python开发基础-Day17面向对象编程介绍、类和对象

    面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux ...

  3. CodeForces - 1004E Sonya and Ice Cream

    题面在这里! 挺智障的一个二分...我还写了好久QWQ,退役算啦 题解见注释... /* 先对每个点记录 向子树外的最长路 和 向子树内最长路,然后二分. 二分的时候枚举链的LCA直接做就好啦. */ ...

  4. 【组合计数】UVA - 11538 - Chess Queen

    考虑把皇后放在同一横排或者统一纵列,答案为nm(m-1)和nm(n-1),显然. 考虑同一对角线的情况不妨设,n<=m,对角线从左到右依次为1,2,3,...,n-1,n,n,n,...,n(m ...

  5. bzoj 3900: 交换茸角

    3900: 交换茸角 Description 动物园里有 n 头麋鹿.每头麋鹿有两支茸角,每支茸角有一个重量.然而,一旦某头麋鹿上 两支茸角的重量之差过大,这头麋鹿就会失去平衡摔倒.为了不然这种悲剧发 ...

  6. python基础之数据类型,交互,格式化输出,基本运算符

    数据类型 1.什么是数据类型? 变量值才是我们存的数据,所以数据类型指的是变量值的种类 2.为何数据要分类? 变量值是用来保存现实世界中的状态的,那么针对不同的状态,就应该用不同类型的数据去表示 3. ...

  7. Android应用程序的解析

    一: 文件架构 二: 图片,语音资源的使用 图片的两种使用方法: 第一种: 使用imageView控件 <ImageView android:id="@+id/imageView1&q ...

  8. Hiho----无间道之并查集

    题目: 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 这天天气晴朗.阳光明媚.鸟语花香,空气中弥漫着春天的气息……额,说远了,总之,小Hi和小Ho决定趁着这朗朗春光出去 ...

  9. Elasticsearch-Kibana 5.5.1插件安装

    说明:比如Elasticsearch的版本和Kibana的版本保持一致,方便排查问题.一切的安装的运行建议不要用root权限,最好是当前用户下的权限.Kibana版本变化有点快,不同的版本有不同的配置 ...

  10. Linux设备模型(总结)

    转:http://www.360doc.com/content/11/1219/16/1299815_173418267.shtml 看了一段时间的驱动编程,从LDD3的hello wrod到后来的字 ...