这篇文章主要介绍了关于Yaf框架安装指南 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

说起PHP框架,很多人的印象都停留在一个由PHP实现的基于MVC的各种功能组合的代码包。极少有人知道C语言也能写PHP框架,并且速度比PHP写的框架快上10倍以上。

Yaf是一款以C语言写的PHP框架。它以PHP扩展的方式运行框架。只实现了MVC最核心部分的功能:路由、MVC。Yaf内核够精简稳定,所以,几乎不会遇到运行上的问题。风险可控,性能优异。当然,因为简单,所以,你需要实现DB的封闭、Session的扩展等操作。

身为PHP程序员,对于由亚洲第一程序员:鸟哥,编写的框架应该不陌生,那么它有什么优点呢?C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销.

所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存.

更短的内存周转周期, 提高内存利用率, 降低内存占用率.

灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享.

高性能的视图引擎.

高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等.

内建多种路由, 可以兼容目前常见的各种路由协议.

强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失.

在框架本身,对危险的操作习惯做了禁止.

更快的执行速度, 更少的内存占用.

框架安装:

一:框架安装

Yaf扩展主页:http://pecl.php.net/package/yaf$ wget http://pecl.php.net/get/yaf-3.0.7.tgz

$ tar -zxvf yaf-3.0.7.tgz

$ cd yaf-3.0.7

$ /path/to/phpize

$./configure --with-php-config=/path/to/php-config

$ make && make test && make install

tip:

在执行编译命令/path/to/phpize,命令的时候可能会出现如下错误:Configuring for:

PHP Api Version: 20151012

Zend Module Api No: 20151012

Zend Extension Api No: 320151012

Cannot find autoconf. Please check your autoconf installation and the

$PHP_AUTOCONF environment variable. Then, rerun this script.

可参考:https://blog.csdn.net/alen_xiaoxin/article/details/80255766,寻找解决办法。

编译完成生成扩展之后,修改php.ini,在php.ini文件末尾加如下配置:[yaf]

yaf.use_namespace = 0

yaf.environ = 'product'

yaf.cache_config = 0

yaf.name_suffix = 1

yaf.lowcase_path = 1

extension = yaf.so

添加完之后,可查看phpinfo是否存在yaf扩展。

配置说明:yaf.user_namespace 为1是开启命名空间模式。0关闭。

yaf.environ 是默认情况下Yaf读取的环境配置是什么。

yaf.cache_config 是否缓存项目配置。

yaf.name_suffix 开启后缀。即为1之后,类名将以XxxModel.php、XxxController.php模式加载。

yaf.lowcase_path 路径信息中的目录部分都会被转换成小写。

二、创建第一个Yaf项目

有两种创建方式:

手动创建目录

使用Yaf提供的命令行生成目录

第二种方法可自行到:https://github.com/laruence/php-yaf,下载源码,因为 Yaf 提供的命令工具没有随 Yaf 源码一起,在该项目下面有一个tools文件夹,里面就是命令行工具。

一个典型的目录结构:+ public

|- index.php //入口文件

|- .htaccess //重写规则

|+ css

|+ img

|+ js

+ conf

|- application.ini //配置文件

+ application

|+ controllers

|- Index.php //默认控制器

|+ views

|+ index //控制器

|- index.phtml //默认视图

|+ modules //其他模块

|+ library //本地类库

|+ models //model目录

|+ plugins //插件目录

入口文件:

入口文件是所有请求的入口, 一般都借助于rewrite规则, 把所有的请求都重定向到这个入口文件。

一个经典的入口文件piublic/index.php:<?php

define("APP_PATH", realpath(dirname(__FILE__) . '/../')); /* 指向public的上一级 */

$app = new Yaf_Application(APP_PATH . "/conf/application.ini");

$app->run();

重写规则:

Apache的Rewrite (httpd.conf):#.htaccess, 当然也可以写在httpd.conf

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule .* index.php

Nginx的Rewrite (nginx.conf):server {

listen ****;

server_name domain.com;

root document_root;

index index.php index.html index.htm;

if (!-e $request_filename) {

rewrite ^/(.*) /index.php/$1 last;

}

}

配置文件:

在Yaf中, 配置文件支持继承, 支持分节. 并对PHP的常量进行支持. 你不用担心配置文件太大造成解析性能问题, 因为Yaf会在第一个运行的时候载入配置文件, 把格式化后的内容保持在内存中. 直到配置文件有了修改, 才会再次载入。

一个简单的配置文件application/application.ini:[product]

;支持直接写PHP中的已定义常量

application.directory=APP_PATH "/application/"

控制器:

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

对于默认模块, 控制器的目录是在application目录下的controllers目录下, Action的命名规则是"名字+Action"

默认控制器application/controllers/Index.php<?php

class IndexController extends Yaf_Controller_Abstract {

public function indexAction() {//默认Action

$this->getView()->assign("content", "Hello World");

}

}

?>

视图文件:

Yaf支持简单的视图引擎, 并且支持用户自定义自己的视图引擎, 比如Smarty。

对于默认模块, 视图文件的路径是在application目录下的views目录中以小写的action名的目录中。

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

Hello World

运行:

