概述与入门

欢迎使用Gene框架

最新版本:V4.1.2
开源地址:https://github.com/sasou/gene  作者:sasou
文档地址:http://php-gene.com/doc.html

概览

  • 介绍

    Gene 是一个灵活、强大、简单、高效的c扩展框架。通过精心的设计与高效的技术实现,配合数据库、缓存等类库,带来新的开发体验。

  • 特点概述

    1. 简单 :入门快,配置简单;
    2. 灵活 :灵活安全的路由,前置、后置注入等;
    3. 强大 :配置进程级缓存,路由配置简单强大、支持函数回调、支持rest风格等。
    4. 高效 :框架基本不增加性能消耗,配置文件按需加载、运行效率高。
  • 目录结构

    对于gene应用,可以遵循类似下面的目录结构,熟悉后可以自定义目录结构.
    application
    ├─Config
    ├─Controllers
    ├─Models
    ├─Services
    └─Views
    public
    └─index.php

入门

  • 入口文件

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

    
     define('APP_ROOT', __dir__ . '/app');
     $app = \Gene\Application::getInstance();
     $app
       ->load("router.ini.php")
       ->load("config.ini.php")
       ->run();  
  • 路由配置文件

    可以配置http请求方式(get,post,put,patch,delete,trace,connect,options,head),配置路由处理函数:回调函数、类的方法(格式className@methodName)。

    
     $router = new \Gene\Router();
     $router->clear()
     ->get("/", "\Controllers\Index@run")
     ->error(404,function()
     {
         echo " 404 ";
     })
     ->hook("before", function(){
         echo " before ";
     })
     ->hook("after", function($params){
         echo " after ";
     });  
  • 变量配置文件

    配置缓存支持bool、int、long、string、array、常量等数据类型。

    
     //数据库类注入配置
     $config->set("db", [
         'class' => '\Gene\Db\Mysql',
         'params' => [[
         'dsn' => 'mysql:dbname=gene_web;host=127.0.0.1;port=3306;charset=utf8',
         'username' => 'root',
         'password' => '',
         'options' => [PDO::ATTR_PERSISTENT => true]
             ]],
         'instance' => true
     ]);
    
     //缓存类注入配置
     $config->set("", [
         'class' => '\Gene\Cache\Memcached',
         'params' => [[
         'servers' => [['host' => '127.0.0.1', 'port' => 11211]],
         'persistent' => true,
             ]],
         'instance' => true
     ]);
  • 控制器文件

    对于路由配置的\Controllers\Index@run, 控制器的目录是在app目录下的Controllers目录下Index.php文件, Action的命名是run。

    
     namespace Controllers;
     class Index extends \Gene\Controller
     {
         /**
          * run
          * @param type $params
          */
         public function run()
         {
             echo '版本:', gene_version();
         }
     }
  • 运行

    在浏览器输入项目地址,比如:http://localhost/
    看到 before run after 输出吧!!!

    注意:如果没有看到before run after, 那么请查看PHP的错误日志, 找出问题在哪里。