Download the PHP package bybzmt/framework without Composer

On this page you can find all versions of the php package bybzmt/framework. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package framework

PHP Framework

这是一个用于中小型团队开发的框架

特点

使用示例

一个简单的个人博客bybzmt/blog.php

性能

基于此框架的个人博客bybzmt/blog.php有非常强大的性能

模式 静态文件 首页(2篇博客) 首页(10篇博客)
Fpm 4705 1507 1237
Swoole 26607 3276 2084

典型目录结构

启动流程

  1. 设置环境变量
  2. 引入composer自动加载
  3. 启动Front::run()
  4. 根据请求找到对应模块
  5. 启动对应模块Bootstrap::run()
  6. 初始化请求上下文对像
  7. 路由请求得到控制器
  8. 执行控制器

Context上下文对像

由于Swoole是一种常驻内存模式,全局变量的生命周期是应用级,而不同于fpm模式下只是请求级的。 全局变量能在不同请求间保持,所以$_GET、$_POST等原方法都不能用了。 这里框架给每个请求实例化一个Context对像,将所有跟当前请求相关的数据存到Context对像中。

Context对像还负责组件按层级加载和替换功能。

如上面博客中:

  1. Web\Context对像继承于Common\Context对像
  2. Common\Context对像继承于Framework\Context对像

当初始化组件时Context对像会首先在自己的命名空间中寻找对应组件,如果没找到则让父级Context进行初始化。 这样子可以很方便的扩展和替换自己所需要的组件。

api:

Request、Response对像

Request对像是直接使用的swoole_http_request

Response对像同样是直接使用swoole_http_response

在Fpm模式中框架实现一个兼容层保持了和Swoole中一样的api

组件

框架里把所有跟Context对像有关的对像都实现为了Component, 主要是提供快速实例化功能,不需要反复传递Context对像。

另外Component也现实了一些便捷方法方便在任意组件内使用。

路由

路由并没有采用开放式映射式的,而是采用了注册式路由,优点是路由比较干净。

路由项目位于bybzmt/router.php

如果不喜欢可以替换为你喜欢的库,框架替换组件非常简单。

业务模型

框架推荐使用领域模型模式,使用: Service、Table、Row(Domain)结构

需要注意的是不要把数据展示的工作写到Service、Table、Row中去,它位只负责提供最基本的数据, 按页面、api要求组织对应的数据结构应该在控制器、视图中实现

数据库

数据库分为提供基础功能的Table类,提供分表功能的TableSplit类。 另外有提供缓存功能的TableRowCache trait。 任何用户的表应都该继承于Table或TableSplit类,并当需要缓存时引入TableRowCache trait即可。

注意分表和缓存都只是对Table类中的get/gets/insert/update/delete这几个操作进行了支持。 当用SQL直接进行数据操作时需要手动维护相关缓存或分表功能。

批量加载

框架提供了LazyRow加载方法,当实例化时只是记录id,到访问属性才再试图批量加载。

助手层

框架提供了一些常用功能方便使用

Cache缓存

这个缓存跟上面Table中的缓存没有关系,它是指用户自己维护的缓存。 尽量让不同类型的缓存用不同的类去管理,避免key冲突。

模板

框架没有提供模板功能,建议直接使现现有第三方模板程序。(如:Twig)

写在最后

  1. 框架的各功能并没有想适应所有环境,只需要在80%情况下可用就行了,特殊情况在具体的项目中可以特殊处理。

  2. 框架的代码不多,如果想用尽量把代码都读一遍。

All versions of framework with dependencies

PHP Build Version
Package Version
Requires php Version >=7.0.0
bybzmt/router Version ~1.0
flexihash/flexihash Version ^2.0
bybzmt/logger Version ~0.0.2
bybzmt/phpdb Version ~1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package bybzmt/framework contains the following files

Loading the files please wait ....