Leevel高性能PHP扩展开发框架 v1.0.0 alpha.1

  • b3_811709
    了解作者
  • 1.4MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-20 12:31
    上传日期
Leevel 高性能 PHP 扩展开发框架 Leevel 是一个开源 PHP C 扩展开发框架,采用 zephir 编写,是为了解决使用框架带来性能下降的经典矛盾,Leevel 是为了解决 QueryPHP 性能而开发,可以与同版本
leevel_v1.0.0.alpah1.zip
内容介绍
#ifdef HAVE_CONFIG_H #include "../../ext_config.h" #endif #include <php.h> #include "../../php_ext.h" #include "../../ext.h" #include <Zend/zend_operators.h> #include <Zend/zend_exceptions.h> #include <Zend/zend_interfaces.h> #include "kernel/main.h" #include "kernel/fcall.h" #include "kernel/memory.h" #include "kernel/operators.h" #include "kernel/object.h" #include "kernel/string.h" #include "kernel/array.h" #include "kernel/main.h" #include "kernel/exception.h" #include "ext/spl/spl_exceptions.h" #include "ext/spl/spl_directory.h" #include "kernel/concat.h" #include "kernel/file.h" #include "Zend/zend_closures.h" /** * HTTP 请求 * This class borrows heavily from the Symfony4 Framework and is part of the symfony package * * @author Xiangmin Liu <635750556@qq.com> * * @since 2018.03.05 * @version 1.0 * @see Symfony\Component\HttpFoundation (https://github.com/symfony/symfony) */ ZEPHIR_INIT_CLASS(Leevel_Http_Request) { ZEPHIR_REGISTER_CLASS(Leevel\\Http, Request, leevel, http_request, leevel_http_request_method_entry, 0); /** * GET Bag * * @var \Leevel\Http\Bag */ zend_declare_property_null(leevel_http_request_ce, SL("query"), ZEND_ACC_PUBLIC TSRMLS_CC); /** * POST Bag * * @var \Leevel\Http\Bag */ zend_declare_property_null(leevel_http_request_ce, SL("request"), ZEND_ACC_PUBLIC TSRMLS_CC); /** * 路由解析后的参数 * * @var \Leevel\Http\Bag */ zend_declare_property_null(leevel_http_request_ce, SL("params"), ZEND_ACC_PUBLIC TSRMLS_CC); /** * COOKIE Bag * * @var \Leevel\Http\Bag */ zend_declare_property_null(leevel_http_request_ce, SL("cookies"), ZEND_ACC_PUBLIC TSRMLS_CC); /** * FILE Bag * * @var \Leevel\Http\FileBag */ zend_declare_property_null(leevel_http_request_ce, SL("files"), ZEND_ACC_PUBLIC TSRMLS_CC); /** * SERVER Bag * * @var \Leevel\Http\ServerBag */ zend_declare_property_null(leevel_http_request_ce, SL("server"), ZEND_ACC_PUBLIC TSRMLS_CC); /** * HEADER Bag * * @var \Leevel\Http\HeaderBag */ zend_declare_property_null(leevel_http_request_ce, SL("headers"), ZEND_ACC_PUBLIC TSRMLS_CC); /** * 内容 * * @var string|resource|false|null */ zend_declare_property_null(leevel_http_request_ce, SL("content"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 基础 url * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("baseUrl"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 基础路径 * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("basePath"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 请求 url * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("requestUri"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 请求类型 * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("method"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * pathInfo * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("pathInfo"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 应用名字 * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("app"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 控制器名字 * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("controller"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 方法名字 * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("action"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 当前语言 * * @var string */ zend_declare_property_null(leevel_http_request_ce, SL("language"), ZEND_ACC_PROTECTED TSRMLS_CC); /** * 注册的动态扩展 * * @var array */ zend_declare_property_null(leevel_http_request_ce, SL("macro"), ZEND_ACC_PROTECTED|ZEND_ACC_STATIC TSRMLS_CC); zend_class_implements(leevel_http_request_ce TSRMLS_CC, 1, leevel_support_imacro_ce); zend_class_implements(leevel_http_request_ce TSRMLS_CC, 1, leevel_http_irequest_ce); zend_class_implements(leevel_http_request_ce TSRMLS_CC, 1, leevel_support_iarray_ce); zend_class_implements(leevel_http_request_ce TSRMLS_CC, 1, zend_ce_arrayaccess); return SUCCESS; } /** * 构造函数 * * @param array $query * @param array $request * @param array $params * @param array $cookies * @param array $files * @param array $server * @param string $content * @return void */ PHP_METHOD(Leevel_Http_Request, __construct) { zend_long ZEPHIR_LAST_CALL_STATUS; zval *query_param = NULL, *request_param = NULL, *params_param = NULL, *cookies_param = NULL, *files_param = NULL, *server_param = NULL, *content = NULL, content_sub, __$null; zval query, request, params, cookies, files, server; zval *this_ptr = getThis(); ZVAL_UNDEF(&query); ZVAL_UNDEF(&request); ZVAL_UNDEF(&params); ZVAL_UNDEF(&cookies); ZVAL_UNDEF(&files); ZVAL_UNDEF(&server); ZVAL_UNDEF(&content_sub); ZVAL_NULL(&__$null); ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 7, &query_param, &request_param, &params_param, &cookies_param, &files_param, &server_param, &content); if (!query_param) { ZEPHIR_INIT_VAR(&query); array_init(&query); } else { zephir_get_arrval(&query, query_param); } if (!request_param) { ZEPHIR_INIT_VAR(&request); array_init(&request); } else { zephir_get_arrval(&request, request_param); } if (!params_param) { ZEPHIR_INIT_VAR(&params); array_init(&params); } else { zephir_get_arrval(&params, params_param); } if (!cookies_param) { ZEPHIR_INIT_VAR(&cookies); array_init(&cookies); } else { zephir_get_arrval(&cookies, cookies_param); } if (!files_param) { ZEPHIR_INIT_VAR(&files); array_init(&files); } else { zephir_get_arrval(&files, files_param); } if (!server_param) { ZEPHIR_INIT_VAR(&server); array_init(&server); } else { zephir_get_arrval(&server, server_param); } if (!content) { content = &content_sub; content = &__$null; } ZEPHIR_CALL_METHOD(NULL, this_ptr, "reset", NULL, 0, &query, &request, &params, &cookies, &files, &server, content); zephir_check_call_status(); ZEPHIR_MM_RESTORE(); } /** * 重置或者初始化 * * @param array $query * @param array $request * @param array $params * @param array $cookies * @param array $files * @param array $server * @param string $content * @return void */ PHP_METHOD(Leevel_Http_Request, reset) { zephir_fcall_cache_entry *_1 = NULL; zend_long ZEPHIR_LAST_CALL_STATUS; zval *query_param = NULL, *request_param = NULL, *params_param = NULL, *cookies_param = NULL, *files_param = NULL, *server_param = NULL, *content = NULL, content_sub, __$null, _0, _2, _3, _4, _5, _6, _7, _8, _9; zval query, request, params, cookies, files, server; zval *this_ptr = getThis(); ZVAL_UNDEF(&query); ZVAL_UNDEF(&request); ZVAL_UNDEF(&params); ZVAL_UNDEF(&cookies); ZVAL_UNDEF(&files); ZVAL_UNDEF(&server); ZVAL_UNDEF(&content_sub); ZVAL_NULL(&__$null); ZVAL_UNDEF(&_0); ZVAL_UNDEF(&_2); ZVAL_UNDEF(&_3); ZVAL_UNDEF(&_4); ZVAL_UNDEF(&_5); ZVAL_UNDEF(&_6); ZVAL_UNDEF(&_7); ZVAL_UNDEF(&_8); ZVAL_UNDEF(&_9); ZEPHIR_MM_GROW(); zephir_fetch_params(1, 0, 7, &query_param, &request_param, &params_param, &cookies_param, &files_param, &server_param, &content); if (!query_param) { ZEPHIR_INIT_VAR(&query); array_init(&query); } else { zephir_get_arrval(&query, query_param); } if (!request_param) { ZEPHIR_INIT_VAR(&request); array_init(&request); } else { zephir_get_arrval(&request, request_param); } if (!params_param) { ZEPHIR_INIT_VAR(&params); array_init(&params); } else { zephir_get_arrval(&params, params_param); } if (!cookies_param) { ZEPHIR_INIT_VAR(&cookies); array_init(&cookies); } else { zephir_get_arrval(&cookies, cookies_param); } if (!files_param) { ZEPHIR_INIT_VAR(&files); array_init(&files); } else { zephir_get_arrval(&files, files_param); } if (!server_param) { ZEPHIR_INIT_VAR(&server); array_init(&server); } else { zephir_get_arrval(&server, server_param); } if (!content) { content = &content_sub
评论
    相关推荐
    • 易语言调用php
      .版本 2 php_执行php文件 (取运行目录 () + “\1.php”) php_执行php函数 (“e_to_php”, “易语言传来的参数”) php_执行php代码 (“echo '直接在易语言中执行的php代码';”, “1.php”)
    • php cookie
      php php php php.。。。。。。。。。。
    • php
      PHP基本映像 支持的标签和相应的Dockerfile链接 使用PHP 您可以直接使用图像,例如 docker run --rm -it chinayin/php:7.2-fpm docker run --rm -it chinayin/php:7.2-cli 这些映像是每天生成的,并已启用安全发布...
    • PHP教程
      PHP学习,做动态网站很爽的一种语言,虽然我只学习了ASP,但是觉得这种语言还是瞒实用的.........
    • PHP 手册
      PHP 最初是在西元 1994 年 Rasmus Lerdorf 开始计画发展。在 1995 年以 Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。随后在新的...
    • php10
      php10 十天学会php练习代码
    • PHP 课件
      PHP 课件 PHP是什么? PHP能做什么? 基本功能 简要历史 PHP标记风格 PHP的词法结构
    • PHP
      PHP lang-php具有php的js函数,例如getElementById()或alert();。 导入文件,将其下载或复制代码,然后使用php中的include函数获取文件,如下所示: include 'js-php.php'; 那么您可以在php中使用js函数:...
    • php脚本集合
      1.zipfile.php与unzipfile.php是一组能够将网站文件打包成zip或者将zip文件包解压缩的PHP脚本,将其上传到网站空间后即可访问使用; 2.phpzip是一款将文件打包为其特有格式,通过本地软件phpzip.exe进行压缩解压的...
    • php调用图片
      php程序 后台输入文字或者编号调用图片php程序 后台输入文字或者编号调用图片php程序 后台输入文字或者编号调用图片php程序 后台输入文字或者编号调用图片php程序 后台输入文字或者编号调用图片php程序 后台输入文字...