Maison  >  Article  >  développement back-end  >  Guide d'installation du framework Yaf

Guide d'installation du framework Yaf

不言
不言original
2018-05-10 09:11:0011644parcourir

Cet article présente principalement le guide d'installation du framework Yaf, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

En parlant deLe framework PHP, de nombreuses personnes. L'impression demeure sur un package de code basé sur les différentes combinaisons fonctionnelles de MVC implémentées par PHP. Très peu de gens savent que le langage C peut également écrire des frameworks PHP, et la vitesse est plus de 10 fois plus rapide que celle des frameworks écrits en PHP.

Yaf est un framework PHP écrit en langage C. Il exécute le framework en tant qu'extension PHP. Seules les fonctions principales de MVC sont implémentées : le routage et MVC. Le noyau Yaf est suffisamment rationalisé et stable, il n'y a donc presque aucun problème de fonctionnement. Les risques sont contrôlables et les performances sont excellentes. Bien sûr, parce que c'est simple, vous devez implémenter des opérations telles que la fermeture de la base de données et l'expansion de la session.

En tant que programmeur PHP, je devrais connaître le framework écrit par le programmeur numéro un en Asie : Brother Niao, alors quels sont ses avantages ?

  • Le framework PHP développé en langage C n'apporte quasiment aucune surcharge de performances supplémentaire par rapport au PHP natif.

  • Tous les frameworks les classes n'ont pas besoin d'être compilées. Elles sont chargées au démarrage de PHP et résident en mémoire.

  • Cycle de rotation de la mémoire plus court, améliore l'utilisation de la mémoire et réduit le taux d'occupation de la mémoire.

  • Chargement automatique intelligent. Prend en charge les règles de chargement globales et locales pour faciliter le partage de bibliothèques de classes.

  • Moteur d'affichage hautes performances.

  • Un framework hautement flexible et extensible qui prend en charge les moteurs de vue personnalisés, les plug-ins, le routage personnalisé, etc.

  • Créez une variété d'itinéraires compatibles avec divers itinéraires actuellement courants protocoles de routage.

  • Prise en charge des fichiers de configuration puissante et très flexible. Il prend également en charge la mise en cache des fichiers de configuration pour éviter les structures de configuration complexes.

  • Dans le framework lui-même, les habitudes d'exploitation dangereuses sont interdites.

  • Vitesse d'exécution plus rapide, moins d'utilisation de la mémoire.

Installation du framework :

1 : Installation du framework

Page d'accueil de l'extension 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

astuce :

Lors de l'exécution de la commande de compilation /path/to/phpize, l'erreur suivante peut se produire :

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.

Veuillez vous référer à : https://blog.csdn.net/alen_xiaoxin/article/details/80255766 pour trouver des solutions.

Après avoir compilé et généré l'extension, modifiez php.ini et ajoutez la configuration suivante à la fin du fichier 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

Après l'avoir ajouté, vous pouvez vérifiez s'il existe une extension yaf dans phpinfo.

Instructions de configuration :

  • yaf.user_namespace est 1 pour activer le mode espace de noms. 0 de réduction.

  • yaf.environ est la configuration d'environnement lue par Yaf par défaut.

  • yaf.cache_config Indique s'il faut mettre en cache la configuration du projet.

  • yaf.name_suffix active le suffixe. Après avoir atteint 1, le nom de la classe sera chargé en mode XxxModel.php, XxxController.php.

  • yaf.lowcase_path La partie répertoire dans les informations de chemin sera convertie en minuscules.

2. Créez le premier projet Yaf

Il existe deux façons de le créer :


  1. Créez le répertoire manuellement

  2. Utilisez la ligne de commande fournie par Yaf pour générer le répertoire

第二种方法可自行到: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的错误日志,找出问题在哪里。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn