recess----1.第一个APP-helloRecess
选择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的更多相关文章
- Android(4)—Mono For Android 第一个App应用程序
0.前言 年前就计划着写这篇博客,总结一下自己做的第一个App,却一直被新项目所累,今天抽空把它写完,记录并回顾一下相关知识点,也为刚学习Mono的同学提供佐证->C#也是开发Android的! ...
- Android-启动另一个app
直接上代码: // 通过包名获取要跳转的app,创建intent对象 Intent intent = getPackageManager().getLaunchIntentForPackage(&qu ...
- app使用微信支付成功后,点击返回到该app却跳到另外一个app去了
刚接手了公司iOS的两个APP, 现在碰到了这样一个问题: 有一台iPhone在一个APP中使用了微信支付,支付成功后,点击返回到该APP,结果却跳到了另外一个APP去了. 这两个APP都是公司开发的 ...
- 做一个 App 前需要考虑的几件事
做一个 App 前需要考虑的几件事 来源:limboy的博客 随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了.尽管如此,有些事情最好前期就做起来,避免当 ...
- 后移动互联网时代:到底还要不要开发一个App?
后移动互联网时代,到底是什么样的一个时代? 首先,后移动互联网时代中,产生头部应用的几率变小了,像微信这样巨头式的App很难在产生第二个.其次,后移动互联网时代,物联网发展迅速,所有的智能硬件都需要一 ...
- APP开发:一个APP开发需要哪些技术人员?
亿合科技小编了解到:国民老公王思聪曾经在一个访谈中谈到过,如果他是一个普通人,他会选择移动互联网去创业,因为做个网站或者App开发门槛较低,做大做强的机会也比较多.小编觉得创业就是投资,重 ...
- 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 第一个APP
参考博文: [Phonegap+Sencha Touch] 移动开发1.准备工作 [Phonegap+Sencha Touch] 移动开发2.PhoneGap/Cordova初步使用 经过差不多1 ...
- 一个App Widget实例第一次创建时被调用
事实上已经有很多的所谓的路由框架做到这一点,我也没有去研究别的,加上一直对backbone这个框架的评价不错,所以就琢磨着怎么用它实现我所需要的SPA的url管理了. 比如,你可能会说"如果 ...
- 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 ...
- Android项目实战(二十二):启动另一个APP or 重启本APP
一.启动另一个APP 目前公司项目需求,一个主APP,需要打开某些小APP,这些小APP是整合了Unity的,但是还是android程序(所有小APP的包名是已知的). 以前没做过,查询了一下实现方法 ...
随机推荐
- Linux系统的目录结构及各目录作用
使用tree命令查看Linux目录结构,这个命令默认是没有安装的,需要手动安装一下. [root@xuexi xf]# mount /dev/sr0 /media/ mount: /dev/sr0 写 ...
- Python开发基础-Day10生成器表达式形式、面向过程编程、内置函数部分
生成器表达式形式 直接上代码 # yield的表达式形式 def foo(): print('starting') while True: x=yield #默认返回为空,实际上为x=yield No ...
- 【转载】随机生成k个范围为1-n的随机数,其中有多少个不同的随机数?
来源:http://www.cnblogs.com/haolujun/archive/2012/11/11/2765102.html 假如现在让你随机生成k个范围在1-n内的随机数,那么你能得到多少个 ...
- bzoj 4430: [Nwerc2015]Guessing Camels赌骆驼
4430: [Nwerc2015]Guessing Camels赌骆 Description Jaap, Jan, and Thijs are on a trip to the desert afte ...
- python基础之数据类型之元组和字典
四.元组 1.用途:元组是不可变的列表,能存多个值,但只能取,不能改 2.定义:name = (‘alex’, ’egon’, ‘wxx’) 在()内用,分割开,可存放任意类型的值 强调:x = (‘ ...
- 浅析position:relative position:absolute
定位一直是WEB标准应用中的难点,如果理不清楚定位那么可能应实现的效果实现不了,实现了的效果可能会走样.如果理清了定位的原理,那定位会让网页实现的更加完美. 定位的定义: 在CSS中关于定位的内容是: ...
- iOS 自定义对象及子类及模型套模型的拷贝、归档存储的通用代码
一.runtime实现通用copy 如果自定义类的子类,模型套模型你真的会copy吗,小心有坑. copy需要自定义类继承NSCopying协议 #import <objc/runtime.h& ...
- 你家的Wifi密码安全吗?
WiFi在给我们提供方便的无线网络同时,也带了一些隐患.如果对WiFi不设密码的话,一来会因为蹭网而影响网速,二来给信息安全带来了不小隐患.针对WiFi的安全手段,一般来说就是加密.最初的加密方式是W ...
- 推荐几个对象映射(Object-Object Map)的库
在进行一些MIS相关的项目开发中,我们经常会涉及到一些数据对象和视图模型之间的互相转换, public class Customer //mapped from db { ...
- Helm安装和项目使用
整体架构 1.为什么要用? 首先在原来项目中都是基于yaml文件来进行部署发布的,而目前项目大部分微服务化或者模块化,会分成很多个组件来部署,每个组件可能对应一个deployment.yaml,一个s ...