博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
yafphp框架
阅读量:5742 次
发布时间:2019-06-18

本文共 3015 字,大约阅读时间需要 10 分钟。

学习资料

Yaf(Yet Another Framework)用户手册

http://www.laruence.com/manual/index.html

laruence/yaf

https://github.com/laruence/yaf

php yaf框架开发扩展实践

http://www.01happy.com/php-yaf-ext-preface/

http://www.php.net/manual/zh/book.yaf.php

特点

1、基于c语言开发;
2、以php扩展的形式安装(.so,.dll)
3、没有封装数据库操作的ORM

 

安装yaf扩展

扩展下载网址:http://pecl.php.net/package/yaf

windows请下载对应版本的php_yaf.dll,并复制到ext/ 目录。

其它版本请下载源码进行编译。

 

验证是否安装成功,使用phpinfo查看,如显示出yaf即成功:

或者在命令行使用php -m,若成功安装,可以看到yaf扩展。

 

参考源码里面的test进行搭建demo。

 

项目结构

─application          应用目录│  ├─controllers      控制器目录│  │    ├  Error.php│  │    └  Index.php│  ├─library        库目录│  ├─models         模型目录│  │    └ Sample.php│  ├─plugins        插件目录│  │    └ Sample.php│  ├─views         视图目录│  │    ├─error│  │    └─index│  └──  Bootstrap.php├─conf            配置文件目录│     └─ application.ini  配置文件  ├─public           静态文件目录└──   index.php       入口文件

入口文件

index.php

array( "directory" => APP_PATH . "/application", ),);$app = new yaf_application($config);*///加载配置文件$app = new Yaf_Application(APP_PATH . "/conf/application.ini");$app->bootstrap() //call bootstrap methods defined in Bootstrap.php ->run();

配置文件

conf/application.ini

[common]; 支持直接写PHP中的已定义常量application.directory = APP_PATH  "/application"application.dispatcher.catchException = TRUEapplication.view.ext = html; 数据库配置resources.database.params.driver = "pdo_mysql"resources.database.params.hostname = "127.0.0.1"resources.database.params.port = 3306resources.database.params.database = "database"resources.database.params.username = "username"resources.database.params.password = "password"resources.database.params.charset = "UTF8"resources.database.params.driver_options.1002 = "SET NAMES utf8" [product : common]; 生产环境配置 [test : common]; 测试环境配置 [develop : common]; 开发环境配置 resources.database.params.hostname = "127.0.0.1"resources.database.params.database = "database"resources.database.params.username = "username"resources.database.params.password = "password"

控制器

application/controllers

在Yaf中, 默认的模块/控制器/动作, 都是以Index命名的, 当然,这是可通过配置文件修改的。

对于默认模块, 控制器的目录是在application目录下的controllers目录下。

示例:application/controllers/Index.php

getRequest()->getQuery("get", "default value"); //2. fetch model $model = new SampleModel(); //3. assign $this->getView()->assign("content", $model->selectSample()); $this->getView()->assign("name", $name); //4. render by Yaf, 如果这里返回FALSE, Yaf将不会调用自动视图引擎Render模板 return TRUE; } public function testAction() { var_dump(YAF_VERSION );exit; }}

浏览器上访问:

http://localhost/demo/yaf/index.php/index

http://localhost/demo/yaf/index.php/index/test

 

视图文件

application/views

Yaf支持简单的视图引擎, 并且支持用户自定义自己的视图引擎, 比如Smarty。对于默认模块, 视图文件的路径是在application目录下的views目录中以小写的action名的目录中.

一个默认Action的视图application/views/index/index.html:

 

模型

yaf/application/models

yaf没有封装数据库操作的ORM。这里是示例的一个简单模型,无实际意义,仅做展示。

示例:yaf/application/models/Sample.php

yaf框架封装类库

虽然yaf性能很快,但是缺少诸如表单、数据库操作等类库的封装,在开发上不免带来不便。可以自行集成第三方类库。

(http://git.oschina.net/iceup/yaf-ext)

 

转载地址:http://ytszx.baihongyu.com/

你可能感兴趣的文章
HTMl与CSS
查看>>
数学建模-二胎政策对中国人口的影响
查看>>
qscoj 128 喵哈哈村的魔法源泉(2)(模仿快速幂,好题)
查看>>
预发环境与生产环境共享数据库时定时任务重复执行问题解决
查看>>
文件的权限查看
查看>>
UVa 11362 - Phone List
查看>>
Shine.js实现动态阴影效果
查看>>
怎样给你的Android 安装文件(APK)瘦身
查看>>
Spring 加载类路径外的资源文件
查看>>
redis获取当前时间精确到微秒
查看>>
国有航空为啥“放下身段”读春秋?
查看>>
读《建筑中的数学之旅》
查看>>
怎样用redis实现分布式锁
查看>>
兔子--ps中的基本工具总结(ps cs5)
查看>>
HDU 5386 Cover(模拟)
查看>>
Linux 静态链接库和动态连接库
查看>>
Linux轻量级自动运维工具-Ansible浅析【转】
查看>>
Linux时间子系统之(十六):clockevent
查看>>
Brainfuck解析器(Python)
查看>>
ORACLE使用WITH AS和HINT MATERIALIZE优化SQL解决FILTER效率低下
查看>>