Fuel PHP 的学期末总结
Fuel PHP 的学期末总结
嗯……上了一门网页课,被课名唬了——Modern Web Development,结果一个学期上完之后没什么 Modern 的,Web Development 做的也就这样……
不过确实碰到一些配置的东西,这里就记录一下,省的以后如果还有需求 希望不会 会踩坑。
主要就是一些 default 的东西,没有修改 config 文件。
Fuel 下载与安装
主要都是使用命令行操作,并且从最后解压的结果来说文件都挺小的,这在我看来大概是……唯一的优点。
官方文档上只提供了使用 oil
的下载方式,学校机房也是 Linux 系统,所以用 oil
问题不大,Windows 上……完全不能用:
This currently only works on *nix systems (Linux, OS X, Unix, etc).
具体下载方式如下:
install oil
# install the quick installer $ curl -L https://get.fuelphp.com/oil | sh # create a new project $ oil create <project_name>
use composer
# create the default installation of the Fuel framework on virtual host root directory. $ cd /where/ever/your/virtualhost/root/is $ git clone git://github.com/fuel/fuel.git . $ composer install --prefer-dist
或者……
直接到 下载列表 下一个 zip 文件,解压后也是一样的。
(这也是我们被要求做的方法)
然后,安装就完成了。
项目结构如下:
/docs/fuel/app/core/packages/public/.htaccessassets/index.phpoil
fuel
就是主要内核存在的地方,public
是访问是打开的 entry point 以及 assets 存放的地点,public
会调用 fuel 的文件去进行对应的操作。比如说 app/
下面的结构也还有一个 MVC/MVP 内置实现可供选择。
如果在 Fuel PHP 中调用 Assets::
去获取 assets,其对应的是 public/assets/
下的内容。
MVC 部分
Controller
这里就简单的说一下用的 3 种 extendible controller。
Controller
这就是比较直接的方式,目前使用的方式就是:
class Controller_Home extends Controller{public function action_home() {return View::forge('home');} }
假设该 controller 的路径为
fuel/app/classes/controller
,这个 controller 的访问路径就是默认ip/index.php
或直接使用默认ip
进行访问。虽然文件名结尾是php
,不过访问的方式与 HTML 还是相似的。Controller_Template
这个是在存在可以复用的 layout 时使用,如:
controllers/home
class Controller_Home extends Controller_Template{public $template = 'layout';public function action_home() {$view = View::forge('home');$this->template->title = 'Title File';$this->template->content = $view;} }
views/layout.php
<!DOCTYPE html> <html lang="en"> <head><title><?php echo $title; ?></title> </head> <body><?php echo $content ?> </body> </html>
基本上还是 HTML 种嵌套 PHP 的代码,设定一些关键字然后做 data injection 这种套路。
Controller_Rest
Restful Controller
class Controller_m1_Color extends Controller_Rest {public function get_list(){return $this->response(array('foo' => Input::get('foo'),'baz' => array(1, 50, 219),'empty' => null));} }
该 API 可以在
http://localhost/test/list.json?foo=bar
进行访问。
View
View 中的东西基本上可以算是 HTML,虽然结尾是 php,不过写法就是……HTML 中嵌套 PHP,上面已经举例了。
Model
目前来说,我还没找到能够在 model
文件夹下建立新的文件夹进行管理的方式,所以目前项目中的 Models 全都在一个文件夹下。还好东西比较少,不然管理起来就很麻烦了……
代码大致如下:
<?php
namespace Model;
use \DB;class ColorModel extends \Model {public static function add_color($color, $hex) {DB::insert('colors')->set(array('name' => $color,'hex' => $hex)) -> execute();}public static function get_color() {return DB::query('SELECT * FROM `colors`', DB::SELECT)->execute()->as_array();}public static function delete_color($id) {return DB::query('DELETE FROM `colors` WHERE id ='.$id) -> execute();}
}
?>
这方面的 API 我没有查的很仔细,而且直接使用 use \DB
似乎也是比较古早的用法,现在 fuel php 中提供了内置的 ORM,我这里也没有在使用。
而且这种直接使用 sql 方式绝对会有 SQL injection 的问题。
官方文档中有也有提供一些做法:
// find all articles
$entry = Model_Article::find('all');// find all articles from category 1 order descending by date
$entry = Model_Article::find('all', array('where' => array(array('category_id', 1),),'order_by' => array('date' => 'desc'),
));// find all articles from category 1 or category 2
$entry = Model_Article::find('all', array('where' => array(array('category_id', 1),'or' => array(array('category_id', 2),),),
));
使用这种比较合适的方法,Fuel PHP 内部会对输入的数据进行清理,从而预防 SQL Injection。
Fuel PHP 的学期末总结相关推荐
- 双非普通一本大一学生学期末课设——运动会比赛计分系统
双非普通一本大一学生学期末课设--运动会比赛计分系统 并没有做文件系统-只能将就的看一下,也没有结构体 做的很粗糙,很烂,就是发出来纪念一下. 感觉有点像堆出来的一坨屎,但是好歹是自己儿子,为我的代码 ...
- 高一c语言期末试题及答案,学期末
迎来了期末,你对这段时间来的表现和收获有怎样的了解和总结呢?下面是由出国留学网小编为大家整理的"2020高一学期末自我总结",仅供参考,欢迎大家阅读. 2020高一学期末自我总结( ...
- 计算机课程期末总结1000字,学期末总结1000字
学期末总结1000字 大学三年即将过去,三年的时光收获匪浅.在感受校园清新气息的同时,接触了来自不同地方的同学和老师,在每个人身上,学到了不少为人处世的道理.对于涉世不深的我来说,这些都是宝贵的经历. ...
- 华为matebook14学计算机,学期末任务重?华为MateBook 14可以帮到你
原标题:学期末任务重?华为MateBook 14可以帮到你 如今临近年底了,各种汇报总结接踵而来,不管是职场小白还是职场达人无一幸免.每天不仅要把应做的工作按时按量的完成,还要想办法把更为重要的汇报或 ...
- html5总结2000字,学期末个人总结2000字
学期末个人总结2000字(一) 我们经过一个星期的紧张考试后,终于完事了.这些天可是把人折磨的不轻啊.以前我们考试总是会考很久,那时我们会有充足的时间去准备,即便是平时学的不是很认真,但只要考试前突击 ...
- 七年级计算机c语言测试题,2017年初一下学期数学期末检测试题
2017年初一下学期数学期末检测试题 关键的七年级数学期末考试就临近了,付出就有回报,赶紧睡个好觉.别想分数高低,放松最为重要.下面是yjbys小编收集的初一下学期数学期末检测试题,希望大家认真练习! ...
- 计算机系期末个人总结范文,计算机系学生会学期末工作总结
计算机系学生会学期末工作总结 计算机系学生会学期末工作总结 (XX-XX年学年度第一学期) 元旦到来,计算机系学生会第二学期的各项工作也喜摘硕果.在校系领导的亲切关怀下,在全体同学鼎力支持下,在全体学 ...
- 大二(上期)学期末个人学习总结
本学期总感觉是稀里糊涂在各种催促中就匆匆度过了,为什么是催促呢?因为在这学期进行了专业分流,有了一个极其严厉的老师,会给我们布置 力所不能及的任务,需要我们通过自主学习完成任务.但是,说老实话,自己并 ...
- 能源15A1,A2燃烧学期末试题2018-01-02
一简答题(40分) 1.简述湍流火焰的分类和特点(15分) 2.列举工程上5种常用的稳焰方法(10分) 3.根据碳的燃烧速度特点,可以分为那几个控制区?其特点是什么?(15分) 二,计算题(15分)( ...
最新文章
- jquery判断方法是否存在_判断图中是否有环的三种方法
- linux 卡在grub_安装Linux系统,Ubuntu时卡在这个界面不动了,有3个小时了。。显示:“正在运行update_grub”......
- 逆天改命,机械飞升:渐冻症科学家拒绝等死,将自己改造成了「半机械人」...
- 彻底关闭windows server 2008 IPv6
- 无状态逻辑服务器,无状态 | RESTful API 中文网
- 如何在64位win7下通过ODAC来访问Oracle服务器
- java为什么要定义接口_java为什么要定义接口等相关解释
- 使用Fiddler为满足某些特定格式的网络请求返回mock响应
- 软件工程师的十个“不职业”行为
- jquery cookie的用法
- 使用java代码发送zip文件到邮箱_Azkaban安装与使用(下)
- 软考信息安全工程师培训精品课-更新中
- C# - 自动生成分页存储过程
- 内存管理(C语言中malloc和free的用法)
- Java 延时常见的几种方法
- 23.3.3 Web存储机制【JavaScript高级程序设计第三版】
- 基于单片机的智能鱼缸控制系统设计
- 手机备份True NAS(FreeNAS)+​FolderSync​爬坑
- 第三阶段应用层——1.5 数码相册—使用FreeType在LCD上显示单个字符
- Keepalived + Nginx - linux 灾备方案(实现主备、热备)