FleaPHP 开发指南 - 3. 应用程序入口
与许多开发框架一样,FleaPHP 通常也使用一个入口文件来启动框架,并运行应用程序代码。虽然 FleaPHP 并不要求应用程序必须使用单一的入口文件,不过在本系列文章中,我大部分时间都使用单一入口文件。
单一入口应用程序
在 FleaPHP 应用程序使用 MVC 模式时,应用程序的所有功能都通过一个单一的文件来调用。这种通过单一文件来执行所有功能的应用程序,称为单一入口应用程序。有关单一入口应用程序的一些信息,可以参考 ChinaUnix 上的一篇帖子。
许多著名的 PHP 应用程序都是单一入口,例如 Drupal、WordPress、XOOPS、Mambo 等。当然也有 phpMyAdmin 这样的非单一入口应用程序。
创建入口文件
现在,我们来创建一个最简单的入口文件。打开文本编辑器,创建 htdocs/index.php 文件,内容如下:
<?php
require('FLEA/FLEA.php');
run();
?>
现在启动浏览器,输入地址:http://localhost/index.php,应该就可以看到如下的画面:
这个画面显示了一个错误信息,但是也表明 index.php 中的两行代码已经成功启动了 FleaPHP 框架。
实现我们的第一个控制器
在 FleaPHP 应用程序中,应用程序包含多个控制器。每一个控制器又提供一组控制器动作(后文及本系列文章中都简称为“动作”)。每一个浏览器发送给 FleaPHP 应用程序的请求,都是由一个动作来处理的。将一组相关的动作集中到一起,就形成了一个控制器。
现在我们来实现第一个控制器:
创建 htdocs/APP/Controller 目录,并创建文件 htdocs/APP/Controller/Default.php (注意严格匹配目录名和文件名的大小写),内容如下:
<?php
class Controller_Default
{
function actionIndex() {
echo "My first controller.";
}
}
?>
同时修改 index.php 入口文件,内容改为:
<?php
require('FLEA/FLEA.php');
import(dirname(__FILE__) . '/APP');
run();
?>
现在切换到浏览器,点击“刷新”按钮,可以看到 Default.php 文件中的 actionIndex 方法正确执行了。
从刚刚这个例子可以看到,每一个控制器实际上就是一个类,而一个动作则是该类的一个方法。
添加更多的动作
现在我们为这个控制器添加更多的 Action 方法:
<?php
class Controller_Default
{
function actionIndex() {
echo "My first controller.";
}
function actionSay() {
echo "Oh, FleaPHP great!";
}
}
?>
切换到浏览器,将浏览地址从 http://localhost/index.php 改为 http://localhost/index.php?action=say 并按回车键。可以看到输出内容改变了。
由此可见,action 参数的值决定了要调用控制器中的哪一个动作方法。在上面的例子中,action=say 时,调用的动作方法为 actionSay。因为 FleaPHP 默认要求每一个动作方法必须加上前缀 action。如果不提供 action 参数,则名为 index 的动作方法 actionIndex() 会被调用。
实现更多的控制器
创建新文件 htdocs/APP/Controller/Book.php,并输入内容:
<?php
class Controller_Book
{
function actionIndex() {
echo "Book controller default action.";
}
function actionSayTitle() {
echo h("<< Boost up with FleaPHP >>");
}
}
?>
现在切换到浏览器,输入地址 http://localhost/index.php?controller=Book&action=sayTitle,并按回车键。可以看到我们成功的调用了另一个控制器的动作方法。
与使用 action 参数指定要调用的动作类似,用 controller 参数可以指定要调用的控制器。而此时 action 参数指定的就是该控制器的动作。
FleaPHP 开发指南 - 3. 应用程序入口相关推荐
- FleaPHP 开发指南 - 5. 应用程序设置
FleaPHP 是一个具有高度灵活性的框架.开发者可以用不同的设置来调整 FleaPHP 的工作方式.这些设置统一保存在名为"应用程序设置"的数据源中. 实际上,除了 FleaPH ...
- FleaPHP 开发指南
FleaPHP 开发指南提供了使用 FleaPHP 开发应用程序的各方面内容.开发指南中,大部分文章属于 Step by Step 的教程形式,少数文章深入描述 FleaPHP 的某些重要特征. 虽 ...
- Python开发指南[1]之程序员计时小时钟(附源码)
Python开发指南[1]之程序员计时小时钟 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 Python作为一门编程语言,这门语言的魅力和影响力已经远超C#.C++等编程 ...
- FleaPHP 开发指南 - 2. FleaPHP 中的 MVC 模式
理解 FleaPHP 中,MVC 模式是如何实现的,以及其特点,可以帮助你更好的运用 FleaPHP. 什么叫做设计模式? 简单来说,设计模式(Pattern)就是解决某一类问题的特定方法.由于这种特 ...
- Android开发指南 1──应用程序基础
登录 | 注册 译言精选 订阅 社区 译言译事 翻译答问 译言帮助 文库 原文库 译文库 全部项目 空间 控制台 个人主页 发布 发布原文 发布翻译 发布编译 发布原创 首页 商业 科技 文化 体坛 ...
- Hue开发指南 - 提交 Spark 程序
目录 Hue开发指南 1.Spark文件打包成一个Jar包提交Hue运行 1.1 上传Spark Jar包至HDFS文件系统 1.2.Hue中创建Spark任务 2.多jar包导入执行(依赖jar包与 ...
- FleaPHP 开发指南 - 4. 命名规范和目录结构
FleaPHP 的命名规则和目录结构初看上去比较复杂,但习惯以后,你会发现这种命名规则带来许多好处.因此像 Zend Framework 也是采用同样的做法. 当然,FleaPHP 对于应用程序的命名 ...
- FleaPHP 开发指南 - 6. 访问数据库
这一章我们就来看看 FleaPHP 的数据库访问功能.体验一下 FleaPHP 出色的自动化 CRUD 能力. 连接数据库 在 htdocs 目录中创建子目录 testDB,并在子目录下创建文件 te ...
- FleaPHP 开发指南 - 7. 数据表关联
数据表关联是指两个或者多个数据表的记录之间的逻辑关系. 例如: 每一个公民都有一个身份证号码 每一位作者都写了多本(0-n)书籍,而每一本书籍都有多个(1-n)作者 每一篇文章都有多个(0-n)评论 ...
最新文章
- HDFS文件上传、下载和删除案例
- python中utf8占几个字节_为什么utf8占用3个字节
- 【干货】写给产品经理和设计师的用户体验知识
- HBase+Spark技术双周刊 第四期
- Perl中的替换(七)
- scala基础之泛型详解
- svn--Eclipse版本的安装步骤
- 自定义_Excel中的自定义函数(自定义函数的基础内容)
- ISO 22301 业务连续性管理(BCM) 认证培训及标准
- windows捕获串口数据_如何下载和安装用于Windows数据包捕获的Npcap库?
- lookup-method方法理解
- 为什么人人都爱油炸食物?
- FreeRTOS动态创建任务
- 【历史上的今天】4 月 4 日:互联网新时代的缔造者出现;微软成立;苹果公司元老诞生
- MS Castap学习(1)
- Flyway详解以及Springboot集成Flyway
- Android 布局圆角方案总结
- win10怎么卸载更新文件?
- 【硬件】CPU(一)
- vue使用vuetify创建项目运行报错:error Component name XXX should always be multi-word vue/multi-word-compon