首頁 >後端開發 >php教程 >Yaf框架安裝指南

Yaf框架安裝指南

不言
不言原創
2018-05-10 09:11:0011744瀏覽

這篇文章主要介紹了關於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專案

有兩種創建方式:


  1. ############################################################################################## ###手動建立目錄############使用Yaf提供的命令列產生目錄###

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

一个典型的目录结构:

<p style="margin-bottom: 7px;">+ public<br/>  |- index.php //入口文件<br/>  |- .htaccess //重写规则    <br/>  |+ css<br/>  |+ img<br/>  |+ js<br/>+ conf<br/>  |- application.ini //配置文件   <br/>+ application<br/>  |+ controllers<br/>     |- Index.php //默认控制器<br/>  |+ views    <br/>     |+ index   //控制器<br/>        |- index.phtml //默认视图<br/>  |+ modules //其他模块<br/>  |+ library //本地类库<br/>  |+ models  //model目录<br/>  |+ plugins //插件目录<br/></p>

入口文件:

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

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

<?php
define("APP_PATH",  realpath(dirname(__FILE__) . &#39;/../&#39;)); /* 指向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

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
  <?php echo $content;?>
 </body>
</html>

运行:

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

http://www.yourhostname.com/application/index.php

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

注意:

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

以上是Yaf框架安裝指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn