tastphp,为现代化的 phper 准备的 PHP 框架

大家好,推荐下我们团队自己研发的框架:tastphp 为现代化的phper准备的。可拔插,扩展性强。
借鉴了Symfony、Laravel、Silex等优秀框架。

有兴趣的可以Star关注下 tastphp。最渴望有人给我们提交PR。谢谢。

QQ 群交流 :628043345

框架背景:

PHP发展到现在,已经涌现出一大批优秀的框架,如Symfony、laravel等,而随着composer、psr 规范的出现。慢慢让PHP界开始有序,而不再一盘散沙似的重复造轮子。
Tastphp 正是基于这个背景,为现代PHP开发人员,提供多一种选择。Tastphp不是Symfony、Laravel等框架的颠覆者。而是站在巨人肩膀上,吸取前人的优秀思想,选用优秀的组件,不断去改进,为实际开发需求而生的。

Tastphp倡导是实用主义哲学 (但不失优雅性)

【中文文档】: https://docs.tastphp.com/zh/ (基础已经写完,剩下努力写中。。。)

About Tastphp

Tastphp is a PHP framework for the modern developer. Tastphp is used by some web application (like clothesmake.com)

Installation

use tastphp-installer

Features

  • Symfony Style
  • Dependency Injection Container. 依赖注入
  • M(Service/Dao)VC Architecture 架构
  • Twig 优秀的模板引擎
  • Console Support 控制台支持
  • Debug Bar (方便调试)
  • DBAL (优秀的数据库操作组件)
  • Migrations (方便的数据库迁移)
  • EventDispatcher (事件派发机制)
  • JWT (我们抛弃了传统session的会话方式)
  • whoops (采用优雅的错误机制)
  • 支出mysql单机,同时支出主从(读写分离)
  • 可拔插机制 (比如你对lavaral 的blade比较熟悉,不熟悉Twig,你可以替换哦)
  • queue(队列系统)
  • More (自己探索~才有意思)

Requirements

  • PHP7+
    * Redis extension (选装)

Documentation

Related Projects 相关项目

License

MIT Licensed

【PS】此贴 我还会继续更新下去,请关注收藏哦 ?

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 5年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 21

你们公司做啥业务的啊?日均访客数几十万IP?

6年前 评论
xujiajun

@overtrue 我们是做定制服装业务的,平时流量没有多少。搞搞活动,流量才会升上去。但也没几十万的IP,只是有段时间流量异常持续了好久(被攻击),最高峰日pv1000w以上。 所以我在说明文档里写了 千万级日pv考验。;)

6年前 评论
xujiajun

@overtrue 所以逼着我们升级架构,本来一台机子就好了(省钱);) (当然出于可用性至少2台主备 负债均衡)所幸我们做了预案以及扩展性考虑。抗住了。嘿嘿 ?

6年前 评论

期待文档完善,mark个先。

6年前 评论

这个文档 使用什么搭起来,很不错!

6年前 评论
xujiajun

@Lichmaker 谢谢 ;)

6年前 评论
xujiajun

@redrain gitbook搭建的哦 谢谢关注

6年前 评论
nickfan

代码的TestCase实在是少之又少啊~~

  • Twig
  • JWT
  • DBAL

这几部分相较于laravel而言,我想楼主框架的用意,更偏向于业务标准化

laravel的blade更灵活和轻量化,twig还是偏重于功能性和安全性

JWT替代session基本上是后续接口化无状态话开发的一个起点。

DBAL 我没看到src中这部分的代码,但从实践上来说数据库抽象层的概念更偏向于DataMapper也就是Doctrine的EntityManager的概念,相对于Laravel的Eloquent的ActiveRecord模式而言少了点灵活性,不过约定做好了也是一把利器。

其实用框架不太计较性能的话,个人更偏向于对laravel做深度定制,JWT不是问题,DBAL这层改用EntityManager也不是不可能,Twig整合到laravel例子和组件也不少。

laravel之所以成功就是像 Rasmus Lerdorf 在最近的phpcon上说的那句话:

PHP is really good at running really bad code really well

laravel的灵活简单虽然和工业化标准化有点相悖,但于个体化开发用户而言获得的是撸码的愉悦和快捷解决问题,同时也允许团队用户根据各自的规范去做定制。

个人认为与其在各个框架组件中挑挑拣拣再撸一个更标准更普适的轮子出来,不如做一些约定原则指导下的Best practices供大家参考更好。

6年前 评论
xujiajun

@nickfan 首先感谢回复 给你点个?,回复这么多。
正如我文档中说的:

PHP发展到现在,已经涌现出一大批优秀的框架,如Symfony、laravel等,而随着composer、psr 规范的出现。慢慢让PHP界开始有序,而不再一盘散沙似的重复造轮子。
Tastphp 正是基于这个背景,为现代PHP开发人员,提供多一种选择。Tastphp不是Symfony、Laravel等框架的颠覆者。而是站在巨人肩膀上,吸取前人的优秀思想,选用优秀的组件,不断去改进,为实际开发需求而生的

你说的业务标准化,你说的只能算一部分吧。往大了说 Tastphp想做的是框架标准化(通用框架)以及整个PHP生态相关工作流标准。我特别佩服Symfony 的作者。你会发现大量有些开源框架有他组件的身影。而他做的是组件标准化。

1 “代码的TestCase实在是少之又少啊~”
这个到时候主要通过完善文档来弥补。我会第一时间更新此帖,通知大家。因为PHP框架作为业务框架,一个helloword 实在写不出什么test case 不是吗

2 Twig,JWT,DBAL这些在我看来就是一个个组件。既然是组件就有可替换性。如果你用Tastphp,框架默认是Twig引擎,我们框架是可伸缩的,你可以自己写个Provider 去是实现view替换就好了。正如我刚才说的 Tastphp想做的是框架标准化(通用框架)

3 DBAL 我没看到src中这部分的代码
这个没啥好说的,看下composer就好。我们框架内核在这边 https://github.com/tastphp/framework.
至于 DBAL 也好, Eloquent也罢 本质 没啥区别。但一般来说DBAL性能会比ORM好,而且DBAL灵活性绝对不比Eloquent差,需要约束,这点你说到点子上了。而且ORM你不觉的重吗,当然每个人看法不一样

4 你提到的 best practices
这个中文文档中 已经写了标题 在计划中了。会出的,好了第一时间反馈给大家。请关注;)

6年前 评论

不错,其实每次看到国人出的框架,我的期待都是轮子能活久一点……

6年前 评论
xujiajun

@raykwok 谢谢关注 可以先star 关注下哦 ;)

6年前 评论
xujiajun

@半夏 谢谢关注 可以先star 关注下哦 ?

6年前 评论

Fatal error: Class 'Redis' not found in /Users/payne/Documents/tastphp-1.3.1/vendor/tastphp/framework/src/Framework/Cache/RedisServiceProvider.php on line 30
放弃,就运行个helloworld还强制要redis,没有哪个主流框架是这么干的。

6年前 评论
xujiajun

@Payne 感谢使用 。你说对。我刚最先版修复了这个问题。 你直接 执行 composer update 就可以了。(国内composer镜像会延迟,我刚才翻墙,已经更新成功)
ps:有问题 我会第一时间修复的。谢谢 ;)

6年前 评论
xujiajun

@edwin404 谢谢你的关注。可以先star 关注下哦 :smiley:

6年前 评论

很不错 点赞

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!