yuBlank / phackp
pHackp旨在提供一种快速、简单的方式来构建现代、响应式的网站和应用。它为组织项目提供了一个模型-视图-控制器结构,并尽可能实现“约定优于配置”。
0.5.1-alpha
2018-04-02 17:22 UTC
Requires
- php: >=7.0
- doctrine/annotations: 1.3.1
- monolog/monolog: 1.22.1
- php-di/php-di: 5.4.1
- zendframework/zend-diactoros: 1.3.10
Requires (Dev)
- codacy/coverage: dev-master
- doctrine/orm: 2.5.*
- guzzlehttp/guzzle: ~6.0
- phpunit/dbunit: ^2.0
- phpunit/phpunit: 5.3.*
- twig/twig: 2.0
This package is not auto-updated.
Last update: 2024-09-15 23:32:43 UTC
README
phackp
PHP 微型框架,诞生于PHP7时代!
免责声明
pHackp实际上处于alpha阶段。框架可能在某些方式上发生变化,使得alpha/beta版本在未来可能无法与第一个稳定版本兼容。实际上,框架与PHP7+兼容。
准备好了吗?
https://github.com/yuxblank/phackp/wiki/Get-started
简介
pHackp旨在提供一种快速、简单的方式来构建现代、响应式的网站和应用。它为组织项目提供了一个模型-视图-控制器结构,并尽可能实现“约定优于配置”。该框架提供所有基本功能,用于开发RESTful API、网站和Web应用。
要求
实际上,该框架正在经历快速开发。它已经与Apache(需要.htaccess mod_rewrite模块)和内置的PHP 7服务器(由root执行的URL重写)进行了测试。
功能和路线图
* 标记的功能处于开发或分析中
主要功能
- 小体积
- 多态性
- 完全面向对象
- 易于使用且直观
无需任何依赖- PHP 7+
- 易于扩展(Service Providers等)*
- 几乎无需配置(没有yaml、xml、ini.. 只有PHP)
- 卓越的性能、易用性和开发速度!
- 通过容器(PHP-DI)实现依赖注入
- PSR-4、PSR-7*、PSR-11兼容
PSR-7已扩展,因为pHackp ServerRequestInterface支持RESTful路由的路径参数。
路由
- 路由通过PHP代码实现,无需生成或要求服务器配置规则(只需mod_require到index.php)
- 数组映射路由
- 动作通过类和方法名称映射给给定的URL
- 排除未映射的路由(返回可配置的错误路由)
- 100%美观的URL(例如 ...blog/title/1)
- 参数绑定到简单的标签{tag}(例如 tag/{tag}/)
- REST方法映射(GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH)
- 丰富的RESTful功能(例如自动json解码/编码)
- GET参数注入映射到给定的标签名称{name}($serverRequest->getQueryParams()['name'])
持久化
- 基于PDO的对象-关系映射引擎(HackORM)
- 直观的API
- 自动模型映射(基于约定)
- 对象之间的OneToOne、ManyToOne、ManyToMany关系
- 行为父实现(例如 $object->save()。)
- 依赖注入(例如 self::oneToMany($this, 'Parent::class') 返回 $Parent 实例。)
- 能够将数据库类作为独立类使用,以保留“是”OOP规则。但Model API更高效!
- 当需要时,模型可以始终访问PDO实例($this->getPDO())
- Doctrine2集成
模型-视图-控制器
- 应用程序生命周期将当前请求路由到指定的控制器方法,包括错误或404。
- 控制器利用DI,因此您可以自由注入所需的内容(视图、会话、模型、请求)
- 内置的模板系统支持模板继承。(纯PHP!)
- 一切都关于约定!
表示层
- 内置视图引擎
- 纯PHP语法
- 模板继承
- 动态钩子支持
- 可配置的钩子具有范围隔离(或传递)
服务和提供者
- 动态注册提供者实例(非单例,单运行时实例豆类)
- 基于反射调用接口方法,允许在运行时委派实现类(例如:错误处理器)
- 简单有效的API,用于扩展和实现全新的提供者或委托者
- 支持急速和懒加载的提供者实例化
- 可配置、可扩展,并与框架容器完全集成
- 可直接使用的Service Providers
- 错误处理器(提供PHP错误和异常处理的覆盖)
PSR-4
- 使用Composer默认的PSR-4自动加载
- 自动映射项目类
PSR-7
- 创建ServerRequest接口并将其设置到DI容器中
- 控制器方法使用DI通过类型注入(自动装配)获取当前请求
PSR-11(草案)
- 我们使用PHP-DI作为参考实现
- 框架依赖项工厂由pHackp运行时管理
RESTful
- 简单、直接创建REST API
- 支持GET、POST、PUT、DELETE、OPTIONS、PATCH等路由,用于CRUD RESTful标准API
- 自动序列化和反序列化json到数组(PSR-7中间件)
- 可直接使用的CORS过滤器*
支持第三方项目
- PHP-DI (http://php-di.org/)
- Doctrine 2 (http://www.doctrine-project.org/projects/orm.html)