com.jukusoft/php-scaling-core-framework

php-scaling-core-framework,一个用于使用PHP 7快速、灵活和可扩展的Web应用程序的基本框架。

dev-master 2016-08-14 16:07 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:53:16 UTC


README

一个用于在PHP中创建更好可扩展Web应用程序的小型PHP框架。

当前版本:0.0.1 (预alpha版)

作为contentlion.org(目前Contentlion有点过时)的开发者,我想创建一个可以用于许多可扩展PHP系统的小型框架,例如CMS等。

计划功能

  • 高级别的缓存API,因此您的应用程序不必了解缓存机制
    • 文件缓存(已完成)
    • Memcache(已完成)
    • Hazelcast Cache(已完成)
    • 也可以添加其他缓存
  • 小型数据库管理(连接、实例和更新)
  • 分布式会话管理(用于扩展,已完成)
  • 事件/钩子系统
  • 移动设备检测
  • 多域名支持
  • 用户计数器/统计
  • 智能HTTP缓存
  • 多语言系统
  • 等等

目标

  • 非常灵活
  • 非常快/高性能
  • 易于扩展(使用插件等)
  • 易于使用
  • 尽可能帮助构建安全的应用程序(针对SQL注入、SSRF、CSRF攻击等)
  • SEO(更高水平)
  • 等等

仍在开发中!

如何使用

下载/复制所有这些文件。目录"framework"中的所有文件都是必需的,其他文件都是可选的。您的脚本必须包含framework/lib/init.php,自动加载器将被自动添加。

扩展

此框架设计得非常容易扩展,但有一些事情需要注意

  • 您不能首先使用文件缓存
  • 如果可以,请使用和CDN(内容分发网络)来分发静态文件,如图片

最佳情况下,您使用带有持久会话的负载均衡器,以便相同的客户端将路由到同一台Web服务器(如果该Web服务器可用)。您可以使用haproxy(haproxy.com)作为代理服务器。

链接

如何在memcache(d)中存储会话

首先您必须使用memcache(d)作为第一级缓存,然后您需要编辑framework/lib/store/settings/settings.php并编辑文件的部分

'session' => array(
        'enabled' => true,
        /**
         * handler types:
         *
         *  - default - use php internal session handler, dont override session handler
         */
        'handler' => "CacheSessionHandler",
        'ttl' => 180 * 60,
    )

您必须将"handler"设置为"CacheSessionHandler"。CacheSessionHandler将默认使用第一级缓存来存储会话。

要求

  • PHP 7.0.7+(它也可以在PHP 5.4下工作,但我不能保证这一点)
  • MySQL 5.7+或PostGreSQL 9.4+

可选

  • memcached 2.0.0+(用于更快的缓存和文件I/O优化)

文件权限

  • chmod 755 /framework/cache
  • chmod 755 /framework/lib/store
  • chmod 755 /framework/store

数据库

默认情况下支持mysql数据库,但您也可以使用其他一些关系数据库,如果您有相应的驱动程序。

以下数据库默认支持

  • MySQL 5.7+
  • PostgreSQL 9.4+

如果您编写了一个实现接口DBDriver的数据库驱动程序,您可以为其他数据库添加支持。

数据库限制

出于安全原因,以下mysql函数不允许使用

  • LOAD_FILE - 此命令常被SQL注入攻击者使用,因为许多MySQL服务器以root权限运行,它允许黑客读取文件系统上的所有文件。许多应用程序不需要此命令,因此本框架不允许使用LOAD_FILE。
  • INTO OUTFILE - 与LOAD_FILE类似,此命令也常被SQL注入攻击者使用。在有root权限的情况下,黑客可以,例如,选择所有数据库查询并将它们保存在Web服务器上的公开文件中以便下载,或者他们可以编写配置文件。
  • 访问数据库INFORMATION_SCHEMA - 在虚拟数据库INFORMATION_SCHEMA中存储了许多MySQL的元数据,黑客可以利用这些元数据更快地攻击网站/数据库。

缓存

有2个缓存级别

  • 第一级缓存(例如,会话缓存)
  • 第二级缓存(例如,数据库查询缓存等)

对于每个缓存级别,您可以设置另一个缓存处理器(可选)。

本框架支持一些类型的缓存处理器,您可以通过插件扩展其他缓存类型。

  • 文件缓存(默认,但若要扩展则不能使用)
  • memcache
  • memcached(与memcache不同!如果可能,请使用memcached,因为memcached更快)
  • Hazelcast (http://hazelcast.org) 缓存
  • Redis(正在进行中,尚未实现)