Yaf框架安装指南

不言
Freigeben: 2023-03-25 18:28:02
Original
11619 Leute haben es durchsucht

这篇文章主要介绍了关于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
Nach dem Login kopieren

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.
Nach dem Login kopieren

可参考: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
Nach dem Login kopieren

添加完之后,可查看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项目

有两种创建方式:


  1. 手动创建目录

  2. 使用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 //插件目录

Nach dem Login kopieren

入口文件:

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

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

run();
Nach dem Login kopieren

重写规则:

Apache的Rewrite (httpd.conf):

#.htaccess, 当然也可以写在httpd.conf RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.php
Nach dem Login kopieren

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; } }
Nach dem Login kopieren

配置文件:

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

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

[product] ;支持直接写PHP中的已定义常量 application.directory=APP_PATH "/application/"
Nach dem Login kopieren

控制器:

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

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

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

getView()->assign("content", "Hello World"); } } ?>
Nach dem Login kopieren

视图文件:

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

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

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

  Hello World 
Nach dem Login kopieren

运行:

在浏览器输入你服务器配置的域名即可:

http://www.yourhostname.com/application/index.php
Nach dem Login kopieren

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

注意:

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

Das obige ist der detaillierte Inhalt vonYaf框架安装指南 . Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!