在浏览器输入你服务器配置的域名即可:http://www.yourhostname.com/application/index.php

我是在本地配置的直接把端口指向public目录,所以直接输入:localhost:8081,即可看到

注意:

如果看不到Hello world,那么请到服务器查看PHP的错误日志,找出问题在哪里。

php-yaf,Yaf框架安装指南相关推荐

  1. yaf mysql_Yaf框架的配置

    http://www.laruence.com/manual/yaf.ini.html //先看一下惠新宸鸟哥yaf官网的配置说明 我们可以在php.ini中定义开发环节配置项,把本地开发设置成dev ...

  2. 从放弃到入门-Yaf(框架生成)

    上一个文章说到yaf的编译,那么接下来说通过yaf提供的代码生成工具:yaf_cg来创建一个简单的基本框架,我们取名为yaf_demo吧 框架生成 首先我们进入到yaf的源码目录下,在这里我是放在ph ...

  3. php 5.5.12 yaf,yaf框架教程(5)- yaf框架的启动文件

    yaf框架的启动文件又被称为引导层,一般放在应用目录(application)下,主要作用是在框架启动时,初始化设置,注册插件,加载全局的方法等. 在Bootstrap类中, 所有以_init开头的方 ...

  4. yaf mysql_Yaf框架封装的MySQL数据库操作示例

    本文实例讲述了Yaf框架封装的MySQL数据库操作.分享给大家供大家参考,具体如下: Yaf封装DB简单操作 介绍 因为Yaf是一个纯天然的MVC阔架,本人还在贝锐的时候就和主管一起用Yaf框架去重构 ...

  5. php5.6 yaf,Yaf安装/配置

    ## 2.1. Yaf的安装 Yaf只支持PHP5.2及以上的版本 Yaf需要SPL的支持. SPL在PHP5中是默认启用的扩展模块 Yaf需要PCRE的支持. PCRE在PHP5中是默认启用的扩展模 ...

  6. php配置yaf,Yaf配置文件详解

    一.yaf扩展的配置 这个配置内容是配置在php.ini文件中,一般在[yaf]这个区段(默认是没有的,可以在php.ini中加入) 这里主要列举常用的配置 (1)yaf.environ:定义应用的运 ...

  7. linux 卸载yaf,LINUX操作系统怎么搭建YAF框架

    如何在已经搭建好的php环境下,继续搭建yaf框架环境?那么小编就在本文给大家介绍下搭建方法 LINUX操作系统怎么搭建YAF框架 命令: wget 地址参考图片 命令: tar zxvf yaf-2 ...

  8. linux 安装yaf框架

    下载yaf源码 wget http://pecl.php.net/get/yaf-3.0.8.tgz 或者从github下载 https://github.com/laruence/yaf(githu ...

  9. PHP安装加载yaf扩展

    Yaf,全称 Yet Another Framework,是一个C语言编写的PHP框架,是一个用PHP扩展形式提供的PHP开发框架, 相比于一般的PHP框架, 它更快. 它提供了Bootstrap, ...

最新文章

  1. 专访图灵奖得主John Hopcroft:中国必须提升本科教育水平,才能在AI领域赶上美国
  2. 【错误记录】VMware 虚拟机报错 ( 无法连接网络 | VMWare 中打开已经连接好的虚拟机 | 选择 “ 在图形功能不兼容情况下, 车行是恢复虚拟机 “ 选项 )
  3. 图解使用Win8Api进行Metro风格的程序开发二----使用文件选择器访问和保存文件
  4. 用串口模拟printf函数输出
  5. GDI+中常见的几个问题(6)
  6. IntelliJ 创建main函数、for循环、输出语句快捷键
  7. 三星的S3C2440A 存储器控制器
  8. python文件合并_用Python 将两个文件的内容合并成一个新的文件.
  9. 第一次“2016第三届科学数据大会”新闻发布会在上海举行
  10. 笨方法“学习python笔记之字典
  11. sql语法中u‘‘ n‘‘详解
  12. dubbo 数据传输大小配置
  13. 二选一数据选择器2-1 MUX
  14. yuv420转yuv422(yuyv)
  15. 通过js脚本处理剪切板(简单而强大的效率工具)
  16. 禁止微信中长按出现 复制文本和在浏览器中打开
  17. 如何使用CentOS linux来搭建u-email邮件服务器(AIIP全国技能大赛企业联合教程)
  18. 转:原来可以这样出书、写书?
  19. 快手发布二季度及中期业绩:Q2收入191亿元 同比劲增48.8%
  20. 小米手机如何更换铃声和微信提示音

热门文章

  1. lisp画靶子 visual_求助:三点画矩形的LISP - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  2. 据说跑分16W+ 联发科X30处理器正式发布
  3. 第n个斐波那契数(C语言)
  4. 压力测试及缓存服务器
  5. 40 道JVM面试题解答
  6. Java中浅拷贝和深拷贝的区别
  7. Python PyMuPDF 提取PDF文件中的图片到指定目录保存,PDF将每一页都保存为图片
  8. 微信头像可以加挂件了,快试试
  9. pandas解决excel表格
  10. 怎么使xp计算机不休眠,怎么让电脑不休眠,教您如何操作